From 05fe114a5969727c32cd9f1051cd7b9fde0344d5 Mon Sep 17 00:00:00 2001 From: Ravi Pendurty Date: Mon, 19 Apr 2021 12:46:16 +0200 Subject: Reorganization of devicemanager directory structure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Organized into core, onap and o-ran-sc directories Issue-ID: CCSDK-3242 Signed-off-by: Ravi Pendurty Change-Id: I3c23710f990a2d96ba01104c97315fc8c6b1921b Signed-off-by: Ravi Pendurty Signed-off-by: Michael DÜrre --- .../openroadm/impl/DeviceManagerOpenroadmImpl.java | 103 - .../openroadm/impl/InitialDeviceAlarmReader.java | 156 -- .../impl/OpenroadmChangeNotificationListener.java | 130 -- .../OpenroadmDeviceChangeNotificationListener.java | 129 -- .../impl/OpenroadmFaultNotificationListener.java | 78 - .../openroadm/impl/OpenroadmInventoryInput.java | 149 -- .../openroadm/impl/OpenroadmNetworkElement.java | 323 --- .../impl/OpenroadmNetworkElementBase.java | 74 - .../impl/OpenroadmNetworkElementFactory.java | 71 - .../openroadm/impl/PmDataBuilderOpenRoadm.java | 290 --- .../pm/types/rev191129/PmDataTypeBuilder.java | 21 - .../alarms/rev190911/OperatorStateBuilder.java | 21 - .../ietf/alarms/rev190911/ResourceBuilder.java | 21 - .../alarms/rev190911/ResourceMatchBuilder.java | 21 - .../alarms/rev190911/SeverityWithClearBuilder.java | 21 - .../ControlMaxAlarmStatusChangesBuilder.java | 21 - .../org/opendaylight/blueprint/impl-blueprint.xml | 38 - .../provider/src/main/resources/version.properties | 24 - .../provider/src/main/yang/iana-hardware.yang | 180 -- .../provider/src/main/yang/ietf-alarms.yang | 1526 -------------- .../provider/src/main/yang/ietf-hardware.yang | 1141 ---------- .../provider/src/main/yang/ietf-interfaces.yang | 1073 ---------- .../src/main/yang/org-openroadm-alarm.yang | 181 -- .../yang/org-openroadm-common-alarm-pm-types.yang | 81 - .../yang/org-openroadm-common-amplifier-types.yang | 99 - .../yang/org-openroadm-common-equipment-types.yang | 102 - .../main/yang/org-openroadm-common-link-types.yang | 94 - .../main/yang/org-openroadm-common-node-types.yang | 69 - ...org-openroadm-common-optical-channel-types.yang | 350 ---- .../yang/org-openroadm-common-state-types.yang | 113 - .../src/main/yang/org-openroadm-common-types.yang | 270 --- .../src/main/yang/org-openroadm-device-types.yang | 151 -- .../src/main/yang/org-openroadm-device.yang | 2179 -------------------- .../yang/org-openroadm-equipment-states-types.yang | 147 -- .../src/main/yang/org-openroadm-interfaces.yang | 181 -- .../main/yang/org-openroadm-otn-common-types.yang | 343 --- .../main/yang/org-openroadm-physical-types.yang | 153 -- .../provider/src/main/yang/org-openroadm-pm.yang | 350 ---- .../src/main/yang/org-openroadm-port-types.yang | 420 ---- .../main/yang/org-openroadm-probable-cause.yang | 843 -------- .../main/yang/org-openroadm-resource-types.yang | 374 ---- .../src/main/yang/org-openroadm-resource.yang | 358 ---- .../provider/src/main/yang/org-openroadm-swdl.yang | 203 -- .../yang/org-openroadm-switching-pool-types.yang | 63 - .../src/main/yang/org-openroadm-user-mgmt.yang | 161 -- 45 files changed, 12896 deletions(-) delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/DeviceManagerOpenroadmImpl.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/InitialDeviceAlarmReader.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmChangeNotificationListener.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmFaultNotificationListener.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementBase.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementFactory.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/PmDataBuilderOpenRoadm.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev191129/PmDataTypeBuilder.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/OperatorStateBuilder.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceBuilder.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceMatchBuilder.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/SeverityWithClearBuilder.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/alarms/ControlMaxAlarmStatusChangesBuilder.java delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/resources/version.properties delete mode 100755 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/iana-hardware.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/ietf-alarms.yang delete mode 100755 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/ietf-hardware.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/ietf-interfaces.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-alarm.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-alarm-pm-types.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-amplifier-types.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-equipment-types.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-link-types.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-node-types.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-optical-channel-types.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-state-types.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-types.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-device-types.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-device.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-equipment-states-types.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-interfaces.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-otn-common-types.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-physical-types.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-pm.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-port-types.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-probable-cause.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-resource-types.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-resource.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-swdl.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-switching-pool-types.yang delete mode 100644 sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-user-mgmt.yang (limited to 'sdnr/wt/devicemanager-openroadm/provider/src/main') diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/DeviceManagerOpenroadmImpl.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/DeviceManagerOpenroadmImpl.java deleted file mode 100644 index e522f4bd7..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/DeviceManagerOpenroadmImpl.java +++ /dev/null @@ -1,103 +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.openroadm.impl; - -import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.FactoryRegistration; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Shabnam Sultana - * - * Class to initialize the OpenRoadm Device Manager - **/ -public class DeviceManagerOpenroadmImpl implements AutoCloseable { - - // variables - private static final Logger LOG = LoggerFactory.getLogger(DeviceManagerOpenroadmImpl.class); - private static final String APPLICATION_NAME = "DeviceManagerOpenRoadm"; - @SuppressWarnings("unused") - private static final String CONFIGURATIONFILE = "etc/devicemanager-opeenroadm.properties"; - private NetconfNetworkElementService netconfNetworkElementService; - private HtDatabaseClient htDatabaseClient; - private Boolean devicemanagerInitializationOk = false; - private FactoryRegistration resOpenRoadm; - // end of variables - - // Blueprint begin - // constructors - public DeviceManagerOpenroadmImpl() { - LOG.info("Creating provider for {}", APPLICATION_NAME); - resOpenRoadm = null; - } - // end of constructors - - // public methods - public void setNetconfNetworkElementService(NetconfNetworkElementService netconfNetworkElementService) { - this.netconfNetworkElementService = netconfNetworkElementService; - } - - public void init() throws Exception { - - LOG.info("Session Initiated start {}", APPLICATION_NAME); - - resOpenRoadm = netconfNetworkElementService.registerBindingNetworkElementFactory(new OpenroadmNetworkElementFactory()); - - - netconfNetworkElementService.writeToEventLog(APPLICATION_NAME, "startup", "done"); - this.devicemanagerInitializationOk = true; - - LOG.info("Session Initiated end. Initialization done {}", devicemanagerInitializationOk); - } - // Blueprint end - - @Override - public void close() throws Exception { - LOG.info("closing ..."); - close(htDatabaseClient); - close(resOpenRoadm); - LOG.info("closing done"); - } - // end of public methods - - // private methods - /** - * Used to close all Services, that should support AutoCloseable Pattern - * - * @param toClose - * @throws Exception - */ - private void close(AutoCloseable... toCloseList) { - for (AutoCloseable element : toCloseList) { - if (element != null) { - try { - element.close(); - } catch (Exception e) { - LOG.warn("Fail during close: ", e); - } - } - } - } - // end of private methods -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/InitialDeviceAlarmReader.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/InitialDeviceAlarmReader.java deleted file mode 100644 index 6c8837327..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/InitialDeviceAlarmReader.java +++ /dev/null @@ -1,156 +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.openroadm.impl; - -import java.util.Collection; -import java.util.List; -import org.eclipse.jdt.annotation.NonNull; -import org.onap.ccsdk.features.sdnr.wt.common.YangHelper; -import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; -import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.ActiveAlarmList; -import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.Severity; -import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.active.alarm.list.ActiveAlarms; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Faultlog; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Shabnam Sultana - * - * Class to read the initial alarms at the time of device registration - * - **/ - -public class InitialDeviceAlarmReader { - // variables - private Integer count = 1; - private static final Logger log = LoggerFactory.getLogger(InitialDeviceAlarmReader.class); - private final NetconfBindingAccessor netConfAccesor; - private final @NonNull FaultService faultEventListener; - private final DataProvider dataProvider; - // end of variables - - // constructors - public InitialDeviceAlarmReader(NetconfBindingAccessor accessor, DeviceManagerServiceProvider serviceProvider) { - this.netConfAccesor = accessor; - this.faultEventListener = serviceProvider.getFaultService(); - this.dataProvider = serviceProvider.getDataProvider(); - } - // end of constructors - - // protected methods - // Mapping the alarm data with the fault data - protected FaultData writeFaultData() { - FaultData faultData = new FaultData(); - if (this.getActiveAlarmList(this.netConfAccesor).getActiveAlarms() != null) { - Collection activeAlarms = YangHelper.getCollection(this.getActiveAlarmList(this.netConfAccesor).getActiveAlarms()); - if (!activeAlarms.isEmpty()) { - for (ActiveAlarms activeAlarm : activeAlarms) { - faultData.add(this.netConfAccesor.getNodeId(), this.count, activeAlarm.getRaiseTime(), - activeAlarm.getResource().getDevice().getNodeId().getValue(), - activeAlarm.getProbableCause().getCause().getName(), - checkSeverityValue(activeAlarm.getSeverity())); - count = count + 1; - } - return faultData; - } - } - return faultData; - } - - // Write into the FaultLog - protected void writeAlarmLog(FaultData faultData) { - if (faultData != null) { - List faultLog = faultData.getProblemList(); - for (Faultlog fe : faultLog) { - this.dataProvider.writeFaultLog(fe); - } - } - } - - // Use the FaultService for Alarm notifications - protected void faultService() { - this.faultEventListener.initCurrentProblemStatus(this.netConfAccesor.getNodeId(), writeFaultData()); - writeAlarmLog(writeFaultData()); - } - // Mapping Severity of AlarmNotification to SeverityType of FaultLog - protected static SeverityType checkSeverityValue(Severity severity) { - SeverityType severityType = null; - log.info("Device Severity: {}", severity.getName()); - - switch (severity.getName()) { - case ("warning"): - severityType = SeverityType.Warning; - break; - case ("major"): - severityType = SeverityType.Major; - break; - case ("minor"): - severityType = SeverityType.Minor; - break; - case ("clear"): - severityType = SeverityType.NonAlarmed; - break; - case ("critical"): - severityType = SeverityType.Critical; - break; - case ("indeterminate"): - severityType = SeverityType.Critical; - break; - default: - severityType = SeverityType.Critical; - break; - - } - return severityType; - - } - // end of protected methods - - // private methods - - // Read Alarm Data - private ActiveAlarmList getActiveAlarmList(NetconfBindingAccessor accessor) { - final Class classAlarm = ActiveAlarmList.class; - log.info("Get Alarm data for element {}", accessor.getNodeId().getValue()); - InstanceIdentifier alarmDataIid = InstanceIdentifier.builder(classAlarm).build(); - - ActiveAlarmList alarmData = accessor.getTransactionUtils().readData(accessor.getDataBroker(), - LogicalDatastoreType.OPERATIONAL, alarmDataIid); - - log.info("AlarmData {}", alarmData); - return alarmData; - } - - - // end of private methods - - - -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmChangeNotificationListener.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmChangeNotificationListener.java deleted file mode 100644 index 3af6d7aca..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmChangeNotificationListener.java +++ /dev/null @@ -1,130 +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.openroadm.impl; - -import java.util.List; -import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; -import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor; -import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.IetfNetconfNotificationsListener; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfConfigChange; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfConfirmedCommit; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfSessionEnd; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfSessionStart; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.netconf.config.change.Edit; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - - -/** - * @author Shabnam Sultana - * - * Listener for change notifications - * - **/ -public class OpenroadmChangeNotificationListener implements IetfNetconfNotificationsListener { - - // variables - private static final Logger log = LoggerFactory.getLogger(OpenroadmChangeNotificationListener.class); - private final NetconfAccessor netconfAccessor; - private final DataProvider databaseService; - private final WebsocketManagerService notificationServiceService; - // end of variables - - // constructors - public OpenroadmChangeNotificationListener(NetconfAccessor netconfAccessor, DataProvider databaseService, - WebsocketManagerService notificationService) { - this.netconfAccessor = netconfAccessor; - this.databaseService = databaseService; - this.notificationServiceService = notificationService; - } - // end of constructors - - // public methods - @Override - public void onNetconfConfirmedCommit(NetconfConfirmedCommit notification) { - log.info("onNetconfConfirmedCommit {} ", notification); - this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(), - NetconfConfirmedCommit.QNAME, NetconfTimeStampImpl.getConverter().getTimeStamp()); - } - - @Override - public void onNetconfSessionStart(NetconfSessionStart notification) { - log.info("onNetconfSessionStart {} ", notification); - this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(), - NetconfSessionStart.QNAME, NetconfTimeStampImpl.getConverter().getTimeStamp()); - - } - - @Override - public void onNetconfSessionEnd(NetconfSessionEnd notification) { - log.info("onNetconfSessionEnd {}", notification); - this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(), - NetconfSessionEnd.QNAME, NetconfTimeStampImpl.getConverter().getTimeStamp()); - } - - @Override - public void onNetconfCapabilityChange(NetconfCapabilityChange notification) { - log.info("onNetconfCapabilityChange {}", notification); - this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(), - NetconfCapabilityChange.QNAME, NetconfTimeStampImpl.getConverter().getTimeStamp()); - } - - @Override - public void onNetconfConfigChange(NetconfConfigChange notification) { - log.info("onNetconfConfigChange (1) {}", notification); - StringBuffer sb = new StringBuffer(); - List editList = notification.nonnullEdit(); - for (Edit edit : editList) { - if (sb.length() > 0) { - sb.append(", "); - } - sb.append(edit); - - EventlogBuilder eventlogBuilder = new EventlogBuilder(); - - InstanceIdentifier target = edit.getTarget(); - if (target != null) { - eventlogBuilder.setObjectId(target.toString()); - log.info("TARGET: {} {}", target.getClass(), target.getTargetType()); - for (PathArgument pa : target.getPathArguments()) { - log.info("PathArgument {}", pa); - } - } - eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue()); - eventlogBuilder.setNewValue(String.valueOf(edit.getOperation())); - databaseService.writeEventLog(eventlogBuilder.build()); - } - log.info("onNetconfConfigChange (2) {}", sb); - this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(), - NetconfConfigChange.QNAME, NetconfTimeStampImpl.getConverter().getTimeStamp()); - - } - - // end of public methods - -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java deleted file mode 100644 index daea1adb3..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java +++ /dev/null @@ -1,129 +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.openroadm.impl; - -import java.util.List; -import org.eclipse.jdt.annotation.NonNull; -import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; -import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.NetconfTimeStamp; -import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor; -import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.ChangeNotification; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.CreateTechInfoNotification; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.OrgOpenroadmDeviceListener; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.OtdrScanResult; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.change.notification.Edit; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Shabnam Sultana - * - * Listener for Open roadm device specific change notifications - **/ - -public class OpenroadmDeviceChangeNotificationListener implements OrgOpenroadmDeviceListener { - // variables - private static final Logger log = LoggerFactory.getLogger(OpenroadmDeviceChangeNotificationListener.class); - private Integer counter = 1; - private final NetconfAccessor netconfAccessor; - private final DataProvider databaseProvider; - private final WebsocketManagerService notificationServiceService; - private static final NetconfTimeStamp ncTimeConverter = NetconfTimeStampImpl.getConverter(); - // end of variables - - // constructors - public OpenroadmDeviceChangeNotificationListener(NetconfAccessor netconfAccessor, DataProvider databaseService, - WebsocketManagerService faultService) { - this.netconfAccessor = netconfAccessor; - this.databaseProvider = databaseService; - this.notificationServiceService = faultService; - } - // end of constructors - - // public methods - @Override - public void onOtdrScanResult(OtdrScanResult notification) { - // TODO Auto-generated method stub - - } - - @Override - public void onChangeNotification(ChangeNotification notification) { - log.info("onDeviceConfigChange(1){}", notification); - StringBuffer sb = new StringBuffer(); - - @NonNull - List editList = notification.nonnullEdit(); - for (Edit edit : editList) { - if (sb.length() > 0) { - sb.append(", "); - } - sb.append(edit); - EventlogBuilder eventlogBuilder = new EventlogBuilder(); - InstanceIdentifier target = edit.getTarget(); - if (target != null) { - eventlogBuilder.setObjectId(target.getPathArguments().toString()); - log.info("TARGET: {} {}", target.getClass(), target.getTargetType()); - for (PathArgument pa : target.getPathArguments()) { - log.info("PathArgument {}", pa); - } - eventlogBuilder.setAttributeName(target.getTargetType().getName()); - } - eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue()); - eventlogBuilder.setNewValue(String.valueOf(edit.getOperation())); - eventlogBuilder.setTimestamp(notification.getChangeTime()); - eventlogBuilder.setCounter(counter); - eventlogBuilder.setSourceType(SourceType.Netconf); - databaseProvider.writeEventLog(eventlogBuilder.build()); - log.info("onDeviceConfigChange (2) {}", sb); - counter++; - } - this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(), - ChangeNotification.QNAME, notification.getChangeTime()); - } - - @Override - public void onCreateTechInfoNotification(CreateTechInfoNotification notification) { - - DateAndTime now = NetconfTimeStampImpl.getConverter().getTimeStamp(); - log.info("onCreateTechInfoNotification(1){}", notification); - EventlogBuilder eventlogBuilder = new EventlogBuilder(); - eventlogBuilder.setId(notification.getShelfId()).setAttributeName(notification.getShelfId()) - .setObjectId(notification.getShelfId()).setNodeId(this.netconfAccessor.getNodeId().getValue()) - .setCounter(counter).setNewValue(notification.getStatus().getName()).setSourceType(SourceType.Netconf) - .setTimestamp(now); - databaseProvider.writeEventLog(eventlogBuilder.build()); - this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(), - CreateTechInfoNotification.QNAME, now); - log.info("Create-techInfo Notification written "); - counter++; - } - // end of public methods - -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmFaultNotificationListener.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmFaultNotificationListener.java deleted file mode 100644 index 10d0a5640..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmFaultNotificationListener.java +++ /dev/null @@ -1,78 +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.openroadm.impl; - - -import org.eclipse.jdt.annotation.NonNull; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService; -import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; -import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.AlarmNotification; -import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.OrgOpenroadmAlarmListener; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Shabnam Sultana - * - * Listener for Open roadm device specific alarm notifications - **/ -public class OpenroadmFaultNotificationListener implements OrgOpenroadmAlarmListener { - private static final Logger log = LoggerFactory.getLogger(OpenroadmFaultNotificationListener.class); - - private final @NonNull FaultService faultEventListener; - private @NonNull WebsocketManagerService notificationService; - private Integer count = 1; - - - public OpenroadmFaultNotificationListener(DeviceManagerServiceProvider serviceProvider) { - this.faultEventListener = serviceProvider.getFaultService(); - this.notificationService = serviceProvider.getWebsocketService(); - - } - - @Override - public void onAlarmNotification(AlarmNotification notification) { - - - log.info("AlarmNotification {} \t {}", notification.getId(), notification.getAdditionalDetail()); - final String nodeId = notification.getResource().getDevice().getNodeId().getValue(); - FaultlogEntity faultAlarm = new FaultlogBuilder().setObjectId(notification.getCircuitId()) - .setProblem(notification.getProbableCause().getCause().getName()).setSourceType(SourceType.Netconf) - .setTimestamp(notification.getRaiseTime()).setId(notification.getId()).setNodeId(nodeId) - .setSeverity(InitialDeviceAlarmReader.checkSeverityValue(notification.getSeverity())).setCounter(count) - .build(); - - this.faultEventListener.faultNotification(faultAlarm); - this.notificationService.sendNotification(notification, nodeId, AlarmNotification.QNAME, - notification.getRaiseTime()); - count++; - log.info("Notification is written into the database {}", faultAlarm.getObjectId()); - - } - - - -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java deleted file mode 100644 index abaec72ab..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java +++ /dev/null @@ -1,149 +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.openroadm.impl; - -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.OrgOpenroadmDevice; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.circuit.packs.CircuitPacks; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.interfaces.grp.Interface; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.org.openroadm.device.Xponder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.shelves.Shelves; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.InventoryBuilder; -import org.opendaylight.yangtools.yang.common.Uint32; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Shabnam Sultana - * - * Reading the inventory data of an open roadm device - * - **/ -public class OpenroadmInventoryInput { - // variable - private static final Logger log = LoggerFactory.getLogger(OpenroadmInventoryInput.class); - private OrgOpenroadmDevice openRoadmDevice; - private final NetconfAccessor accessor; - // end of variables - - // constructors - public OpenroadmInventoryInput(NetconfAccessor netconfAccessor, OrgOpenroadmDevice roadmDevice) { - this.openRoadmDevice = roadmDevice; - this.accessor = netconfAccessor; - } - // end of constructors - - // public methods - public Inventory getInventoryData(Uint32 treeLevel) { - InventoryBuilder inventoryBuilder = new InventoryBuilder(); - log.info("Info for device {}", this.openRoadmDevice.getInfo().getNodeId().getValue()); - inventoryBuilder.setNodeId(this.accessor.getNodeId().getValue()) - .setUuid(this.openRoadmDevice.getInfo().getNodeId() == null ? "N/A" - : this.openRoadmDevice.getInfo().getNodeId().getValue()) - .setDate(this.openRoadmDevice.getInfo().getCurrentDatetime().getValue()) - .setId(this.openRoadmDevice.getInfo().getNodeId().getValue()) - .setManufacturerIdentifier(this.openRoadmDevice.getInfo().getVendor()) - .setModelIdentifier(this.openRoadmDevice.getInfo().getModel()) - .setSerial(this.openRoadmDevice.getInfo().getSerialId()).setTreeLevel(treeLevel) - .setVersion(this.openRoadmDevice.getInfo().getOpenroadmVersion().getName()) - .setDescription("org-openroadm-device").setParentUuid("None") - .setTypeName(this.openRoadmDevice.getInfo().getNodeType().getName()).setPartTypeId("device"); - log.info("Inventory data written for device {}", this.openRoadmDevice.getInfo().getNodeId().getValue()); - return inventoryBuilder.build(); - } - - public Inventory getShelvesInventory(Shelves shelf, Uint32 treeLevel) { - InventoryBuilder inventoryBuilder = new InventoryBuilder(); - inventoryBuilder.setNodeId(this.accessor.getNodeId().getValue()).setId(shelf.getShelfName()) - .setDescription((shelf.getUserDescription() == null) - ? ("Position: " + shelf.getShelfPosition() + "\nState: " + shelf.getOperationalState()) - : (shelf.getUserDescription()) + "\nPosition: " + shelf.getShelfPosition() + "\nState: " - + shelf.getOperationalState()) - .setSerial(shelf.getSerialId()).setUuid(shelf.getShelfName()) - .setParentUuid(this.openRoadmDevice.getInfo().getNodeId().getValue()).setTreeLevel(treeLevel) - .setTypeName(shelf.getShelfType()).setPartTypeId(shelf.getClei()) - .setManufacturerIdentifier(shelf.getVendor()).setModelIdentifier(shelf.getModel()) - .setVersion(shelf.getHardwareVersion()).setDate(shelf.getManufactureDate().getValue()); - log.info("Inventory data written for Shelf {}", shelf.getShelfName()); - return inventoryBuilder.build(); - } - - public Inventory getInterfacesInventory(Interface deviceInterface, Uint32 treeLevel) { - InventoryBuilder inventoryBuilder = new InventoryBuilder(); - inventoryBuilder.setNodeId(this.accessor.getNodeId().getValue()).setId(deviceInterface.getName()) - .setDescription((deviceInterface.getDescription() == null) ? "N/A" : deviceInterface.getDescription()) - .setUuid(deviceInterface.getName()).setSerial(deviceInterface.getName()) - .setParentUuid((deviceInterface.getSupportingCircuitPackName() != null) - ? deviceInterface.getSupportingCircuitPackName() - : ((deviceInterface.getSupportingInterface() != null) ? deviceInterface.getSupportingInterface() - : this.openRoadmDevice.getInfo().getNodeId().getValue())) - .setTreeLevel(treeLevel) - .setTypeName((deviceInterface.getType() == null) ? "Interface" - : deviceInterface.getType().getName().substring(69, - deviceInterface.getType().getName().length())) - .setPartTypeId("Interface").setManufacturerIdentifier(this.openRoadmDevice.getInfo().getVendor()) - .setModelIdentifier(this.openRoadmDevice.getInfo().getModel()).setVersion("N/A") - .setDate(this.openRoadmDevice.getInfo().getCurrentDatetime().getValue()); - log.info("Inventory data written for Interface {}", deviceInterface.getName()); - - return inventoryBuilder.build(); - } - - public Inventory getCircuitPackInventory(CircuitPacks circuitPack, Uint32 treeLevel) { - InventoryBuilder inventoryBuilder = new InventoryBuilder(); - inventoryBuilder.setNodeId(this.accessor.getNodeId().getValue()).setUuid(circuitPack.getCircuitPackName()) - .setDate((circuitPack.getManufactureDate() == null) ? "N/A" - : circuitPack.getManufactureDate().getValue().substring(0, 19)) - .setId(circuitPack.getCircuitPackName()).setManufacturerIdentifier(circuitPack.getVendor()) - .setModelIdentifier(circuitPack.getModel()).setSerial(circuitPack.getSerialId()).setTreeLevel(treeLevel) - .setVersion(circuitPack.getHardwareVersion()) - .setDescription("ProductCode: " + circuitPack.getProductCode() + " " + "Mode: " - + circuitPack.getCircuitPackMode()) - .setTypeName((circuitPack.getType() == null) ? circuitPack.getCircuitPackType() : circuitPack.getType()) - .setPartTypeId((circuitPack.getClei() == null) ? circuitPack.getType() : circuitPack.getClei()) - .setParentUuid((circuitPack.getParentCircuitPack() != null) - ? circuitPack.getParentCircuitPack().getCircuitPackName() - : ((circuitPack.getShelf() != null) ? circuitPack.getShelf() - : this.openRoadmDevice.getInfo().getNodeId().getValue())); - log.info("Inventory data written for CircuitPack {}", circuitPack.getCircuitPackName()); - - return inventoryBuilder.build(); - } - - public Inventory getXponderInventory(Xponder xpdr, Uint32 treeLevel) { - InventoryBuilder inventoryBuilder = new InventoryBuilder(); - inventoryBuilder.setNodeId(this.accessor.getNodeId().getValue()).setId(xpdr.getXpdrNumber().toString()) - .setDescription("Xponder\nLifecycleState: " + xpdr.getLifecycleState().getName()) - .setUuid(xpdr.getXpdrNumber().toString()).setSerial(xpdr.getXpdrNumber().toString()) - .setParentUuid(this.openRoadmDevice.getInfo().getNodeId().getValue()).setTreeLevel(treeLevel) - .setTypeName(xpdr.getXpdrType().getName()).setPartTypeId(xpdr.getXpdrType().getName()) - .setManufacturerIdentifier(this.openRoadmDevice.getInfo().getVendor()) - .setModelIdentifier(this.openRoadmDevice.getInfo().getModel()) - .setVersion(this.openRoadmDevice.getInfo().getOpenroadmVersion().getName()) - .setDate(this.openRoadmDevice.getInfo().getCurrentDatetime().getValue()); - log.info("Inventory data written for Xponder{}", xpdr.getXpdrNumber()); - - return inventoryBuilder.build(); - } - // end of public methods -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java deleted file mode 100644 index 02f8547ae..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java +++ /dev/null @@ -1,323 +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.openroadm.impl; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Hashtable; -import java.util.List; -import org.eclipse.jdt.annotation.NonNull; -import org.onap.ccsdk.features.sdnr.wt.common.YangHelper; -import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.NetconfTimeStamp; -import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; -import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.OrgOpenroadmDevice; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.circuit.packs.CircuitPacks; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.interfaces.grp.Interface; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.org.openroadm.device.Xponder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.shelf.Slots; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.shelves.Shelves; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.xponder.XpdrPort; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntity; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType; -import org.opendaylight.yangtools.concepts.ListenerRegistration; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.NotificationListener; -import org.opendaylight.yangtools.yang.common.Uint32; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Shabnam Sultana - * - * Creating the openroadm device as an optical network element and writing inventory, fault, pm data to elastic - * search db - * - **/ -public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase { - - // variables - private final long equipmentLevel = 1; - private static final Logger log = LoggerFactory.getLogger(OpenroadmNetworkElement.class); - private Hashtable circuitPacksRecord; - private Hashtable shelfProvisionedcircuitPacks; - private ListenerRegistration openRdmListenerRegistrationResult; - private @NonNull final OpenroadmChangeNotificationListener openRdmListener; - private ListenerRegistration opnRdmFaultListenerRegistrationResult; - private @NonNull OpenroadmFaultNotificationListener opnRdmFaultListener; - private ListenerRegistration opnRdmDeviceListenerRegistrationResult; - private OpenroadmDeviceChangeNotificationListener opnRdmDeviceListener; - private OpenroadmInventoryInput opnRdmInventoryInput; - private PmDataBuilderOpenRoadm openRoadmPmData; - private InitialDeviceAlarmReader initialAlarmReader; - - private static final NetconfTimeStamp ncTimeConverter = NetconfTimeStampImpl.getConverter(); - private int counter = 1; - // end of variables - - // constructors - public OpenroadmNetworkElement(NetconfBindingAccessor netconfAccess, DeviceManagerServiceProvider serviceProvider) { - - super(netconfAccess, serviceProvider); - - log.info("Create {}", OpenroadmNetworkElement.class.getSimpleName()); - this.openRdmListenerRegistrationResult = null; - this.openRdmListener = new OpenroadmChangeNotificationListener(netconfAccessor, databaseService, - serviceProvider.getWebsocketService()); - this.opnRdmFaultListenerRegistrationResult = null; - this.opnRdmFaultListener = new OpenroadmFaultNotificationListener(serviceProvider); - this.opnRdmDeviceListenerRegistrationResult = null; - this.opnRdmDeviceListener = new OpenroadmDeviceChangeNotificationListener(netconfAccessor, databaseService, - serviceProvider.getWebsocketService()); - this.circuitPacksRecord = new Hashtable<>(); - this.shelfProvisionedcircuitPacks = new Hashtable<>(); - this.openRoadmPmData = new PmDataBuilderOpenRoadm(this.netconfAccessor); - this.initialAlarmReader = new InitialDeviceAlarmReader(this.netconfAccessor, serviceProvider); - log.info("NodeId {}", this.netconfAccessor.getNodeId().getValue()); - - - } - // end of constructors - - // public methods - public void initialReadFromNetworkElement() { - - OrgOpenroadmDevice device = readDevice(this.netconfAccessor); - this.opnRdmInventoryInput = new OpenroadmInventoryInput(this.netconfAccessor, device); - log.info("openroadmMapper details{}", this.opnRdmInventoryInput.getClass().getName()); - List inventoryList = new ArrayList<>(); - inventoryList.add(this.opnRdmInventoryInput.getInventoryData(Uint32.valueOf(equipmentLevel))); - readShelvesData(inventoryList, device); - readXpndrData(inventoryList, device); - readCircuitPacketData(inventoryList, device); - readInterfaceData(inventoryList, device); - this.databaseService.writeInventory(this.netconfAccessor.getNodeId().getValue(), inventoryList); - // Writing initial alarms at the time of device registration - initialAlarmReader.faultService(); - // Writing historical PM data at the time of device registration - List pmDataEntity = new ArrayList<>(); - pmDataEntity = this.openRoadmPmData.buildPmDataEntity(this.openRoadmPmData.getPmData(this.netconfAccessor)); - if (!pmDataEntity.isEmpty()) { - this.databaseService.doWritePerformanceData(pmDataEntity); - log.info("PmDatEntity is written with size {}", pmDataEntity.size()); - for (PmdataEntity ent : pmDataEntity) { - log.info("GetNode: {}, granPeriod: {}", ent.getNodeName(), ent.getGranularityPeriod().getName()); - } - } else { - log.info("PmDatEntity is empty"); - } - } - - - @Override - public void register() { - initialReadFromNetworkElement(); - - this.openRdmListenerRegistrationResult = netconfAccessor.doRegisterNotificationListener(openRdmListener); - this.opnRdmFaultListenerRegistrationResult = - netconfAccessor.doRegisterNotificationListener(opnRdmFaultListener); - this.opnRdmDeviceListenerRegistrationResult = - netconfAccessor.doRegisterNotificationListener(opnRdmDeviceListener); - // Register netconf stream - netconfAccessor.registerNotificationsStream(NetconfAccessor.DefaultNotificationsStream); - } - - @Override - public void deregister() { - if (openRdmListenerRegistrationResult != null) { - this.openRdmListenerRegistrationResult.close(); - } - if (opnRdmFaultListenerRegistrationResult != null) { - this.opnRdmFaultListenerRegistrationResult.close(); - } - if (opnRdmDeviceListenerRegistrationResult != null) { - this.opnRdmDeviceListenerRegistrationResult.close(); - } - } - - // end of public methods - - // private methods - private void readShelvesData(List inventoryList, OrgOpenroadmDevice device) { - Collection shelves = YangHelper.getCollection(device.getShelves()); - if (shelves != null) { - for (Shelves shelf : shelves) { - log.info( - "Shelf Name: {}, \n Serial Id:{}, \n Product Code;{}, \n Position:{}, \n EquipmetState: {}, \n Hardware version: {}" - + "\n ShelfType:{}, \n Vendor: {}, \n LifecycleState: {} ", - shelf.getShelfName(), shelf.getSerialId(), shelf.getProductCode(), shelf.getShelfPosition(), - shelf.getEquipmentState(), shelf.getHardwareVersion(), shelf.getShelfType(), shelf.getVendor(), - shelf.getLifecycleState()); - inventoryList - .add(this.opnRdmInventoryInput.getShelvesInventory(shelf, Uint32.valueOf(equipmentLevel + 1))); - Collection slotList = YangHelper.getCollection(shelf.getSlots()); - if (slotList != null) { - for (Slots slot : slotList) { - if (slot.getProvisionedCircuitPack() != null) { - this.shelfProvisionedcircuitPacks.put(slot.getProvisionedCircuitPack(), equipmentLevel + 2); - } - log.info("Slots for the shelf: {}", shelf.getShelfName()); - log.info("\n Slot Name: {}, \n Status: {}, \n Slot label: {} ", slot.getSlotName(), - slot.getSlotStatus(), slot.getLabel()); - } - } - } - log.info("size of shelfProvisionedcircuitPacks: {} ", shelfProvisionedcircuitPacks.size()); - } - - } - - private void readXpndrData(List inventoryList, OrgOpenroadmDevice device) { - Collection xponderList = YangHelper.getCollection(device.getXponder()); - - if (xponderList != null) { - for (Xponder xponder : xponderList) { - - inventoryList.add( - this.opnRdmInventoryInput.getXponderInventory(xponder, Uint32.valueOf(equipmentLevel + 1))); - log.info("Xponders: No.: {} , \n Port: {} ,\n Type: {}", xponder.getXpdrNumber(), xponder.getXpdrPort(), - xponder.getXpdrType()); - Collection xpdrportlist = YangHelper.getCollection(xponder.getXpdrPort()); - if (xpdrportlist != null) { - for (XpdrPort xpdrport : xpdrportlist) - if (xpdrport.getCircuitPackName() != null) { - this.shelfProvisionedcircuitPacks.put(xpdrport.getCircuitPackName(), equipmentLevel + 2); - log.info("Size of dict{}", this.shelfProvisionedcircuitPacks.size()); - } - } - - } - } - } - - private void readCircuitPacketData(List inventoryList, OrgOpenroadmDevice device) { - Collection circuitpackCollection = YangHelper.getCollection(device.getCircuitPacks()); - List cpNameList = new ArrayList<>(); - - if (circuitpackCollection != null) { - // collect all circuit pack names. Required to check for invalid parents later on - for (CircuitPacks cp : circuitpackCollection) { - cpNameList.add(cp.getCircuitPackName()); - } - - for (CircuitPacks cp : circuitpackCollection) { - log.info("CP Name:{}", cp.getCircuitPackName()); - - if (cp.getParentCircuitPack() == null - && !this.shelfProvisionedcircuitPacks.containsKey(cp.getCircuitPackName())) { - log.info("cp has no parent and no shelf"); - this.circuitPacksRecord.put(cp.getCircuitPackName(), (equipmentLevel + 1)); - inventoryList.add( - this.opnRdmInventoryInput.getCircuitPackInventory(cp, Uint32.valueOf(equipmentLevel + 1))); - } else { - // check for missing valid parent circuit name - if (cp.getParentCircuitPack().getCpSlotName() != null - && cp.getParentCircuitPack().getCircuitPackName() == null) { - - log.info("Cp {} has slotname of the parent circuit pack but no parent circuit pack name", - cp.getCircuitPackName()); - this.circuitPacksRecord.put(cp.getCircuitPackName(), (equipmentLevel + 3)); - inventoryList.add(this.opnRdmInventoryInput.getCircuitPackInventory(cp, - Uint32.valueOf(equipmentLevel + 3))); - databaseService.writeEventLog(writeIncorrectParentLog(cp.getCircuitPackName(), counter) - .setObjectId(device.getInfo().getNodeId().getValue()) - .setId(cp.getParentCircuitPack().getCpSlotName()) - .setNewValue("Missing parent circuit pack name").build()); - } else if (cp.getParentCircuitPack().getCircuitPackName() != null - && this.shelfProvisionedcircuitPacks - .containsKey(cp.getParentCircuitPack().getCircuitPackName())) { - log.info("Cp {} has parent circuit pack and shelf", cp.getCircuitPackName()); - this.circuitPacksRecord.put(cp.getCircuitPackName(), (equipmentLevel + 3)); - inventoryList.add(this.opnRdmInventoryInput.getCircuitPackInventory(cp, - Uint32.valueOf(equipmentLevel + 3))); - } else { - // check for incorrect hierarchy - if (cp.getParentCircuitPack().getCircuitPackName() != null - && !cpNameList.contains(cp.getParentCircuitPack().getCircuitPackName())) { - databaseService.writeEventLog(writeIncorrectParentLog(cp.getCircuitPackName(), counter) - .setObjectId(device.getInfo().getNodeId().getValue()) - .setId(cp.getParentCircuitPack().getCpSlotName()).build()); - } - - log.info("Cp has parent circuit pack but no shelf or a shelf but no parent circuit pack"); - this.circuitPacksRecord.put(cp.getCircuitPackName(), (equipmentLevel + 2)); - inventoryList.add(this.opnRdmInventoryInput.getCircuitPackInventory(cp, - Uint32.valueOf(equipmentLevel + 2))); - } - - } - } - - } - } - - private void readInterfaceData(List inventoryList, OrgOpenroadmDevice device) { - Collection interfaceList = YangHelper.getCollection(device.getInterface()); - if (interfaceList != null) { - for (Interface deviceInterface : interfaceList) { - log.info("\n InterfaceName: {}", deviceInterface.getName()); - log.info("Supporting CP {}", this.circuitPacksRecord.size()); - for (String s : this.circuitPacksRecord.keySet()) { - log.info("{} value {}", s, this.circuitPacksRecord.get(s)); - } - log.info("Interface {} and their supporting CP {}", deviceInterface.getName(), - deviceInterface.getSupportingCircuitPackName()); - if (deviceInterface.getSupportingCircuitPackName() != null) { - if (this.circuitPacksRecord.containsKey(deviceInterface.getSupportingCircuitPackName())) { - inventoryList.add(this.opnRdmInventoryInput.getInterfacesInventory(deviceInterface, - Uint32.valueOf( - this.circuitPacksRecord.get(deviceInterface.getSupportingCircuitPackName()) - + 1))); - } - } else { - inventoryList.add(this.opnRdmInventoryInput.getInterfacesInventory(deviceInterface, - Uint32.valueOf(equipmentLevel + 1))); - } - } - } - } - - private OrgOpenroadmDevice readDevice(NetconfBindingAccessor accessor) { - final Class openRoadmDev = OrgOpenroadmDevice.class; - InstanceIdentifier deviceId = InstanceIdentifier.builder(openRoadmDev).build(); - return accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, - deviceId); - } - - private EventlogBuilder writeIncorrectParentLog(String attributeName, Integer counter) { - EventlogBuilder eventlogBuilder = new EventlogBuilder(); - eventlogBuilder.setAttributeName(attributeName).setCounter(counter) - .setNodeId(this.netconfAccessor.getNodeId().getValue()).setSourceType(SourceType.Netconf) - .setNewValue("Invalid parent circuit-pack name") - .setTimestamp(new DateAndTime(ncTimeConverter.getTimeStamp())); - - return eventlogBuilder; - - } - // end of private methods -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementBase.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementBase.java deleted file mode 100644 index 9949056bb..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementBase.java +++ /dev/null @@ -1,74 +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.openroadm.impl; - -import java.util.Optional; -import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElementService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; - -public class OpenroadmNetworkElementBase implements NetworkElement { - - protected final NetconfBindingAccessor netconfAccessor; - protected final DataProvider databaseService; - - public OpenroadmNetworkElementBase(NetconfBindingAccessor netconfAccess, - DeviceManagerServiceProvider serviceProvider) { - - this.netconfAccessor = netconfAccess; - this.databaseService = serviceProvider.getDataProvider(); - } - - @Override - public void register() {} - - @Override - public void deregister() {} - - @Override - public void warmstart() {} - - @Override - public NodeId getNodeId() { - return netconfAccessor.getNodeId(); - } - - @Override - public NetworkElementDeviceType getDeviceType() { - return NetworkElementDeviceType.OROADM; - } - - @Override - public Optional getService(Class clazz) { - return Optional.empty(); - } - - @Override - public Optional getAcessor() { - return Optional.of(netconfAccessor); - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementFactory.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementFactory.java deleted file mode 100644 index cc8eaa68e..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementFactory.java +++ /dev/null @@ -1,71 +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.openroadm.impl; - -import java.util.Optional; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.NetworkElementFactory; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.OrgOpenroadmDevice; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Shabnam Sultana - * - * Register the openroadm device as an optical network element - * - **/ - -public class OpenroadmNetworkElementFactory implements NetworkElementFactory { - - // variables - private static final Logger log = LoggerFactory.getLogger(OpenroadmNetworkElementFactory.class); - // end of variables - - // public methods - @Override - public Optional create(NetconfAccessor accessor, DeviceManagerServiceProvider serviceProvider) { - - if (accessor.getCapabilites().isSupportingNamespaceAndRevision(OrgOpenroadmDevice.QNAME)) { - log.info("Create OpenRoadm device {} ", OpenroadmNetworkElement.class.getName()); - log.info("Node Id read by Acessor {}:", accessor.getNodeId().getValue()); - Optional bindingAccessor = accessor.getNetconfBindingAccessor(); - if (bindingAccessor.isPresent()) { - return Optional.of(new OpenroadmNetworkElement(bindingAccessor.get(), serviceProvider)); - } - } else if (accessor.getCapabilites().isSupportingNamespaceAndRevision("http://org/openroadm/device","2018-10-19")) { - log.info("Create OpenRoadm base device {} ", OpenroadmNetworkElementBase.class.getName()); - log.info("Node Id read by Acessor {}:", accessor.getNodeId().getValue()); - Optional bindingAccessor = accessor.getNetconfBindingAccessor(); - if (bindingAccessor.isPresent()) { - return Optional.of(new OpenroadmNetworkElementBase(bindingAccessor.get(), serviceProvider)); - } - } - return Optional.empty(); - } - // end of public methods - -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/PmDataBuilderOpenRoadm.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/PmDataBuilderOpenRoadm.java deleted file mode 100644 index f1fd4471f..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/PmDataBuilderOpenRoadm.java +++ /dev/null @@ -1,290 +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.openroadm.impl; - -import java.net.URL; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.onap.ccsdk.features.sdnr.wt.common.YangHelper; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; -import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.HistoricalPmList; -import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.group.HistoricalPm; -import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.list.HistoricalPmEntry; -import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.historical.pm.val.group.Measurement; -import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmDataType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmGranularity; -import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129.PmNamesEnum; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.g836.pm.types.rev200413.ErroredSecond; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.g836.pm.types.rev200413.SeverelyErroredSecond; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.openroadm.pm.types.rev200413.PerformanceMeasurementTypeId; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GranularityPeriodType; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntity; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntityBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.entity.PerformanceDataBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.MeasurementBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.MeasurementKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.Celsius; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.DB; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.DBm; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.Fahrenheit; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.KHz; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.MW; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.PerformanceMeasurementUnitId; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.osgi.framework.Bundle; -import org.osgi.framework.BundleContext; -import org.osgi.framework.FrameworkUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author shabnam - * - * Reading Openroadm PM data and returning as PmDataEntitiy data - */ -public class PmDataBuilderOpenRoadm { - // variables - private static final Logger log = LoggerFactory.getLogger(PmDataBuilderOpenRoadm.class); - private PmdataEntityBuilder pmDataBuilder; - private Bundle b = FrameworkUtil.getBundle(this.getClass()); - - // end of variables - // constructors - public PmDataBuilderOpenRoadm(NetconfBindingAccessor accessor) { - this.pmDataBuilder = new PmdataEntityBuilder(); - this.pmDataBuilder.setNodeName(accessor.getNodeId().getValue()); - } - - // end of constructors - // public methods - // Read PM data - public HistoricalPmList getPmData(NetconfBindingAccessor accessor) { - final Class pmDataClass = HistoricalPmList.class; - log.info("Get PM data for element {}", accessor.getNodeId().getValue()); - InstanceIdentifier pmDataIid = InstanceIdentifier.builder(pmDataClass).build(); - return accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL, - pmDataIid); - - } - - // Build PM entity for writing into the database - public List buildPmDataEntity(HistoricalPmList historicalPmEnitityList) { - List pmEntitiyList = new ArrayList<>(); - Collection pmDataEntryList = - YangHelper.getCollection(historicalPmEnitityList.getHistoricalPmEntry()); - for (HistoricalPmEntry pmDataEntry : pmDataEntryList) { - pmDataBuilder.setUuidInterface(pmDataEntry.getPmResourceType().getName()); - Collection historicalPmList = YangHelper.getCollection(pmDataEntry.getHistoricalPm()); - for (HistoricalPm historicalPm : historicalPmList) { - log.info("PmName:{}", historicalPm.getType()); - // pmDataBuilder.setPerformanceData(value) - - try { - writeperformanceData(historicalPm); - } catch (ClassNotFoundException e) { - log.info("No relevant data found"); - } - pmEntitiyList.add(this.pmDataBuilder.build()); - - log.info("PmListSize before db writing: {}", pmEntitiyList.size()); - } - log.info("PmListSize before db writing: {}", pmEntitiyList.size()); - } - return pmEntitiyList; - } - // end of public methods - - // private methods - private void writeperformanceData(HistoricalPm historicalPm) throws ClassNotFoundException { - Collection measurementList = YangHelper.getCollection(historicalPm.getMeasurement()); - Map measurementMap=new HashMap<>(); - // Map Performance data of PmDataEntity with MeasurmentData-HistoricalPm - PerformanceDataBuilder performanceDataBuilder = new PerformanceDataBuilder(); - for (Measurement measurementData : measurementList) { - this.pmDataBuilder.setGranularityPeriod(mapGranularityPeriod(measurementData.getGranularity())) - .setTimeStamp(measurementData.getCompletionTime()); - if (measurementData.getValidity().getName().equals("suspect")) { - this.pmDataBuilder.setSuspectIntervalFlag(true); - } - measurementMap.put(new MeasurementKey(measurementBuilder(historicalPm.getType(), measurementData.getPmParameterUnit(), - measurementData.getPmParameterValue()).getPmKey()), measurementBuilder(historicalPm.getType(), measurementData.getPmParameterUnit(), - measurementData.getPmParameterValue())); - - - } - - pmDataBuilder.setPerformanceData(performanceDataBuilder.setMeasurement(measurementMap).build()); - } - - - - // Mapping Granularity period of PmDataEntity with PmGranularity of MeasurmentData-HistoricalPm - private GranularityPeriodType mapGranularityPeriod(PmGranularity pmGranularity) { - - GranularityPeriodType granPeriod = null; - switch (pmGranularity.getName()) { - case ("notApplicable"): - granPeriod = GranularityPeriodType.Unknown; - break; - case ("15min"): - granPeriod = GranularityPeriodType.Period15Min; - break; - case ("24Hour"): - granPeriod = GranularityPeriodType.Period24Hours; - break; - default: - granPeriod = GranularityPeriodType.Period15Min; - break; - } - return granPeriod; - } - - private List> setMeasurementTypeId() { - String packageName = - "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.openroadm.pm.types.rev200413"; - String packageName1 = - "/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/data/provider/openroadm/pm/types/rev200413/"; - List> measTypeObjList = - new ArrayList<>(); - URL root = Thread.currentThread().getContextClassLoader().getResource(packageName1); - - log.info("path for type package: {}", root); - - Enumeration results = getFileURL(b, packageName); - log.info("FOund Packages {}", results); - if(results != null) { - while (results.hasMoreElements()) { - URL path = results.nextElement(); - - Class cls1 = loadClass(b, path.getFile()); - - if (PerformanceMeasurementTypeId.class.isAssignableFrom(cls1)) { - measTypeObjList.add((Class) cls1); - - - } - if(cls1!=null) { - log.info("Class Added {}", cls1.getSimpleName()); - } - - } - - - } - - return measTypeObjList; - } - - private Class setMeasurementUnit(String unitName) { - Class measurementUnitClass = null; - switch (unitName) { - case ("celsius"): - measurementUnitClass = Celsius.class; - break; - case("dB"): - measurementUnitClass = DB.class; - break; - case("dBm"): - measurementUnitClass = DBm.class; - break; - case("fahrenheit"): - measurementUnitClass = Fahrenheit.class; - break; - case("kHz"): - measurementUnitClass = KHz.class; - break; - case("mW"): - measurementUnitClass = MW.class; - break; - default: - break; - } - return measurementUnitClass; - } - - private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.Measurement measurementBuilder( - PmNamesEnum pmType, String pmUnit, PmDataType pmDataType) { - - MeasurementBuilder measBuilder = new MeasurementBuilder(); - if (pmType.getName().equals("erroredSeconds") ) { - measBuilder.setPmKey(ErroredSecond.class); - } else if (pmType.getName().equals("severelyErroredSeconds")) { - measBuilder.setPmKey(SeverelyErroredSecond.class); - } else { - for (Class obj : setMeasurementTypeId()) { - if (obj.toString().contains(pmType.name())) { - measBuilder.setPmKey(obj); - } - } - } - measBuilder.setPmUnit(setMeasurementUnit(pmUnit)); - measBuilder.setPmValue(pmDataType); - return measBuilder.build(); - - } - - private Class loadClass(Bundle bundle, String classFilePath) { - String className = classFilePath.replaceFirst("^/", "").replace('/', '.').replaceFirst(".class$", ""); - try { - return bundle.loadClass(className); - } catch (Exception e) { - log.info(String.format("Class [%s] could not be loaded. Message: [%s].", className, e.getMessage())); - } - return null; - } - - private static Enumeration getFileURL(Bundle b, String classPath) { - - BundleContext context = b == null ? null : b.getBundleContext(); - if (context == null) { - log.info("no bundle context available"); - return null; - } - Bundle[] bundles = context.getBundles(); - if (bundles == null || bundles.length <= 0) { - log.info("no bundles found"); - return null; - } - log.info("found {} bundles", bundles.length); - Enumeration resultUrl = null; - - for (Bundle bundle : bundles) { - resultUrl = bundle.findEntries("/" + classPath.replace(".", "/"), "*.class", false); - if (resultUrl != null) { - break; - - } - - } - - return resultUrl; - } - - - // end of private methods -} - diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev191129/PmDataTypeBuilder.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev191129/PmDataTypeBuilder.java deleted file mode 100644 index 249da71fb..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev191129/PmDataTypeBuilder.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129; - -/** - * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string - * representation. In some cases it is very difficult to automate it since there can be unions such as (uint32 - - * uint16), or (string - uint32). - * - * The reason behind putting it under src/main/java is: This class is generated in form of a stub and needs to be - * finished by the user. This class is generated only once to prevent loss of user code. - * - */ -public class PmDataTypeBuilder { - private PmDataTypeBuilder() { - //Exists only to defeat instantiation. - } - - public static PmDataType getDefaultInstance(String defaultValue) { - throw new UnsupportedOperationException("Not yet implemented"); - } - -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/OperatorStateBuilder.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/OperatorStateBuilder.java deleted file mode 100644 index 30a55a203..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/OperatorStateBuilder.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.alarms.rev190911; - -/** - * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string - * representation. In some cases it is very difficult to automate it since there can be unions such as (uint32 - - * uint16), or (string - uint32). - * - * The reason behind putting it under src/main/java is: This class is generated in form of a stub and needs to be - * finished by the user. This class is generated only once to prevent loss of user code. - * - */ -public class OperatorStateBuilder { - private OperatorStateBuilder() { - //Exists only to defeat instantiation. - } - - public static OperatorState getDefaultInstance(String defaultValue) { - throw new UnsupportedOperationException("Not yet implemented"); - } - -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceBuilder.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceBuilder.java deleted file mode 100644 index a803bae97..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceBuilder.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.alarms.rev190911; - -/** - * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string - * representation. In some cases it is very difficult to automate it since there can be unions such as (uint32 - - * uint16), or (string - uint32). - * - * The reason behind putting it under src/main/java is: This class is generated in form of a stub and needs to be - * finished by the user. This class is generated only once to prevent loss of user code. - * - */ -public class ResourceBuilder { - private ResourceBuilder() { - //Exists only to defeat instantiation. - } - - public static Resource getDefaultInstance(String defaultValue) { - throw new UnsupportedOperationException("Not yet implemented"); - } - -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceMatchBuilder.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceMatchBuilder.java deleted file mode 100644 index bbfa37f40..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceMatchBuilder.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.alarms.rev190911; - -/** - * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string - * representation. In some cases it is very difficult to automate it since there can be unions such as (uint32 - - * uint16), or (string - uint32). - * - * The reason behind putting it under src/main/java is: This class is generated in form of a stub and needs to be - * finished by the user. This class is generated only once to prevent loss of user code. - * - */ -public class ResourceMatchBuilder { - private ResourceMatchBuilder() { - //Exists only to defeat instantiation. - } - - public static ResourceMatch getDefaultInstance(String defaultValue) { - throw new UnsupportedOperationException("Not yet implemented"); - } - -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/SeverityWithClearBuilder.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/SeverityWithClearBuilder.java deleted file mode 100644 index 9fb90b438..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/SeverityWithClearBuilder.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.alarms.rev190911; - -/** - * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string - * representation. In some cases it is very difficult to automate it since there can be unions such as (uint32 - - * uint16), or (string - uint32). - * - * The reason behind putting it under src/main/java is: This class is generated in form of a stub and needs to be - * finished by the user. This class is generated only once to prevent loss of user code. - * - */ -public class SeverityWithClearBuilder { - private SeverityWithClearBuilder() { - //Exists only to defeat instantiation. - } - - public static SeverityWithClear getDefaultInstance(String defaultValue) { - throw new UnsupportedOperationException("Not yet implemented"); - } - -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/alarms/ControlMaxAlarmStatusChangesBuilder.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/alarms/ControlMaxAlarmStatusChangesBuilder.java deleted file mode 100644 index 2b8e8af57..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/alarms/ControlMaxAlarmStatusChangesBuilder.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.alarms.rev190911.alarms; - -/** - * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string - * representation. In some cases it is very difficult to automate it since there can be unions such as (uint32 - - * uint16), or (string - uint32). - * - * The reason behind putting it under src/main/java is: This class is generated in form of a stub and needs to be - * finished by the user. This class is generated only once to prevent loss of user code. - * - */ -public class ControlMaxAlarmStatusChangesBuilder { - private ControlMaxAlarmStatusChangesBuilder() { - //Exists only to defeat instantiation. - } - - public static Control.MaxAlarmStatusChanges getDefaultInstance(String defaultValue) { - throw new UnsupportedOperationException("Not yet implemented"); - } - -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/sdnr/wt/devicemanager-openroadm/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml deleted file mode 100644 index ff3e6a72d..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/resources/version.properties b/sdnr/wt/devicemanager-openroadm/provider/src/main/resources/version.properties deleted file mode 100644 index 6638c04f9..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/resources/version.properties +++ /dev/null @@ -1,24 +0,0 @@ -# -# ============LICENSE_START======================================================= -# ONAP : ccsdk features -# ================================================================================ -# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============LICENSE_END======================================================= -# -# - -# Properties filled in by maven during build process -version = ${project.version} -build = ${buildtime} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/iana-hardware.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/iana-hardware.yang deleted file mode 100755 index 52bcaf3a0..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/iana-hardware.yang +++ /dev/null @@ -1,180 +0,0 @@ -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-openroadm/provider/src/main/yang/ietf-alarms.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/ietf-alarms.yang deleted file mode 100644 index 856320b64..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/ietf-alarms.yang +++ /dev/null @@ -1,1526 +0,0 @@ -module ietf-alarms { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-alarms"; - prefix al; - - import ietf-yang-types { - prefix yang; - reference - "RFC 6991: Common YANG Data Types."; - } - - organization - "IETF CCAMP Working Group"; - contact - "WG Web: - WG List: - - Editor: Stefan Vallin - - - Editor: Martin Bjorklund - "; - description - "This module defines an interface for managing alarms. Main - inputs to the module design are the 3GPP Alarm Integration - Reference Point (IRP), ITU-T X.733, and ANSI/ISA-18.2 alarm - standards. - Main features of this module include: - - * Alarm list: - A list of all alarms. Cleared alarms stay in - the list until explicitly purged. - - * Operator actions on alarms: - Acknowledging and closing alarms. - - * Administrative actions on alarms: - Purging alarms from the list according to specific - criteria. - - * Alarm inventory: - A management application can read all - alarm types implemented by the system. - - * Alarm shelving: - Shelving (blocking) alarms according - to specific criteria. - - * Alarm profiles: - A management system can attach further - information to alarm types, for example, - overriding system-default severity - levels. - - This module uses a stateful view on alarms. An alarm is a state - for a specific resource (note that an alarm is not a - notification). An alarm type is a possible alarm state for a - resource. For example, the tuple: - - ('link-alarm', 'GigabitEthernet0/25') - - is an alarm of type 'link-alarm' on the resource - 'GigabitEthernet0/25'. - - Alarm types are identified using YANG identities and an optional - string-based qualifier. The string-based qualifier allows for - dynamic extension of the statically defined alarm types. Alarm - types identify a possible alarm state and not the individual - notifications. For example, the traditional 'link-down' and - 'link-up' notifications are two notifications referring to the - same alarm type 'link-alarm'. - - With this design, there is no ambiguity about how alarm and - alarm clear correlation should be performed; notifications that - report the same resource and alarm type are considered updates - of the same alarm, e.g., clearing an active alarm or changing - the severity of an alarm. The instrumentation can update the - severity and alarm text on an existing alarm. The above alarm - example can therefore look like the following: - - (('link-alarm', 'GigabitEthernet0/25'), - warning, - 'interface down while interface admin state is up') - - There is a clear separation between updates on the alarm from - the underlying resource, like clear, and updates from an - operator, like acknowledging or closing an alarm: - - (('link-alarm', 'GigabitEthernet0/25'), - warning, - 'interface down while interface admin state is up', - cleared, - closed) - - Administrative actions like removing closed alarms older than a - given time is supported. - - This YANG module does not define how the underlying - instrumentation detects and clears the specific alarms. That - belongs to the Standards Development Organization (SDO) or - enterprise that owns that specific technology. - - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL - NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', - 'MAY', and 'OPTIONAL' in this document are to be interpreted as - described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, - they appear in all capitals, as shown here. - - Copyright (c) 2019 IETF Trust and the persons identified as - authors of the code. All rights reserved. - - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject to - the license terms contained in, the Simplified BSD License set - forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (https://trustee.ietf.org/license-info). - - This version of this YANG module is part of RFC 8632; see - the RFC itself for full legal notices."; - - revision 2019-09-11 { - description - "Initial revision."; - reference - "RFC 8632: A YANG Data Model for Alarm Management"; - } - - /* - * Features - */ - - feature operator-actions { - description - "This feature indicates that the system supports operator - states on alarms."; - } - - feature alarm-shelving { - description - "This feature indicates that the system supports shelving - (blocking) alarms. - - Alarm shelving may have an impact on server processing - resources in order to match alarms against shelf - criteria."; - } - - feature alarm-history { - description - "This feature indicates that the server maintains a history - of state changes for each alarm. For example, if an alarm - toggles between cleared and active 10 times, these state - changes are present in a separate list in the alarm. - - Keeping the alarm history may have an impact on server - memory resources."; - } - - feature alarm-summary { - description - "This feature indicates that the server summarizes the number - of alarms per severity and operator state."; - } - - feature alarm-profile { - description - "The system enables clients to configure further information - to each alarm type."; - } - - feature severity-assignment { - description - "The system supports configurable alarm severity levels."; - reference - "ITU-T Recommendation M.3100: - Generic network information model - ITU-T Recommendation M.3160: - Generic, protocol-neutral management information model"; - } - - feature root-cause-analysis { - description - "The system supports identifying candidate root-cause - resources for an alarm, for example, a disk partition - root cause for a logger failure alarm."; - } - - feature service-impact-analysis { - description - "The system supports identifying candidate-impacted - resources for an alarm, for example, an interface state change - resulting in a link alarm, which can refer to a link as being - impacted."; - } - - feature alarm-correlation { - description - "The system supports correlating/grouping alarms - that belong together."; - } - - /* - * Identities - */ - - identity alarm-type-id { - description - "Base identity for alarm types. A unique identification of - the alarm, not including the resource. Different resources - can share alarm types. If the resource reports the same - alarm type, it is considered to be the same alarm. The alarm - type is a simplification of the different X.733 and 3GPP Alarm - IRP correlation mechanisms, and it allows for - hierarchical extensions. - - A string-based qualifier can be used in addition to the - identity in order to have different alarm types based on - information not known at design time, such as values in - textual SNMP Notification varbinds. - - Standards and vendors can define sub-identities to clearly - identify specific alarm types. - - This identity is abstract and MUST NOT be used for alarms."; - } - - /* - * Common types - */ - - typedef resource { - type union { - type instance-identifier { - require-instance false; - } - type yang:object-identifier; - type string; - type yang:uuid; - } - description - "This is an identification of the alarming resource, such as an - interface. It should be as fine-grained as possible to both - guide the operator and guarantee uniqueness of the alarms. - - If the alarming resource is modeled in YANG, this type will - be an instance-identifier. - - If the resource is an SNMP object, the type will be an - 'object-identifier'. - - If the resource is anything else, for example, a distinguished - name or a Common Information Model (CIM) path, this type will - be a string. - - If the alarming object is identified by a Universally Unique - Identifier (UUID), use the uuid type. Be cautious when using - this type, since a UUID is hard to use for an operator. - - If the server supports several models, the precedence should - be in the order as given in the union definition."; - } - - typedef resource-match { - type union { - type yang:xpath1.0; - type yang:object-identifier; - type string; - } - description - "This type is used to match resources of type 'resource'. - Since the type 'resource' is a union of different types, the - 'resource-match' type is also a union of corresponding types. - - If the type is given as an XPath 1.0 expression, a resource - of type 'instance-identifier' matches if the instance is part - of the node set that is the result of evaluating the XPath 1.0 - expression. For example, the XPath 1.0 expression: - - /ietf-interfaces:interfaces/ietf-interfaces:interface - [ietf-interfaces:type='ianaift:ethernetCsmacd'] - - would match the resource instance-identifier: - - /if:interfaces/if:interface[if:name='eth1'], - - assuming that the interface 'eth1' is of type - 'ianaift:ethernetCsmacd'. - - If the type is given as an object identifier, a resource of - type 'object-identifier' matches if the match object - identifier is a prefix of the resource's object identifier. - For example, the value: - - 1.3.6.1.2.1.2.2 - - would match the resource object identifier: - - 1.3.6.1.2.1.2.2.1.1.5 - - If the type is given as an UUID or a string, it is interpreted - as an XML Schema regular expression, which matches a resource - of type 'yang:uuid' or 'string' if the given regular - expression matches the resource string. - - If the type is given as an XPath expression, it is evaluated - in the following XPath context: - - o The set of namespace declarations is the set of prefix - and namespace pairs for all YANG modules implemented by - the server, where the prefix is the YANG module name and - the namespace is as defined by the 'namespace' statement - in the YANG module. - - If a leaf of this type is encoded in XML, all namespace - declarations in scope on the leaf element are added to - the set of namespace declarations. If a prefix found in - the XML is already present in the set of namespace - declarations, the namespace in the XML is used. - - o The set of variable bindings is empty. - - o The function library is the core function library, and - the functions are defined in Section 10 of RFC 7950. - - o The context node is the root node in the data tree."; - reference - "XML Schema Part 2: Datatypes Second Edition, - World Wide Web Consortium Recommendation - REC-xmlschema-2-20041028"; - } - - typedef alarm-text { - type string; - description - "The string used to inform operators about the alarm. This - MUST contain enough information for an operator to be able to - understand the problem and how to resolve it. If this string - contains structure, this format should be clearly documented - for programs to be able to parse that information."; - } - - typedef severity { - type enumeration { - enum indeterminate { - value 2; - description - "Indicates that the severity level could not be - determined. This level SHOULD be avoided."; - } - enum warning { - value 3; - description - "The 'warning' severity level indicates the detection of a - potential or impending service-affecting fault, before any - significant effects have been felt. Action should be - taken to further diagnose (if necessary) and correct the - problem in order to prevent it from becoming a more - serious service-affecting fault."; - } - enum minor { - value 4; - description - "The 'minor' severity level indicates the existence of a - non-service-affecting fault condition and that corrective - action should be taken in order to prevent a more serious - (for example, service-affecting) fault. Such a severity - can be reported, for example, when the detected alarm - condition is not currently degrading the capacity of the - resource."; - } - enum major { - value 5; - description - "The 'major' severity level indicates that a service- - affecting condition has developed and an urgent corrective - action is required. Such a severity can be reported, for - example, when there is a severe degradation in the - capability of the resource and its full capability must be - restored."; - } - enum critical { - value 6; - description - "The 'critical' severity level indicates that a service- - affecting condition has occurred and an immediate - corrective action is required. Such a severity can be - reported, for example, when a resource becomes totally out - of service and its capability must be restored."; - } - } - description - "The severity level of the alarm. Note well that the value - 'clear' is not included. Whether or not an alarm is cleared - is a separate boolean flag."; - reference - "ITU-T Recommendation X.733: Information Technology - - Open Systems Interconnection - - System Management: Alarm Reporting Function"; - } - - typedef severity-with-clear { - type union { - type enumeration { - enum cleared { - value 1; - description - "The alarm is cleared by the instrumentation."; - } - } - type severity; - } - description - "The severity level of the alarm including clear. This is used - only in notifications reporting state changes for an alarm."; - } - - typedef writable-operator-state { - type enumeration { - enum none { - value 1; - description - "The alarm is not being taken care of."; - } - enum ack { - value 2; - description - "The alarm is being taken care of. Corrective action not - taken yet or has failed"; - } - enum closed { - value 3; - description - "Corrective action taken successfully."; - } - } - description - "Operator states on an alarm. The 'closed' state indicates - that an operator considers the alarm being resolved. This is - separate from the alarm's 'is-cleared' leaf."; - } - - typedef operator-state { - type union { - type writable-operator-state; - type enumeration { - enum shelved { - value 4; - description - "The alarm is shelved. Alarms in /alarms/shelved-alarms/ - MUST be assigned this operator state by the server as - the last entry in the 'operator-state-change' list. The - text for that entry SHOULD include the shelf name."; - } - enum un-shelved { - value 5; - description - "The alarm is moved back to 'alarm-list' from a shelf. - Alarms that are moved from /alarms/shelved-alarms/ to - /alarms/alarm-list MUST be assigned this state by the - server as the last entry in the 'operator-state-change' - list. The text for that entry SHOULD include the shelf - name."; - } - } - } - description - "Operator states on an alarm. The 'closed' state indicates - that an operator considers the alarm being resolved. This is - separate from the alarm's 'is-cleared' leaf."; - } - - /* Alarm type */ - - typedef alarm-type-id { - type identityref { - base alarm-type-id; - } - description - "Identifies an alarm type. The description of the alarm type - id MUST indicate whether or not the alarm type is abstract. - An abstract alarm type is used as a base for other alarm type - ids and will not be used as a value for an alarm or be present - in the alarm inventory."; - } - - typedef alarm-type-qualifier { - type string; - description - "If an alarm type cannot be fully specified at design time by - 'alarm-type-id', this string qualifier is used in addition to - fully define a unique alarm type. - - The definition of alarm qualifiers is considered to be part of - the instrumentation and is out of scope for this module. An - empty string is used when this is part of a key."; - } - - /* - * Groupings - */ - - grouping common-alarm-parameters { - description - "Common parameters for an alarm. - - This grouping is used both in the alarm list and in the - notification representing an alarm-state change."; - leaf resource { - type resource; - mandatory true; - description - "The alarming resource. See also 'alt-resource'. This could - be, for example, a reference to the alarming interface"; - } - leaf alarm-type-id { - type alarm-type-id; - mandatory true; - description - "This leaf and the leaf 'alarm-type-qualifier' together - provide a unique identification of the alarm type."; - } - leaf alarm-type-qualifier { - type alarm-type-qualifier; - description - "This leaf is used when the 'alarm-type-id' leaf cannot - uniquely identify the alarm type. Normally, this is not the - case, and this leaf is the empty string."; - } - leaf-list alt-resource { - type resource; - description - "Used if the alarming resource is available over other - interfaces. This field can contain SNMP OIDs, CIM paths, or - 3GPP distinguished names, for example."; - } - list related-alarm { - if-feature "alarm-correlation"; - key "resource alarm-type-id alarm-type-qualifier"; - description - "References to related alarms. Note that the related alarm - might have been purged from the alarm list."; - leaf resource { - type leafref { - path "/alarms/alarm-list/alarm/resource"; - require-instance false; - } - description - "The alarming resource for the related alarm."; - } - leaf alarm-type-id { - type leafref { - path "/alarms/alarm-list/alarm" - + "[resource=current()/../resource]" - + "/alarm-type-id"; - require-instance false; - } - description - "The alarm type identifier for the related alarm."; - } - leaf alarm-type-qualifier { - type leafref { - path "/alarms/alarm-list/alarm" - + "[resource=current()/../resource]" - + "[alarm-type-id=current()/../alarm-type-id]" - + "/alarm-type-qualifier"; - require-instance false; - } - description - "The alarm qualifier for the related alarm."; - } - } - leaf-list impacted-resource { - if-feature "service-impact-analysis"; - type resource; - description - "Resources that might be affected by this alarm. If the - system creates an alarm on a resource and also has a mapping - to other resources that might be impacted, these resources - can be listed in this leaf-list. In this way, the system - can create one alarm instead of several. For example, if an - interface has an alarm, the 'impacted-resource' can - reference the aggregated port channels."; - } - leaf-list root-cause-resource { - if-feature "root-cause-analysis"; - type resource; - description - "Resources that are candidates for causing the alarm. If the - system has a mechanism to understand the candidate root - causes of an alarm, this leaf-list can be used to list the - root-cause candidate resources. In this way, the system can - create one alarm instead of several. An example might be a - logging system (alarm resource) that fails; the alarm can - reference the file system in the 'root-cause-resource' - leaf-list. Note that the intended use is not to also send - an alarm with the 'root-cause-resource' as an alarming - resource. The 'root-cause-resource' leaf-list is a hint and - should not also generate an alarm for the same problem."; - } - } - - grouping alarm-state-change-parameters { - description - "Parameters for an alarm-state change. - - This grouping is used both in the alarm list's status-change - list and in the notification representing an alarm-state - change."; - leaf time { - type yang:date-and-time; - mandatory true; - description - "The time the status of the alarm changed. The value - represents the time the real alarm-state change appeared in - the resource and not when it was added to the alarm - list. The /alarm-list/alarm/last-changed MUST be set to the - same value."; - } - leaf perceived-severity { - type severity-with-clear; - mandatory true; - description - "The severity of the alarm as defined by X.733. Note that - this may not be the original severity since the alarm may - have changed severity."; - reference - "ITU-T Recommendation X.733: Information Technology - - Open Systems Interconnection - - System Management: Alarm Reporting Function"; - } - leaf alarm-text { - type alarm-text; - mandatory true; - description - "A user-friendly text describing the alarm-state change."; - reference - "ITU-T Recommendation X.733: Information Technology - - Open Systems Interconnection - - System Management: Alarm Reporting Function"; - } - } - - grouping operator-parameters { - description - "This grouping defines parameters that can be changed by an - operator."; - leaf time { - type yang:date-and-time; - mandatory true; - description - "Timestamp for operator action on the alarm."; - } - leaf operator { - type string; - mandatory true; - description - "The name of the operator that has acted on this alarm."; - } - leaf state { - type operator-state; - mandatory true; - description - "The operator's view of the alarm state."; - } - leaf text { - type string; - description - "Additional optional textual information provided by the - operator."; - } - } - - grouping resource-alarm-parameters { - description - "Alarm parameters that originate from the resource view."; - leaf is-cleared { - type boolean; - mandatory true; - description - "Indicates the current clearance state of the alarm. An - alarm might toggle from active alarm to cleared alarm and - back to active again."; - } - leaf last-raised { - type yang:date-and-time; - mandatory true; - description - "An alarm may change severity level and toggle between - active and cleared during its lifetime. This leaf indicates - the last time it was raised ('is-cleared' = 'false')."; - } - leaf last-changed { - type yang:date-and-time; - mandatory true; - description - "A timestamp when the 'status-change' or - 'operator-state-change' list was last changed."; - } - leaf perceived-severity { - type severity; - mandatory true; - description - "The last severity of the alarm. - - If an alarm was raised with severity 'warning' but later - changed to 'major', this leaf will show 'major'."; - } - leaf alarm-text { - type alarm-text; - mandatory true; - description - "The last reported alarm text. This text should contain - information for an operator to be able to understand the - problem and how to resolve it."; - } - list status-change { - if-feature "alarm-history"; - key "time"; - min-elements 1; - description - "A list of status-change events for this alarm. - - The entry with latest timestamp in this list MUST - correspond to the leafs 'is-cleared', 'perceived-severity', - and 'alarm-text' for the alarm. - - This list is ordered according to the timestamps of alarm - state changes. The first item corresponds to the latest - state change. - - The following state changes create an entry in this - list: - - changed severity (warning, minor, major, critical) - - clearance status; this also updates the 'is-cleared' - leaf - - alarm-text update"; - uses alarm-state-change-parameters; - } - } - - grouping filter-input { - description - "Grouping to specify a filter construct on alarm information."; - leaf alarm-clearance-status { - type enumeration { - enum any { - description - "Ignore alarm-clearance status."; - } - enum cleared { - description - "Filter cleared alarms."; - } - enum not-cleared { - description - "Filter not-cleared alarms."; - } - } - mandatory true; - description - "The clearance status of the alarm."; - } - container older-than { - presence "Age specification"; - description - "Matches the 'last-status-change' leaf in the alarm."; - choice age-spec { - description - "Filter using date and time age."; - case seconds { - leaf seconds { - type uint16; - description - "Age expressed in seconds."; - } - } - case minutes { - leaf minutes { - type uint16; - description - "Age expressed in minutes."; - } - } - case hours { - leaf hours { - type uint16; - description - "Age expressed in hours."; - } - } - case days { - leaf days { - type uint16; - description - "Age expressed in days."; - } - } - case weeks { - leaf weeks { - type uint16; - description - "Age expressed in weeks."; - } - } - } - } - container severity { - presence "Severity filter"; - choice sev-spec { - description - "Filter based on severity level."; - leaf below { - type severity; - description - "Severity less than this leaf."; - } - leaf is { - type severity; - description - "Severity level equal to this leaf."; - } - leaf above { - type severity; - description - "Severity level higher than this leaf."; - } - } - description - "Filter based on severity."; - } - container operator-state-filter { - if-feature "operator-actions"; - presence "Operator state filter"; - leaf state { - type operator-state; - description - "Filter on operator state."; - } - leaf user { - type string; - description - "Filter based on which operator."; - } - description - "Filter based on operator state."; - } - } - - /* - * The /alarms data tree - */ - - container alarms { - description - "The top container for this module."; - container control { - description - "Configuration to control the alarm behavior."; - leaf max-alarm-status-changes { - type union { - type uint16; - type enumeration { - enum infinite { - description - "The status-change entries are accumulated - infinitely."; - } - } - } - default "32"; - description - "The 'status-change' entries are kept in a circular list - per alarm. When this number is exceeded, the oldest - status change entry is automatically removed. If the - value is 'infinite', the status-change entries are - accumulated infinitely."; - } - leaf notify-status-changes { - type enumeration { - enum all-state-changes { - description - "Send notifications for all status changes."; - } - enum raise-and-clear { - description - "Send notifications only for raise, clear, and - re-raise. Notifications for severity-level changes or - alarm-text changes are not sent."; - } - enum severity-level { - description - "Only send notifications for alarm-state changes - crossing the level specified in - 'notify-severity-level'. Always send clear - notifications."; - } - } - must '. != "severity-level" or ../notify-severity-level' { - description - "When notify-status-changes is 'severity-level', a value - must be given for 'notify-severity-level'."; - } - default "all-state-changes"; - description - "This leaf controls the notifications sent for alarm status - updates. There are three options: - - 1. Notifications are sent for all updates, severity-level - changes, and alarm-text changes. - - 2. Notifications are only sent for alarm raise and clear. - - 3. Notifications are sent for status changes equal to or - above the specified severity level. Clear - notifications shall always be sent. Notifications - shall also be sent for state changes that make an - alarm less severe than the specified level. - - For example, in option 3, assume that the severity level - is set to major and that the alarm has the following state - changes: - - [(Time, severity, clear)]: - [(T1, major, -), (T2, minor, -), (T3, warning, -), - (T4, minor, -), (T5, major, -), (T6, critical, -), - (T7, major. -), (T8, major, clear)] - - In that case, notifications will be sent at times - T1, T2, T5, T6, T7, and T8."; - } - leaf notify-severity-level { - when '../notify-status-changes = "severity-level"'; - type severity; - description - "Only send notifications for alarm-state changes crossing - the specified level. Always send clear notifications."; - } - container alarm-shelving { - if-feature "alarm-shelving"; - description - "The 'alarm-shelving/shelf' list is used to shelve - (block/filter) alarms. The conditions in the shelf - criteria are logically ANDed. The first matching shelf is - used, and an alarm is shelved only for this first match. - Matching alarms MUST appear in the - /alarms/shelved-alarms/shelved-alarm list, and - non-matching /alarms MUST appear in the - /alarms/alarm-list/alarm list. The server does not send - any notifications for shelved alarms. - - The server MUST maintain states (e.g., severity - changes) for the shelved alarms. - - Alarms that match the criteria shall have an - operator state 'shelved'. When the shelf - configuration removes an alarm from the shelf, the server - shall add the operator state 'un-shelved'."; - list shelf { - key "name"; - //ordered-by user; - leaf name { - type string; - description - "An arbitrary name for the alarm shelf."; - } - description - "Each entry defines the criteria for shelving alarms. - Criteria are ANDed. If no criteria are specified, - all alarms will be shelved."; - leaf-list resource { - type resource-match; - description - "Shelve alarms for matching resources."; - } - list alarm-type { - key "alarm-type-id alarm-type-qualifier-match"; - description - "Any alarm matching the combined criteria of - 'alarm-type-id' and 'alarm-type-qualifier-match' - MUST be matched."; - leaf alarm-type-id { - type alarm-type-id; - description - "Shelve all alarms that have an 'alarm-type-id' that - is equal to or derived from the given - 'alarm-type-id'."; - } - leaf alarm-type-qualifier-match { - type string; - description - "An XML Schema regular expression that is used to - match an alarm type qualifier. Shelve all alarms - that match this regular expression for the alarm - type qualifier."; - reference - "XML Schema Part 2: Datatypes Second Edition, - World Wide Web Consortium Recommendation - REC-xmlschema-2-20041028"; - } - } - leaf description { - type string; - description - "An optional textual description of the shelf. This - description should include the reason for shelving - these alarms."; - } - } - } - } - container alarm-inventory { - config false; - description - "The 'alarm-inventory/alarm-type' list contains all possible - alarm types for the system. - - If the system knows for which resources a specific alarm - type can appear, it is also identified in the inventory. - The list also tells if each alarm type has a corresponding - clear state. The inventory shall only contain concrete - alarm types. - - The alarm inventory MUST be updated by the system when new - alarms can appear. This can be the case when installing new - software modules or inserting new card types. A - notification 'alarm-inventory-changed' is sent when the - inventory is changed."; - list alarm-type { - key "alarm-type-id alarm-type-qualifier"; - description - "An entry in this list defines a possible alarm."; - leaf alarm-type-id { - type alarm-type-id; - description - "The statically defined alarm type identifier for this - possible alarm."; - } - leaf alarm-type-qualifier { - type alarm-type-qualifier; - description - "The optionally dynamically defined alarm type identifier - for this possible alarm."; - } - leaf-list resource { - type resource-match; - description - "Optionally, specifies for which resources the alarm type - is valid."; - } - leaf will-clear { - type boolean; - mandatory true; - description - "This leaf tells the operator if the alarm will be - cleared when the correct corrective action has been - taken. Implementations SHOULD strive for detecting the - cleared state for all alarm types. - - If this leaf is 'true', the operator can monitor the - alarm until it becomes cleared after the corrective - action has been taken. - - If this leaf is 'false', the operator needs to validate - that the alarm is no longer active using other - mechanisms. Alarms can lack a corresponding clear due - to missing instrumentation or no logical - corresponding clear state."; - } - leaf-list severity-level { - type severity; - description - "This leaf-list indicates the possible severity levels of - this alarm type. Note well that 'clear' is not part of - the severity type. In general, the severity level - should be defined by the instrumentation based on the - dynamic state, rather than being defined statically by - the alarm type, in order to provide a relevant severity - level based on dynamic state and context. However, most - alarm types have a defined set of possible severity - levels, and this should be provided here."; - } - leaf description { - type string; - mandatory true; - description - "A description of the possible alarm. It SHOULD include - information on possible underlying root causes and - corrective actions."; - } - } - } - container summary { - if-feature "alarm-summary"; - config false; - description - "This container gives a summary of the number of alarms."; - list alarm-summary { - key "severity"; - description - "A global summary of all alarms in the system. The summary - does not include shelved alarms."; - leaf severity { - type severity; - description - "Alarm summary for this severity level."; - } - leaf total { - type yang:gauge32; - description - "Total number of alarms of this severity level."; - } - leaf not-cleared { - type yang:gauge32; - description - "Total number of alarms of this severity level - that are not cleared."; - } - leaf cleared { - type yang:gauge32; - description - "For this severity level, the number of alarms that are - cleared."; - } - leaf cleared-not-closed { - if-feature "operator-actions"; - type yang:gauge32; - description - "For this severity level, the number of alarms that are - cleared but not closed."; - } - leaf cleared-closed { - if-feature "operator-actions"; - type yang:gauge32; - description - "For this severity level, the number of alarms that are - cleared and closed."; - } - leaf not-cleared-closed { - if-feature "operator-actions"; - type yang:gauge32; - description - "For this severity level, the number of alarms that are - not cleared but closed."; - } - leaf not-cleared-not-closed { - if-feature "operator-actions"; - type yang:gauge32; - description - "For this severity level, the number of alarms that are - not cleared and not closed."; - } - } - leaf shelves-active { - if-feature "alarm-shelving"; - type empty; - description - "This is a hint to the operator that there are active - alarm shelves. This leaf MUST exist if the - /alarms/shelved-alarms/number-of-shelved-alarms is > 0."; - } - } - container alarm-list { - config false; - description - "The alarms in the system."; - leaf number-of-alarms { - type yang:gauge32; - description - "This object shows the total number of - alarms in the system, i.e., the total number - of entries in the alarm list."; - } - leaf last-changed { - type yang:date-and-time; - description - "A timestamp when the alarm list was last - changed. The value can be used by a manager to - initiate an alarm resynchronization procedure."; - } - list alarm { - key "resource alarm-type-id alarm-type-qualifier"; - description - "The list of alarms. Each entry in the list holds one - alarm for a given alarm type and resource. An alarm can - be updated from the underlying resource or by the user. - The following leafs are maintained by the resource: - 'is-cleared', 'last-change', 'perceived-severity', and - 'alarm-text'. An operator can change 'operator-state' and - 'operator-text'. - - Entries appear in the alarm list the first time an alarm - becomes active for a given alarm type and resource. - Entries do not get deleted when the alarm is cleared. - Clear status is represented as a boolean flag. - - Alarm entries are removed, i.e., purged, from the list by - an explicit purge action. For example, purge all alarms - that are cleared and in closed operator state that are - older than 24 hours. Purged alarms are removed from the - alarm list. If the alarm resource state changes after a - purge, the alarm will reappear in the alarm list. - - Systems may also remove alarms based on locally configured - policies; this is out of scope for this module."; - uses common-alarm-parameters; - leaf time-created { - type yang:date-and-time; - mandatory true; - description - "The timestamp when this alarm entry was created. This - represents the first time the alarm appeared; it can - also represent that the alarm reappeared after a purge. - Further state changes of the same alarm do not change - this leaf; these changes will update the 'last-changed' - leaf."; - } - uses resource-alarm-parameters; - list operator-state-change { - if-feature "operator-actions"; - key "time"; - description - "This list is used by operators to indicate the state of - human intervention on an alarm. For example, if an - operator has seen an alarm, the operator can add a new - item to this list indicating that the alarm is - acknowledged."; - uses operator-parameters; - } - action set-operator-state { - if-feature "operator-actions"; - description - "This is a means for the operator to indicate the level - of human intervention on an alarm."; - input { - leaf state { - type writable-operator-state; - mandatory true; - description - "Set this operator state."; - } - leaf text { - type string; - description - "Additional optional textual information."; - } - } - } - notification operator-action { - if-feature "operator-actions"; - description - "This notification is used to report that an operator - acted upon an alarm."; - uses operator-parameters; - } - } - action purge-alarms { - description - "This operation requests that the server delete entries - from the alarm list according to the supplied criteria. - - Typically, this operation is used to delete alarms that - are in closed operator state and older than a specified - time. - - The number of purged alarms is returned as an output - parameter."; - input { - uses filter-input; - } - output { - leaf purged-alarms { - type uint32; - description - "Number of purged alarms."; - } - } - } - action compress-alarms { - if-feature "alarm-history"; - description - "This operation requests that the server compress - entries in the alarm list by removing all but the - latest 'status-change' entry for all matching alarms. - Conditions in the input are logically ANDed. If no - input condition is given, all alarms are compressed."; - input { - leaf resource { - type resource-match; - description - "Compress the alarms matching this resource."; - } - leaf alarm-type-id { - type leafref { - path "/alarms/alarm-list/alarm/alarm-type-id"; - require-instance false; - } - description - "Compress alarms with this 'alarm-type-id'."; - } - leaf alarm-type-qualifier { - type leafref { - path "/alarms/alarm-list/alarm/alarm-type-qualifier"; - require-instance false; - } - description - "Compress the alarms with this - 'alarm-type-qualifier'."; - } - } - output { - leaf compressed-alarms { - type uint32; - description - "Number of compressed alarm entries."; - } - } - } - } - container shelved-alarms { - if-feature "alarm-shelving"; - config false; - description - "The shelved alarms. Alarms appear here if they match the - criteria in /alarms/control/alarm-shelving. This list does - not generate any notifications. The list represents alarms - that are considered not relevant by the operator. Alarms in - this list have an 'operator-state' of 'shelved'. This - cannot be changed."; - leaf number-of-shelved-alarms { - type yang:gauge32; - description - "This object shows the total number of current - alarms, i.e., the total number of entries - in the alarm list."; - } - leaf shelved-alarms-last-changed { - type yang:date-and-time; - description - "A timestamp when the shelved-alarm list was last changed. - The value can be used by a manager to initiate an alarm - resynchronization procedure."; - } - list shelved-alarm { - key "resource alarm-type-id alarm-type-qualifier"; - description - "The list of shelved alarms. Shelved alarms can only be - updated from the underlying resource; no operator actions - are supported."; - uses common-alarm-parameters; - leaf shelf-name { - type leafref { - path "/alarms/control/alarm-shelving/shelf/name"; - require-instance false; - } - description - "The name of the shelf."; - } - uses resource-alarm-parameters; - list operator-state-change { - if-feature "operator-actions"; - key "time"; - description - "This list is used by operators to indicate the state of - human intervention on an alarm. For shelved alarms, the - system has set the list item in the list to 'shelved'."; - uses operator-parameters; - } - } - action purge-shelved-alarms { - description - "This operation requests that the server delete entries from - the shelved-alarm list according to the supplied criteria. - In the shelved-alarm list, it makes sense to delete alarms - that are not relevant anymore. - - The number of purged alarms is returned as an output - parameter."; - input { - uses filter-input; - } - output { - leaf purged-alarms { - type uint32; - description - "Number of purged alarms."; - } - } - } - action compress-shelved-alarms { - if-feature "alarm-history"; - description - "This operation requests that the server compress entries - in the shelved-alarm list by removing all but the latest - 'status-change' entry for all matching shelved alarms. - Conditions in the input are logically ANDed. If no input - condition is given, all alarms are compressed."; - input { - leaf resource { - type leafref { - path "/alarms/shelved-alarms/shelved-alarm/resource"; - require-instance false; - } - description - "Compress the alarms with this resource."; - } - leaf alarm-type-id { - type leafref { - path "/alarms/shelved-alarms/shelved-alarm" - + "/alarm-type-id"; - require-instance false; - } - description - "Compress alarms with this 'alarm-type-id'."; - } - leaf alarm-type-qualifier { - type leafref { - path "/alarms/shelved-alarms/shelved-alarm" - + "/alarm-type-qualifier"; - require-instance false; - } - description - "Compress the alarms with this - 'alarm-type-qualifier'."; - } - } - output { - leaf compressed-alarms { - type uint32; - description - "Number of compressed alarm entries."; - } - } - } - } - list alarm-profile { - if-feature "alarm-profile"; - key "alarm-type-id alarm-type-qualifier-match resource"; - //ordered-by user; - description - "This list is used to assign further information or - configuration for each alarm type. This module supports a - mechanism where the client can override the system-default - alarm severity levels. The 'alarm-profile' is also a useful - augmentation point for specific additions to alarm types."; - leaf alarm-type-id { - type alarm-type-id; - description - "The alarm type identifier to match."; - } - leaf alarm-type-qualifier-match { - type string; - description - "An XML Schema regular expression that is used to match the - alarm type qualifier."; - reference - "XML Schema Part 2: Datatypes Second Edition, - World Wide Web Consortium Recommendation - REC-xmlschema-2-20041028"; - } - leaf resource { - type resource-match; - description - "Specifies which resources to match."; - } - leaf description { - type string; - mandatory true; - description - "A description of the alarm profile."; - } - container alarm-severity-assignment-profile { - if-feature "severity-assignment"; - description - "The client can override the system-default severity - level."; - reference - "ITU-T Recommendation M.3100: - Generic network information model - ITU-T Recommendation M.3160: - Generic, protocol-neutral management information model"; - leaf-list severity-level { - type severity; - //ordered-by user; - description - "Specifies the configured severity level(s) for the - matching alarm. If the alarm has several severity - levels, the leaf-list shall be given in rising severity - order. The original M3100/M3160 ASAP function only - allows for a one-to-one mapping between alarm type and - severity, but since YANG module supports stateful - alarms, the mapping must allow for several severity - levels. - - Assume a high-utilization alarm type with two thresholds - with the system-default severity levels of threshold1 = - warning and threshold2 = minor. Setting this leaf-list - to (minor, major) will assign the severity levels as - threshold1 = minor and threshold2 = major"; - } - } - } - } - - /* - * Notifications - */ - - notification alarm-notification { - description - "This notification is used to report a state change for an - alarm. The same notification is used for reporting a newly - raised alarm, a cleared alarm, or changing the text and/or - severity of an existing alarm."; - uses common-alarm-parameters; - uses alarm-state-change-parameters; - } - - notification alarm-inventory-changed { - description - "This notification is used to report that the list of possible - alarms has changed. This can happen when, for example, a new - software module is installed or a new physical card is - inserted."; - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/ietf-hardware.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/ietf-hardware.yang deleted file mode 100755 index f444e26ee..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/ietf-hardware.yang +++ /dev/null @@ -1,1141 +0,0 @@ -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-openroadm/provider/src/main/yang/ietf-interfaces.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/ietf-interfaces.yang deleted file mode 100644 index 8dae9d3e2..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/ietf-interfaces.yang +++ /dev/null @@ -1,1073 +0,0 @@ -module ietf-interfaces { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; - prefix if; - - import ietf-yang-types { - prefix yang; - } - - organization - "IETF NETMOD (Network Modeling) Working Group"; - - contact - "WG Web: - WG List: - Editor: Martin Bjorklund - "; - - description - "This module contains a collection of YANG definitions for - managing network interfaces. - Copyright (c) 2018 IETF Trust and the persons identified as - authors of the code. All rights reserved. - Redistribution and use in source and binary forms, with or - without modification, is permitted pursuant to, and subject - to the license terms contained in, the Simplified BSD License - set forth in Section 4.c of the IETF Trust's Legal Provisions - Relating to IETF Documents - (https://trustee.ietf.org/license-info). - This version of this YANG module is part of RFC 8343; see - the RFC itself for full legal notices."; - - revision 2018-02-20 { - description - "Updated to support NMDA."; - reference - "RFC 8343: A YANG Data Model for Interface Management"; - } - - revision 2014-05-08 { - description - "Initial revision."; - reference - "RFC 7223: A YANG Data Model for Interface Management"; - } - - /* - * Typedefs - */ - - typedef interface-ref { - type leafref { - path "/if:interfaces/if:interface/if:name"; - } - description - "This type is used by data models that need to reference - interfaces."; - } - - /* - * Identities - */ - - identity interface-type { - description - "Base identity from which specific interface types are - derived."; - } - - /* - * Features - */ - - feature arbitrary-names { - description - "This feature indicates that the device allows user-controlled - interfaces to be named arbitrarily."; - } - feature pre-provisioning { - description - "This feature indicates that the device supports - pre-provisioning of interface configuration, i.e., it is - possible to configure an interface whose physical interface - hardware is not present on the device."; - } - feature if-mib { - description - "This feature indicates that the device implements - the IF-MIB."; - reference - "RFC 2863: The Interfaces Group MIB"; - } - - /* - * Data nodes - */ - - container interfaces { - description - "Interface parameters."; - - list interface { - key "name"; - - description - "The list of interfaces on the device. - The status of an interface is available in this list in the - operational state. If the configuration of a - system-controlled interface cannot be used by the system - (e.g., the interface hardware present does not match the - interface type), then the configuration is not applied to - the system-controlled interface shown in the operational - state. If the configuration of a user-controlled interface - cannot be used by the system, the configured interface is - not instantiated in the operational state. - System-controlled interfaces created by the system are - always present in this list in the operational state, - whether or not they are configured."; - - leaf name { - type string; - description - "The name of the interface. - A device MAY restrict the allowed values for this leaf, - possibly depending on the type of the interface. - For system-controlled interfaces, this leaf is the - device-specific name of the interface. - If a client tries to create configuration for a - system-controlled interface that is not present in the - operational state, the server MAY reject the request if - the implementation does not support pre-provisioning of - interfaces or if the name refers to an interface that can - never exist in the system. A Network Configuration - Protocol (NETCONF) server MUST reply with an rpc-error - with the error-tag 'invalid-value' in this case. - If the device supports pre-provisioning of interface - configuration, the 'pre-provisioning' feature is - advertised. - If the device allows arbitrarily named user-controlled - interfaces, the 'arbitrary-names' feature is advertised. - When a configured user-controlled interface is created by - the system, it is instantiated with the same name in the - operational state. - A server implementation MAY map this leaf to the ifName - MIB object. Such an implementation needs to use some - mechanism to handle the differences in size and characters - allowed between this leaf and ifName. The definition of - such a mechanism is outside the scope of this document."; - reference - "RFC 2863: The Interfaces Group MIB - ifName"; - } - - leaf description { - type string; - description - "A textual description of the interface. - A server implementation MAY map this leaf to the ifAlias - MIB object. Such an implementation needs to use some - mechanism to handle the differences in size and characters - allowed between this leaf and ifAlias. The definition of - such a mechanism is outside the scope of this document. - Since ifAlias is defined to be stored in non-volatile - storage, the MIB implementation MUST map ifAlias to the - value of 'description' in the persistently stored - configuration."; - reference - "RFC 2863: The Interfaces Group MIB - ifAlias"; - } - - leaf type { - type identityref { - base interface-type; - } - mandatory true; - description - "The type of the interface. - When an interface entry is created, a server MAY - initialize the type leaf with a valid value, e.g., if it - is possible to derive the type from the name of the - interface. - If a client tries to set the type of an interface to a - value that can never be used by the system, e.g., if the - type is not supported or if the type does not match the - name of the interface, the server MUST reject the request. - A NETCONF server MUST reply with an rpc-error with the - error-tag 'invalid-value' in this case."; - reference - "RFC 2863: The Interfaces Group MIB - ifType"; - } - - leaf enabled { - type boolean; - default "true"; - description - "This leaf contains the configured, desired state of the - interface. - Systems that implement the IF-MIB use the value of this - leaf in the intended configuration to set - IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry - has been initialized, as described in RFC 2863. - Changes in this leaf in the intended configuration are - reflected in ifAdminStatus."; - reference - "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; - } - - leaf link-up-down-trap-enable { - if-feature if-mib; - type enumeration { - enum enabled { - value 1; - description - "The device will generate linkUp/linkDown SNMP - notifications for this interface."; - } - enum disabled { - value 2; - description - "The device will not generate linkUp/linkDown SNMP - notifications for this interface."; - } - } - description - "Controls whether linkUp/linkDown SNMP notifications - should be generated for this interface. - If this node is not configured, the value 'enabled' is - operationally used by the server for interfaces that do - not operate on top of any other interface (i.e., there are - no 'lower-layer-if' entries), and 'disabled' otherwise."; - reference - "RFC 2863: The Interfaces Group MIB - - ifLinkUpDownTrapEnable"; - } - - leaf admin-status { - if-feature if-mib; - type enumeration { - enum up { - value 1; - description - "Ready to pass packets."; - } - enum down { - value 2; - description - "Not ready to pass packets and not in some test mode."; - } - enum testing { - value 3; - description - "In some test mode."; - } - } - config false; - mandatory true; - description - "The desired state of the interface. - This leaf has the same read semantics as ifAdminStatus."; - reference - "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; - } - - leaf oper-status { - type enumeration { - enum up { - value 1; - description - "Ready to pass packets."; - } - enum down { - value 2; - - description - "The interface does not pass any packets."; - } - enum testing { - value 3; - description - "In some test mode. No operational packets can - be passed."; - } - enum unknown { - value 4; - description - "Status cannot be determined for some reason."; - } - enum dormant { - value 5; - description - "Waiting for some external event."; - } - enum not-present { - value 6; - description - "Some component (typically hardware) is missing."; - } - enum lower-layer-down { - value 7; - description - "Down due to state of lower-layer interface(s)."; - } - } - config false; - mandatory true; - description - "The current operational state of the interface. - This leaf has the same semantics as ifOperStatus."; - reference - "RFC 2863: The Interfaces Group MIB - ifOperStatus"; - } - - leaf last-change { - type yang:date-and-time; - config false; - description - "The time the interface entered its current operational - state. If the current state was entered prior to the - last re-initialization of the local network management - subsystem, then this node is not present."; - reference - "RFC 2863: The Interfaces Group MIB - ifLastChange"; - } - - leaf if-index { - if-feature if-mib; - type int32 { - range "1..2147483647"; - } - config false; - mandatory true; - description - "The ifIndex value for the ifEntry represented by this - interface."; - reference - "RFC 2863: The Interfaces Group MIB - ifIndex"; - } - - leaf phys-address { - type yang:phys-address; - config false; - description - "The interface's address at its protocol sub-layer. For - example, for an 802.x interface, this object normally - contains a Media Access Control (MAC) address. The - interface's media-specific modules must define the bit - and byte ordering and the format of the value of this - object. For interfaces that do not have such an address - (e.g., a serial line), this node is not present."; - reference - "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; - } - - leaf-list higher-layer-if { - type interface-ref; - config false; - description - "A list of references to interfaces layered on top of this - interface."; - reference - "RFC 2863: The Interfaces Group MIB - ifStackTable"; - } - - leaf-list lower-layer-if { - type interface-ref; - config false; - - description - "A list of references to interfaces layered underneath this - interface."; - reference - "RFC 2863: The Interfaces Group MIB - ifStackTable"; - } - - leaf speed { - type yang:gauge64; - units "bits/second"; - config false; - description - "An estimate of the interface's current bandwidth in bits - per second. For interfaces that do not vary in - bandwidth or for those where no accurate estimation can - be made, this node should contain the nominal bandwidth. - For interfaces that have no concept of bandwidth, this - node is not present."; - reference - "RFC 2863: The Interfaces Group MIB - - ifSpeed, ifHighSpeed"; - } - - container statistics { - config false; - description - "A collection of interface-related statistics objects."; - - leaf discontinuity-time { - type yang:date-and-time; - mandatory true; - description - "The time on the most recent occasion at which any one or - more of this interface's counters suffered a - discontinuity. If no such discontinuities have occurred - since the last re-initialization of the local management - subsystem, then this node contains the time the local - management subsystem re-initialized itself."; - } - - leaf in-octets { - type yang:counter64; - description - "The total number of octets received on the interface, - including framing characters. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; - } - - leaf in-unicast-pkts { - type yang:counter64; - description - "The number of packets, delivered by this sub-layer to a - higher (sub-)layer, that were not addressed to a - multicast or broadcast address at this sub-layer. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; - } - - leaf in-broadcast-pkts { - type yang:counter64; - description - "The number of packets, delivered by this sub-layer to a - higher (sub-)layer, that were addressed to a broadcast - address at this sub-layer. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCInBroadcastPkts"; - } - - leaf in-multicast-pkts { - type yang:counter64; - description - "The number of packets, delivered by this sub-layer to a - higher (sub-)layer, that were addressed to a multicast - address at this sub-layer. For a MAC-layer protocol, - this includes both Group and Functional addresses. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCInMulticastPkts"; - } - - leaf in-discards { - type yang:counter32; - description - "The number of inbound packets that were chosen to be - discarded even though no errors had been detected to - prevent their being deliverable to a higher-layer - protocol. One possible reason for discarding such a - packet could be to free up buffer space. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifInDiscards"; - } - - leaf in-errors { - type yang:counter32; - description - "For packet-oriented interfaces, the number of inbound - packets that contained errors preventing them from being - deliverable to a higher-layer protocol. For character- - oriented or fixed-length interfaces, the number of - inbound transmission units that contained errors - preventing them from being deliverable to a higher-layer - protocol. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifInErrors"; - } - - leaf in-unknown-protos { - type yang:counter32; - - description - "For packet-oriented interfaces, the number of packets - received via the interface that were discarded because - of an unknown or unsupported protocol. For - character-oriented or fixed-length interfaces that - support protocol multiplexing, the number of - transmission units received via the interface that were - discarded because of an unknown or unsupported protocol. - For any interface that does not support protocol - multiplexing, this counter is not present. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; - } - - leaf out-octets { - type yang:counter64; - description - "The total number of octets transmitted out of the - interface, including framing characters. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; - } - - leaf out-unicast-pkts { - type yang:counter64; - description - "The total number of packets that higher-level protocols - requested be transmitted and that were not addressed - to a multicast or broadcast address at this sub-layer, - including those that were discarded or not sent. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; - } - - leaf out-broadcast-pkts { - type yang:counter64; - description - "The total number of packets that higher-level protocols - requested be transmitted and that were addressed to a - broadcast address at this sub-layer, including those - that were discarded or not sent. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCOutBroadcastPkts"; - } - - leaf out-multicast-pkts { - type yang:counter64; - description - "The total number of packets that higher-level protocols - requested be transmitted and that were addressed to a - multicast address at this sub-layer, including those - that were discarded or not sent. For a MAC-layer - protocol, this includes both Group and Functional - addresses. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCOutMulticastPkts"; - } - - leaf out-discards { - type yang:counter32; - description - "The number of outbound packets that were chosen to be - discarded even though no errors had been detected to - prevent their being transmitted. One possible reason - for discarding such a packet could be to free up buffer - space. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; - } - - leaf out-errors { - type yang:counter32; - description - "For packet-oriented interfaces, the number of outbound - packets that could not be transmitted because of errors. - For character-oriented or fixed-length interfaces, the - number of outbound transmission units that could not be - transmitted because of errors. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifOutErrors"; - } - } - - } - } - - /* - * Legacy typedefs - */ - - typedef interface-state-ref { - type leafref { - path "/if:interfaces-state/if:interface/if:name"; - } - status deprecated; - description - "This type is used by data models that need to reference - the operationally present interfaces."; - } - - /* - * Legacy operational state data nodes - */ - - container interfaces-state { - config false; - status deprecated; - description - "Data nodes for the operational state of interfaces."; - - list interface { - key "name"; - status deprecated; - - description - "The list of interfaces on the device. - System-controlled interfaces created by the system are - always present in this list, whether or not they are - configured."; - - leaf name { - type string; - status deprecated; - description - "The name of the interface. - A server implementation MAY map this leaf to the ifName - MIB object. Such an implementation needs to use some - mechanism to handle the differences in size and characters - allowed between this leaf and ifName. The definition of - such a mechanism is outside the scope of this document."; - reference - "RFC 2863: The Interfaces Group MIB - ifName"; - } - - leaf type { - type identityref { - base interface-type; - } - mandatory true; - status deprecated; - description - "The type of the interface."; - reference - "RFC 2863: The Interfaces Group MIB - ifType"; - } - - leaf admin-status { - if-feature if-mib; - type enumeration { - enum up { - value 1; - description - "Ready to pass packets."; - } - enum down { - value 2; - description - "Not ready to pass packets and not in some test mode."; - } - enum testing { - value 3; - description - "In some test mode."; - } - } - mandatory true; - status deprecated; - description - "The desired state of the interface. - This leaf has the same read semantics as ifAdminStatus."; - reference - "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; - } - - leaf oper-status { - type enumeration { - enum up { - value 1; - description - "Ready to pass packets."; - } - enum down { - value 2; - description - "The interface does not pass any packets."; - } - enum testing { - value 3; - description - "In some test mode. No operational packets can - be passed."; - } - enum unknown { - value 4; - description - "Status cannot be determined for some reason."; - } - enum dormant { - value 5; - description - "Waiting for some external event."; - } - enum not-present { - value 6; - description - "Some component (typically hardware) is missing."; - } - enum lower-layer-down { - value 7; - description - "Down due to state of lower-layer interface(s)."; - } - } - mandatory true; - status deprecated; - description - "The current operational state of the interface. - This leaf has the same semantics as ifOperStatus."; - reference - "RFC 2863: The Interfaces Group MIB - ifOperStatus"; - } - - leaf last-change { - type yang:date-and-time; - status deprecated; - description - "The time the interface entered its current operational - state. If the current state was entered prior to the - last re-initialization of the local network management - subsystem, then this node is not present."; - reference - "RFC 2863: The Interfaces Group MIB - ifLastChange"; - } - - leaf if-index { - if-feature if-mib; - type int32 { - range "1..2147483647"; - } - mandatory true; - status deprecated; - description - "The ifIndex value for the ifEntry represented by this - interface."; - - reference - "RFC 2863: The Interfaces Group MIB - ifIndex"; - } - - leaf phys-address { - type yang:phys-address; - status deprecated; - description - "The interface's address at its protocol sub-layer. For - example, for an 802.x interface, this object normally - contains a Media Access Control (MAC) address. The - interface's media-specific modules must define the bit - and byte ordering and the format of the value of this - object. For interfaces that do not have such an address - (e.g., a serial line), this node is not present."; - reference - "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; - } - - leaf-list higher-layer-if { - type interface-state-ref; - status deprecated; - description - "A list of references to interfaces layered on top of this - interface."; - reference - "RFC 2863: The Interfaces Group MIB - ifStackTable"; - } - - leaf-list lower-layer-if { - type interface-state-ref; - status deprecated; - description - "A list of references to interfaces layered underneath this - interface."; - reference - "RFC 2863: The Interfaces Group MIB - ifStackTable"; - } - - leaf speed { - type yang:gauge64; - units "bits/second"; - status deprecated; - description - "An estimate of the interface's current bandwidth in bits - per second. For interfaces that do not vary in - bandwidth or for those where no accurate estimation can - be made, this node should contain the nominal bandwidth. - For interfaces that have no concept of bandwidth, this - node is not present."; - reference - "RFC 2863: The Interfaces Group MIB - - ifSpeed, ifHighSpeed"; - } - - container statistics { - status deprecated; - description - "A collection of interface-related statistics objects."; - - leaf discontinuity-time { - type yang:date-and-time; - mandatory true; - status deprecated; - description - "The time on the most recent occasion at which any one or - more of this interface's counters suffered a - discontinuity. If no such discontinuities have occurred - since the last re-initialization of the local management - subsystem, then this node contains the time the local - management subsystem re-initialized itself."; - } - - leaf in-octets { - type yang:counter64; - status deprecated; - description - "The total number of octets received on the interface, - including framing characters. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; - } - - leaf in-unicast-pkts { - type yang:counter64; - status deprecated; - description - "The number of packets, delivered by this sub-layer to a - higher (sub-)layer, that were not addressed to a - multicast or broadcast address at this sub-layer. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; - } - - leaf in-broadcast-pkts { - type yang:counter64; - status deprecated; - description - "The number of packets, delivered by this sub-layer to a - higher (sub-)layer, that were addressed to a broadcast - address at this sub-layer. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCInBroadcastPkts"; - } - - leaf in-multicast-pkts { - type yang:counter64; - status deprecated; - description - "The number of packets, delivered by this sub-layer to a - higher (sub-)layer, that were addressed to a multicast - address at this sub-layer. For a MAC-layer protocol, - this includes both Group and Functional addresses. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCInMulticastPkts"; - } - - leaf in-discards { - type yang:counter32; - status deprecated; - - description - "The number of inbound packets that were chosen to be - discarded even though no errors had been detected to - prevent their being deliverable to a higher-layer - protocol. One possible reason for discarding such a - packet could be to free up buffer space. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifInDiscards"; - } - - leaf in-errors { - type yang:counter32; - status deprecated; - description - "For packet-oriented interfaces, the number of inbound - packets that contained errors preventing them from being - deliverable to a higher-layer protocol. For character- - oriented or fixed-length interfaces, the number of - inbound transmission units that contained errors - preventing them from being deliverable to a higher-layer - protocol. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifInErrors"; - } - - leaf in-unknown-protos { - type yang:counter32; - status deprecated; - description - "For packet-oriented interfaces, the number of packets - received via the interface that were discarded because - of an unknown or unsupported protocol. For - character-oriented or fixed-length interfaces that - support protocol multiplexing, the number of - transmission units received via the interface that were - discarded because of an unknown or unsupported protocol. - For any interface that does not support protocol - multiplexing, this counter is not present. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; - } - - leaf out-octets { - type yang:counter64; - status deprecated; - description - "The total number of octets transmitted out of the - interface, including framing characters. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; - } - - leaf out-unicast-pkts { - type yang:counter64; - status deprecated; - description - "The total number of packets that higher-level protocols - requested be transmitted and that were not addressed - to a multicast or broadcast address at this sub-layer, - including those that were discarded or not sent. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; - } - - leaf out-broadcast-pkts { - type yang:counter64; - status deprecated; - - description - "The total number of packets that higher-level protocols - requested be transmitted and that were addressed to a - broadcast address at this sub-layer, including those - that were discarded or not sent. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCOutBroadcastPkts"; - } - - leaf out-multicast-pkts { - type yang:counter64; - status deprecated; - description - "The total number of packets that higher-level protocols - requested be transmitted and that were addressed to a - multicast address at this sub-layer, including those - that were discarded or not sent. For a MAC-layer - protocol, this includes both Group and Functional - addresses. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCOutMulticastPkts"; - } - - leaf out-discards { - type yang:counter32; - status deprecated; - description - "The number of outbound packets that were chosen to be - discarded even though no errors had been detected to - prevent their being transmitted. One possible reason - for discarding such a packet could be to free up buffer - space. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; - } - - leaf out-errors { - type yang:counter32; - status deprecated; - description - "For packet-oriented interfaces, the number of outbound - packets that could not be transmitted because of errors. - For character-oriented or fixed-length interfaces, the - number of outbound transmission units that could not be - transmitted because of errors. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifOutErrors"; - } - } - } - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-alarm.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-alarm.yang deleted file mode 100644 index 7b7b5e0da..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-alarm.yang +++ /dev/null @@ -1,181 +0,0 @@ -module org-openroadm-alarm { - namespace "http://org/openroadm/alarm"; - prefix org-openroadm-alarm; - - import ietf-yang-types { - prefix yang; - revision-date 2013-07-15; - } - import org-openroadm-resource { - prefix org-openroadm-resource; - revision-date 2019-11-29; - } - import org-openroadm-probable-cause { - prefix org-openroadm-probable-cause; - revision-date 2019-11-29; - } - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of an alarm. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE."; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2019-09-27 { - description - "Version 6.0.0"; - } - revision 2019-05-31 { - description - "Version 5.1.0"; - } - revision 2019-03-29 { - description - "Version 5.0.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-09-28 { - description - "Version 4.0.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - revision 2017-12-15 { - description - "Version 2.2"; - } - revision 2017-09-29 { - description - "Version 2.1"; - } - revision 2017-07-28 { - description - "Version 2.0.1 - added revision-date to imports"; - } - revision 2016-10-14 { - description - "Version 1.2"; - } - - typedef severity { - type enumeration { - enum critical { - value 1; - } - enum major { - value 2; - } - enum minor { - value 3; - } - enum warning { - value 4; - } - enum clear { - value 5; - } - enum indeterminate { - value 6; - } - } - description - "Severity, based on X.733 perceived severity"; - } - - grouping alarm { - leaf id { - type string; - mandatory true; - description - "Uniquely id for this alarm, within the given management domain"; - } - container resource { - description - "Resource under alarm"; - uses org-openroadm-resource:resource; - } - container probableCause { - description - "Probable cause of alarm"; - uses org-openroadm-probable-cause:probable-cause; - } - leaf raiseTime { - type yang:date-and-time; - mandatory true; - description - "Time alarm was raised"; - } - leaf severity { - type severity; - mandatory true; - description - "Severity of alarm. Based on X.733 perceived severity."; - } - leaf circuit-id { - type string; - description - "Circuit-id for alarm correlation."; - } - leaf additional-detail { - type string; - description - "Provide additional descriptive text about the probable cause."; - } - leaf corrective-action { - type string; - description - "Provide recommended corrective actions for this probable cause, i.e. replace or restart a circuit pack, check wiring for the reported source, or secondary failure to be correlated "; - } - } - - notification alarm-notification { - description - "Notification sent on initial alarm creation, as well as any time the alarm changes state, including clear"; - uses alarm; - } - container active-alarm-list { - config false; - description - "List of currently active alarms. An alarm is removed from this table when the state transitions to clear."; - list activeAlarms { - key "id"; - uses alarm; - } - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-alarm-pm-types.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-alarm-pm-types.yang deleted file mode 100644 index d13b85b3f..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-alarm-pm-types.yang +++ /dev/null @@ -1,81 +0,0 @@ -module org-openroadm-common-alarm-pm-types { - namespace "http://org/openroadm/common-alarm-pm-types"; - prefix org-openroadm-common-alarm-pm-types; - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of common alarm and pm types. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE"; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - - typedef direction { - type enumeration { - enum tx { - value 1; - } - enum rx { - value 2; - } - enum bidirectional { - value 3; - } - enum notApplicable { - value 4; - } - } - } - - typedef location { - type enumeration { - enum notApplicable { - value 1; - } - enum nearEnd { - value 2; - } - enum farEnd { - value 3; - } - } - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-amplifier-types.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-amplifier-types.yang deleted file mode 100644 index d5500a173..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-amplifier-types.yang +++ /dev/null @@ -1,99 +0,0 @@ -module org-openroadm-common-amplifier-types { - namespace "http://org/openroadm/common-amplifier-types"; - prefix org-openroadm-common-amplifier-types; - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of common types. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE"; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - - typedef amplifier-types { - type enumeration { - enum standard { - value 1; - } - } - description - "identifier for amplifier type - 1. standard for amplifier as defined initially in the ROADM MSA specifications - To be completed if/when additional amplifier types are required "; - } - - typedef line-amplifier-control-mode { - type enumeration { - enum gainLoss { - value 2; - } - enum off { - value 3; - } - } - description - "Identifies the line amplifier control mode, either off or gain."; - } - - typedef amplifier-gain-range { - type enumeration { - enum gain-range-1 { - value 1; - } - enum gain-range-2 { - value 2; - } - enum gain-range-3 { - value 3; - } - enum gain-range-4 { - value 4; - } - } - description - "Operational mode for the amplifier: - this parameter allows modeling different operational modes (gain ranges) ,notably for switched-gain amplifiers. - It indicates which performance model shall be used by the path feasibility engine. - For standard amplifier, or when performance evaluation is based on incremental noise, use gain-range-1. - When performance evaluation is based on advanced parameters, specify used gain-range (1 to 4). - Up to release 2.1, only gain-range-1 is to be used (default value) "; - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-equipment-types.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-equipment-types.yang deleted file mode 100644 index f5189c314..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-equipment-types.yang +++ /dev/null @@ -1,102 +0,0 @@ -module org-openroadm-common-equipment-types { - namespace "http://org/openroadm/common-equipment-types"; - prefix org-openroadm-common-equipment-types; - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of common types. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE"; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - - typedef optic-types { - type enumeration { - enum gray { - value 1; - } - enum dwdm { - value 2; - } - } - } - - typedef equipment-type-enum { - type enumeration { - enum other { - value 1; - } - enum powerSupply { - value 2; - } - enum shelfProcessor { - value 3; - } - enum crossConnect { - value 4; - } - enum fan { - value 5; - } - enum accessPanel { - value 6; - } - enum circuitPack { - value 7; - } - } - } - - grouping equipment-type { - leaf type { - type equipment-type-enum; - config false; - mandatory true; - } - leaf extension { - type string; - config false; - mandatory false; - description - "Populated with equipment type when enum value is set to 'other'"; - } - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-link-types.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-link-types.yang deleted file mode 100644 index 5e57dfc0a..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-link-types.yang +++ /dev/null @@ -1,94 +0,0 @@ -module org-openroadm-common-link-types { - namespace "http://org/openroadm/common-link-types"; - prefix org-openroadm-common-link-types; - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of common link types. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE"; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - - typedef power-dBm { - type decimal64 { - fraction-digits 2; - } - units "dBm"; - description - "Power value in dBm."; - } - - typedef ratio-dB { - type decimal64 { - fraction-digits 3; - } - units "dB"; - description - "Power ratio in dB."; - } - - typedef fiber-pmd { - type decimal64 { - fraction-digits 2; - } - units "ps/(km[1/2])"; - description - "Polarization Mode Dispersion expressed in ps/km(1/2)."; - } - - typedef optical-control-mode { - type enumeration { - enum power { - value 1; - } - enum gainLoss { - value 2; - } - enum off { - value 3; - } - } - description - "Optical Control Mode: identifies specific algorithm related to power management and general optical control."; - reference "openroadm.org: Open ROADM MSA Specification."; - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-node-types.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-node-types.yang deleted file mode 100644 index d8a914ba0..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-node-types.yang +++ /dev/null @@ -1,69 +0,0 @@ -module org-openroadm-common-node-types { - namespace "http://org/openroadm/common-node-types"; - prefix org-openroadm-common-node-types; - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of common node types. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE"; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-09-28 { - description - "Version 4.0.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - - typedef node-id-type { - type string { - length "7..63"; - pattern '([a-zA-Z][a-zA-Z0-9-]{5,61}[a-zA-Z0-9])' { - error-message - "A node-id must be 7 to 63 characters in length. - A node-id can contain letters, numbers, and hyphens. - The first character must be a letter. - The last character must be a letter or number."; - } - } - description - "Globally unique identifier for a device."; - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-optical-channel-types.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-optical-channel-types.yang deleted file mode 100644 index 42b72f7d2..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-optical-channel-types.yang +++ /dev/null @@ -1,350 +0,0 @@ -module org-openroadm-common-optical-channel-types { - namespace "http://org/openroadm/common-optical-channel-types"; - prefix org-openroadm-common-optical-channel-types; - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of common optical channel types. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE"; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2019-09-27 { - description - "Version 6.0.0"; - } - revision 2019-03-29 { - description - "Version 5.0.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-05-30 { - description - "Version 3.1.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - - identity och-rate-identity { - description - "A unique och rate identification"; - } - - identity otsi-rate-identity { - status deprecated; - description - "A unique OTSi rate identification"; - } - - identity fec-identity { - description - "A unique FEC identification"; - } - - identity sc-fec { - base fec-identity; - description - "Staircase FEC identification"; - } - - identity rs-fec { - base fec-identity; - description - "Reed Solomon FEC identification"; - } - - identity o-fec { - base fec-identity; - description - "OpenROADM FEC identification"; - } - - identity foic-identity { - description - "A unique FOICx.k identification (G.709.3 FlexO-LR and - G.709.1 FlexO-SR)"; - } - - identity flexo-otsi-rate-identity { - description - "A unique rate identification. Applicable to specify OTSi rate. Also - applicable to FOIC rate when associated with FlexO processing - (G.709.3 FlexO-LR Table 11-2, G.709.1 FlexO-SR clause 9.2.2 - Table 11-1, 12-1, 13-1) and G.Sup58."; - } - - identity foic1.2 { - base foic-identity; - description - "Applicable to the FlexO type defined in G.Sup58"; - } - - identity foic1.4 { - base foic-identity; - description - "Applicable to the FlexO type defined in G.709.1 and G.709.3"; - } - - identity foic2.4 { - base foic-identity; - description - "Applicable to the FlexO type defined in G.709.1"; - } - - identity foic2.8 { - base foic-identity; - description - "Applicable to the FlexO type defined in G.Sup58"; - } - - identity foic3.6 { - base foic-identity; - description - "Applicable to the FlexO type defined in future"; - } - - identity foic4.8 { - base foic-identity; - description - "Applicable to the FlexO type defined in G.709.1"; - } - - identity foic4.16 { - base foic-identity; - description - "Applicable to the FlexO type defined in G.Sup58"; - } - - identity R1T-flexo-otsi { - base flexo-otsi-rate-identity; - description - "Applicable instance for flexo/otsi rate identity"; - } - - identity R900G-flexo-otsi { - base flexo-otsi-rate-identity; - description - "Applicable instance for flexo/otsi rate identity"; - } - - identity R800G-flexo-otsi { - base flexo-otsi-rate-identity; - description - "Applicable instance for flexo/otsi rate identity"; - } - - identity R700G-flexo-otsi { - base flexo-otsi-rate-identity; - description - "Applicable instance for flexo/otsi rate identity"; - } - - identity R600G-flexo-otsi { - base flexo-otsi-rate-identity; - description - "Applicable instance for flexo/otsi rate identity"; - } - - identity R500G-flexo-otsi { - base flexo-otsi-rate-identity; - description - "Applicable instance for flexo/otsi rate identity"; - } - - identity R400G-flexo-otsi { - base flexo-otsi-rate-identity; - description - "Applicable instance for flexo/otsi rate identity"; - } - - identity R300G-flexo-otsi { - base flexo-otsi-rate-identity; - description - "Applicable instance for flexo/otsi rate identity"; - } - - identity R200G-flexo-otsi { - base flexo-otsi-rate-identity; - description - "Applicable instance for flexo/otsi rate identity"; - } - - identity R200G { - base och-rate-identity; - description - "Identity for 200G Rate"; - } - - identity R100G-flexo-otsi { - base flexo-otsi-rate-identity; - description - "Applicable instance for otsi/flexo rate identity"; - } - - identity R100G { - base och-rate-identity; - description - "Identity for 100G Rate"; - } - - identity R56G-foic-otsi { - base flexo-otsi-rate-identity; - description - "Applicable instance for otsi rate identity"; - } - - identity R28G-foic-otsi { - base flexo-otsi-rate-identity; - description - "Applicable instance for otsi rate identity"; - } - - identity R10.7G { - base och-rate-identity; - description - "Identity for 10.7G Rate"; - } - - identity R11.1G { - base och-rate-identity; - description - "Identity for 11.1G Rate"; - } - - typedef frequency-THz { - type decimal64 { - fraction-digits 8; - } - units "THz"; - description - "Frequency value in THz."; - } - - typedef frequency-GHz { - type decimal64 { - fraction-digits 5; - } - units "GHz"; - description - "Frequency value in GHz."; - } - - typedef wavelength-duplication-type { - type enumeration { - enum one-per-srg { - value 1; - description - "The SRG cannot handle wavelength duplication. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will result in failure."; - } - enum one-per-degree { - value 2; - description - "The SRG can handle wavelength duplication, but only one per degree. Attempting to provision a connection on this SRG that uses the same wavelength as an existing service will succeed, so long as the connections are not using the same degree."; - } - } - description - "One per srg is applied to C/D add/drop group - one per degree is applied to C/D/C add drop group"; - } - - typedef modulation-format { - type enumeration { - enum bpsk { - value 0; - description - "binary phase-shift keying"; - } - enum dc-dp-bpsk { - value 1; - description - "DC dual-polarization binary phase-shift keying"; - } - enum qpsk { - value 2; - description - "quadrature phase-shift keying"; - } - enum dp-qpsk { - value 3; - description - "dual-polarization binary phase-shift keying"; - } - enum qam16 { - value 4; - description - "quadrature amplitude modulation 16"; - } - enum dp-qam16 { - value 5; - description - "dual-polarization quadrature amplitude modulation 16"; - } - enum dc-dp-qam16 { - value 6; - description - "DC dual-polarization quadrature amplitude modulation 16"; - } - enum qam8 { - value 7; - description - "quadrature amplitude modulation 8"; - } - enum dp-qam8 { - value 8; - description - "dual-polarization quadrature amplitude modulation 8"; - } - enum dc-dp-qam8 { - value 9; - description - "DC dual-polarization quadrature amplitude modulation 8"; - } - } - description - "Modulation format"; - } - - typedef provision-mode-type { - type enumeration { - enum explicit; - enum profile; - } - description - "Provision Mode Type On Optical Channel"; - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-state-types.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-state-types.yang deleted file mode 100644 index 901a01372..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-state-types.yang +++ /dev/null @@ -1,113 +0,0 @@ -module org-openroadm-common-state-types { - namespace "http://org/openroadm/common-state-types"; - prefix org-openroadm-common-state-types; - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of common types. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE"; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-09-28 { - description - "Version 4.0.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - - typedef lifecycle-state { - type enumeration { - enum deployed { - value 1; - } - enum planned { - value 2; - } - enum maintenance { - value 3; - } - enum deploying { - value 4; - } - enum undeploying { - value 5; - } - enum undeployed { - value 6; - } - enum proposed { - value 7; - } - enum draft { - value 8; - } - enum deploy-failed { - value 9; - } - enum undeploy-failed { - value 10; - } - enum deployed-augmented { - value 11; - } - enum deployed-updating { - value 12; - } - } - description - "Lifecycle state."; - } - - typedef state { - type enumeration { - enum inService { - value 1; - } - enum outOfService { - value 2; - } - enum degraded { - value 3; - } - } - description - "State that indicates whether the resource is able to provide fulfill its role - carry traffic, etc."; - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-types.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-types.yang deleted file mode 100644 index 9fc6984b2..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-common-types.yang +++ /dev/null @@ -1,270 +0,0 @@ -module org-openroadm-common-types { - namespace "http://org/openroadm/common-types"; - prefix org-openroadm-common-types; - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of common types. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE"; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2019-09-27 { - description - "Version 6.0.0"; - } - revision 2019-05-31 { - description - "Version 5.1.0"; - } - revision 2019-03-29 { - description - "Version 5.0.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-09-28 { - description - "Version 4.0.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - revision 2017-12-15 { - description - "Version 2.2"; - } - revision 2017-09-29 { - description - "Version 2.1"; - } - revision 2017-06-26 { - description - "Version 2.0"; - } - revision 2016-10-14 { - description - "Version 1.2"; - } - - typedef activate-notification-type { - type enumeration { - enum activate { - value 1; - description - "software or database activation"; - } - enum commit { - value 2; - description - "commit the software or database. - For software activate, this event can happen in the following scenarios: - 1) immediately when user issue sw-activate command without validationTimer - or if the validationTimer is specified as 00-00-00; - 2) when user issue cancel-validation-timer before it expires and with accept=true. - For database activate, this event can occur in the following scenarios: - 1) immediately when user issue db-activate command without rollBackTimer - or if the rollBackTimer is specified as 00-00-00; - 2) when user issue cancel-rollback-timer before it expires and with accept=true."; - } - enum cancel { - value 3; - description - "cancel the database or software activation operation. - For software activate, this event can happen in the following cases: - 1) when the validationTimer expires; - 2) when the user issues cancel-validation-timer with accept=false. - For database activate, this event can happen in the following cases: - 1) when the rollBackTimer expires; - 2) when the user issues cancel-rollback-timer with accept=false."; - } - } - description - "Type of notification on software or database activation events"; - } - - typedef rpc-status { - type enumeration { - enum Successful { - value 1; - } - enum Failed { - value 2; - } - } - description - "status of RPC "; - } - - typedef extended-rpc-status { - type enumeration { - enum Successful { - value 1; - } - enum Failed { - value 2; - } - enum In-progress { - value 3; - } - } - description - "status of RPC "; - } - - typedef openroadm-version-type { - type enumeration { - enum 1.0 { - value 1; - description - "value for 1.0"; - } - enum 2.0 { - value 2; - description - "value for 2.0"; - } - enum 2.1 { - value 3; - description - "value for 2.1"; - } - enum 2.2 { - value 4; - description - "value for 2.2"; - } - enum 3.0 { - value 5; - description - "value for 3.0"; - } - enum 3.1 { - value 6; - description - "value for 3.1"; - } - enum 4.0 { - value 7; - description - "value for 4.0"; - } - enum 2.2.1 { - value 8; - description - "value for 2.2.1"; - } - enum 4.1 { - value 9; - description - "value for 4.1"; - } - enum 3.1.1 { - value 10; - description - "value for 3.1.1"; - } - enum 5.0 { - value 11; - description - "value for 5.0"; - } - enum 5.1 { - value 12; - description - "value for 5.1"; - } - enum 6.0 { - value 13; - description - "value for 6.0"; - } - enum 6.1 { - value 14; - description - "value for 6.1"; - } - } - description - "OpenROADM version enum type"; - } - - grouping rpc-response-status { - leaf status { - type rpc-status; - mandatory true; - description - "Successful or Failed"; - } - leaf status-message { - type string; - description - "Gives a more detailed status"; - } - } - - grouping extended-rpc-response-status { - leaf status { - type extended-rpc-status; - mandatory true; - description - "Successful, Failed or In-progress"; - } - leaf status-message { - type string; - description - "Gives a more detailed status."; - } - } - - grouping eth-rate-and-burst-size { - description - "Grouping of ethernet committed rate and burst size."; - leaf committed-info-rate { - type uint32; - mandatory true; - description - "Committed Information Rate (CIR), unit in Mbps. For example, 1250 Mbps"; - } - leaf committed-burst-size { - type uint16; - mandatory true; - description - "Committed Burst Size, unit in 1KB (K Byte). - Range 16 | 32 | 64 | 128 | 512 | 1024. Default: 16"; - } - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-device-types.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-device-types.yang deleted file mode 100644 index 89087d940..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-device-types.yang +++ /dev/null @@ -1,151 +0,0 @@ -module org-openroadm-device-types { - namespace "http://org/openroadm/device-types"; - prefix org-openroadm-device-types; - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of device types. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE"; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - - typedef node-types { - type enumeration { - enum rdm { - value 1; - } - enum xpdr { - value 2; - } - enum ila { - value 3; - } - enum extplug { - value 4; - } - } - description - "Identifier for node type - 1. rdm for ROADM - 2. xpdr for Transponder, Regen - 3. ila for in-line amplifier - 4. extplug for external pluggable"; - } - - typedef xpdr-node-types { - type enumeration { - enum tpdr { - value 1; - } - enum mpdr { - value 2; - } - enum switch { - value 3; - } - enum regen { - value 4; - } - enum regen-uni { - value 5; - } - } - description - "Identifier for Xponder node type - 1. Transponder - 2. Muxponder - 3. OTN switchponder - 4. Regenerator - 5. Regenerator based on unidirectional model"; - } - - typedef port-qual { - type enumeration { - enum roadm-internal { - value 1; - } - enum roadm-external { - value 2; - } - enum xpdr-network { - value 3; - } - enum xpdr-client { - value 4; - } - enum otdr { - value 5; - } - enum switch-network { - value 6; - } - enum switch-client { - value 7; - } - enum ila-external { - value 8; - } - enum ila-internal { - value 9; - } - } - } - - grouping physical-location { - leaf rack { - type string; - mandatory false; - } - leaf shelf { - type string; - mandatory false; - } - leaf slot { - type string; - mandatory false; - } - leaf subSlot { - type string; - mandatory false; - } - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-device.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-device.yang deleted file mode 100644 index 0180be8f5..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-device.yang +++ /dev/null @@ -1,2179 +0,0 @@ -module org-openroadm-device { - namespace "http://org/openroadm/device"; - prefix org-openroadm-device; - - import ietf-yang-types { - prefix ietf-yang-types; - revision-date 2013-07-15; - } - import ietf-inet-types { - prefix ietf-inet-types; - revision-date 2013-07-15; - } - import ietf-netconf { - prefix ietf-nc; - revision-date 2011-06-01; - } - import org-openroadm-common-types { - prefix org-openroadm-common-types; - revision-date 2019-11-29; - } - import org-openroadm-common-alarm-pm-types { - prefix org-openroadm-common-alarm-pm-types; - revision-date 2019-11-29; - } - import org-openroadm-common-equipment-types { - prefix org-openroadm-common-equipment-types; - revision-date 2019-11-29; - } - import org-openroadm-common-state-types { - prefix org-openroadm-common-state-types; - revision-date 2019-11-29; - } - import org-openroadm-common-amplifier-types { - prefix org-openroadm-common-amplifier-types; - revision-date 2019-11-29; - } - import org-openroadm-common-link-types { - prefix org-openroadm-common-link-types; - revision-date 2019-11-29; - } - import org-openroadm-common-node-types { - prefix org-openroadm-common-node-types; - revision-date 2019-11-29; - } - import org-openroadm-common-optical-channel-types { - prefix org-openroadm-common-optical-channel-types; - revision-date 2019-11-29; - } - import org-openroadm-device-types { - prefix org-openroadm-device-types; - revision-date 2019-11-29; - } - import org-openroadm-resource-types { - prefix org-openroadm-resource-types; - revision-date 2019-11-29; - } - import org-openroadm-physical-types { - prefix org-openroadm-physical-types; - revision-date 2019-11-29; - } - import org-openroadm-user-mgmt { - prefix org-openroadm-user-mgmt; - revision-date 2019-11-29; - } - import org-openroadm-port-types { - prefix org-openroadm-port-types; - revision-date 2019-11-29; - } - import org-openroadm-interfaces { - prefix org-openroadm-interfaces; - revision-date 2019-11-29; - } - import org-openroadm-swdl { - prefix org-openroadm-swdl; - revision-date 2019-11-29; - } - import org-openroadm-equipment-states-types { - prefix org-openroadm-equipment-states-types; - revision-date 2019-11-29; - } - import org-openroadm-switching-pool-types { - prefix org-openroadm-switching-pool-types; - revision-date 2019-11-29; - } - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of ROADM device - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - Also contains code components extracted from IETF netconf. These code components - are copyrighted and licensed as follows: - Copyright (c) 2016 IETF Trust and the persons identified as the document authors. - All rights reserved. - This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating - to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of - publication of this document. Please review these documents carefully, as they - describe your rights and restrictions with respect to this document. Code Components - extracted from this document must include Simplified BSD License text as described in - Section 4.e of the Trust Legal Provisions and are provided without warranty as - described in the Simplified BSD License."; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2019-09-27 { - description - "Version 6.0.0"; - } - revision 2019-05-31 { - description - "Version 5.1.0"; - } - revision 2019-03-29 { - description - "Version 5.0.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-09-28 { - description - "Version 4.0.0"; - } - revision 2018-05-30 { - description - "Version 3.1.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - revision 2017-12-15 { - description - "Version 2.2"; - } - revision 2017-09-29 { - description - "Version 2.1"; - } - revision 2017-07-28 { - description - "Version 2.0.1 - added revision-date to imports"; - } - revision 2017-06-26 { - description - "Version 2.0"; - } - revision 2017-02-06 { - description - "Version 1.2.1 - removed pattern for current-datetime in info tree and rpc"; - } - revision 2016-10-14 { - description - "Version 1.2"; - } - - identity connection-direction-identity { - description - "Bidrectional capable, or Bi and Unidirectional capable"; - } - - identity connection-direction_bi { - base connection-direction-identity; - description - "Bidrectional capable"; - } - - identity connection-direction_bi_and_uni { - base connection-direction-identity; - description - "Bi and Unidirectional capable"; - } - - typedef interface-ref { - type leafref { - path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name"; - } - description - "This type is used by data models that need to reference - configured interfaces."; - } - - grouping create-tech-info-group { - leaf shelf-id { - type leafref { - path "/org-openroadm-device/shelves/shelf-name"; - } - description - "shelf ID"; - } - leaf log-file-name { - type string; - description - "The log file name a vendor can specify for a given log collection operation"; - } - } - - grouping device-common { - leaf node-id { - type org-openroadm-common-node-types:node-id-type; - default "openroadm"; - description - "Globally unique identifier for a device."; - } - leaf node-number { - type uint32; - description - "Number assigned to a ROADM node at a - given office"; - } - leaf node-type { - type org-openroadm-device-types:node-types; - config true; - mandatory true; - description - "Identifier for node-type e.g Roadm, xponder. - Once the node-type is configured, it should not be modified."; - } - leaf clli { - type string; - description - "Common Language Location Identifier."; - } - uses org-openroadm-physical-types:node-info; - leaf ipAddress { - type ietf-inet-types:ip-address; - description - "IP Address of device"; - } - leaf prefix-length { - type uint8 { - range "0..128"; - } - description - "The length of the subnet prefix"; - } - leaf defaultGateway { - type ietf-inet-types:ip-address; - description - "Default Gateway"; - } - leaf source { - type enumeration { - enum static { - value 1; - } - enum dhcp { - value 2; - } - } - config false; - } - leaf current-ipAddress { - type ietf-inet-types:ip-address; - config false; - description - "Current IP Address of device"; - } - leaf current-prefix-length { - type uint8 { - range "0..128"; - } - config false; - description - "The current length of the subnet prefix"; - } - leaf current-defaultGateway { - type ietf-inet-types:ip-address; - config false; - description - "Current Default Gateway"; - } - leaf macAddress { - type ietf-yang-types:mac-address; - config false; - description - "MAC Address of device"; - } - leaf softwareVersion { - type string; - config false; - description - "Software version"; - } - leaf software-build { - type string; - config false; - description - "Software build version"; - } - leaf openroadm-version { - type org-openroadm-common-types:openroadm-version-type; - config false; - description - "openroadm version used on the device"; - } - leaf template { - type string; - description - "Template information used in the deployment."; - } - leaf current-datetime { - type ietf-yang-types:date-and-time; - config false; - description - "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS.mm+ "; - } - leaf lifecycle-state { - type org-openroadm-common-state-types:lifecycle-state; - description - "Lifecycle State of the device node. Whether it is planned, deployed, in maintenance, etc."; - } - container geoLocation { - description - "GPS location"; - leaf latitude { - type decimal64 { - fraction-digits 16; - range "-90 .. 90"; - } - description - "[From wikipedia] Latitude is an angle (defined below) - which ranges from 0 at the Equator to 90 (North or - South) at the poles"; - } - leaf longitude { - type decimal64 { - fraction-digits 16; - range "-180 .. 180"; - } - description - "[From wikipedia] The longitude is measured as the - angle east or west from the Prime Meridian, ranging - from 0 at the Prime Meridian to +180 eastward and - -180 westward."; - } - } - } - - grouping slot-info { - description - "slots information. To be populated by NE during retrieval."; - leaf slot-name { - type string; - description - "The name of this slot."; - } - leaf label { - type string; - description - "Faceplate label"; - } - leaf provisioned-circuit-pack { - type leafref { - path "/org-openroadm-device/circuit-packs/circuit-pack-name"; - } - description - "The supported circuit-pack. It will be empty if holder status is empty-not-prov, or installed-not-prov"; - } - leaf slot-status { - type enumeration { - enum empty-not-prov { - value 1; - description - "Slot is empty and not provisioned"; - } - enum empty-prov-match { - value 2; - status deprecated; - description - "(Deprecated) Slot is empty and expected type is provisioned"; - } - enum empty-prov-mismatch { - value 3; - status deprecated; - description - "(Deprecated) Slot is empty and an unsupported type is provisioned"; - } - enum installed-not-prov { - value 4; - description - "Slot is occupied but not provisioned"; - } - enum installed-prov-match { - value 5; - description - "Slot is occupied with matching provisioned type"; - } - enum installed-prov-mismatch { - value 6; - description - "Slot is occupied with mismatched provisioned type"; - } - enum empty-prov { - value 7; - description - "Slot is empty and provisioned"; - } - } - } - } - - grouping shelves { - list shelves { - key "shelf-name"; - uses shelf; - } - } - - grouping user-description-grp { - description - "user description group"; - leaf user-description { - type string; - description - "user provided description"; - } - } - - grouping shelf { - leaf shelf-name { - type string; - description - "Unique identifier for this shelf within a device"; - } - leaf shelf-type { - type string; - mandatory true; - description - "The shelf type: describe the shelf with a unique string."; - } - leaf rack { - type string; - description - "Reflect the shelf physical location data including floor, aisle, bay values."; - } - leaf shelf-position { - type string; - description - "Reflect the shelf vertical position within an equipment bay."; - } - leaf lifecycle-state { - type org-openroadm-common-state-types:lifecycle-state; - description - "Lifecycle State of shelf. Whether it is planned, deployed, in maintenance, etc."; - } - leaf administrative-state { - type org-openroadm-equipment-states-types:admin-states; - mandatory true; - description - "Admin State of the shelf"; - } - uses org-openroadm-physical-types:common-info; - leaf equipment-state { - type org-openroadm-equipment-states-types:states; - description - "equipment state for the shelf, used to track the lifecycle state."; - } - leaf is-physical { - type boolean; - config false; - mandatory true; - description - "is the entity physical or logical"; - } - leaf is-passive { - type boolean; - config false; - mandatory true; - description - "is the entity passive and not actively managed by the device; - e.g., no physical inventory or plug-in notification supported"; - } - leaf faceplate-label { - type string; - config false; - mandatory true; - description - "label on the faceplace silk screening"; - } - uses user-description-grp; - leaf due-date { - type ietf-yang-types:date-and-time; - description - "due date for the shelf."; - } - list slots { - key "slot-name"; - config false; - description - "List of slots on this shelf. To be populated by NE during retrieval."; - uses slot-info; - } - } - - grouping circuit-packs { - list circuit-packs { - key "circuit-pack-name"; - description - "List of circuit packs. This includes common equipment, like fans, power supplies, etc."; - leaf circuit-pack-type { - type string; - mandatory true; - description - "Type of circuit-pack"; - } - leaf circuit-pack-product-code { - type string; - description - "Product Code for the circuit-pack"; - } - uses circuit-pack; - } - } - - grouping circuit-pack-features { - leaf software-load-version { - type string; - config false; - description - "Software version running on the circuit pack."; - } - list circuit-pack-features { - key "to-be-deleted"; - config false; - leaf to-be-deleted { - type string; - description - "Key to be deleted."; - } - container feature { - description - "List of features supported by the installed load and indications on whether the features have been applied or not."; - leaf description { - type string; - description - "Feature description."; - } - leaf boot { - type boolean; - description - "Flag to indicate boot loader or unprotected firmware update required"; - } - leaf activated { - type boolean; - description - "Indicator if the feature has been activated."; - } - } - } - list circuit-pack-components { - key "to-be-deleted"; - config false; - leaf to-be-deleted { - type string; - description - "Key to be deleted."; - } - container component { - description - "Optional list of components on the circuit-pack and the load information applicable to those components. If a load is not up to date and will upgrade when a cold restart occurs, the version that will be applied should also be listed. If there is no misalignment, this does not need to be reported."; - leaf name { - type string; - description - "Name of a component on the circuit-pack that can have a load applied to it."; - } - leaf boot { - type boolean; - description - "Flag to indicate boot loader or unprotected firmware update required"; - } - leaf current-version { - type string; - description - "Name of the load version currently running on the component."; - } - leaf version-to-apply { - type string; - description - "Name of the load version for the component that will be applied when cold restart occurs on the circuit-pack."; - } - } - } - } - - grouping circuit-pack { - leaf circuit-pack-name { - type string; - description - "Unique identifier for this circuit-pack within a device"; - } - leaf lifecycle-state { - type org-openroadm-common-state-types:lifecycle-state; - description - "Lifecycle State of circuit-pack. Whether it is planned, deployed, in maintenance, etc."; - } - leaf administrative-state { - type org-openroadm-equipment-states-types:admin-states; - mandatory true; - description - "Administrative state of circuit-pack"; - } - uses org-openroadm-physical-types:common-info; - container circuit-pack-category { - config false; - description - "General type of circuit-pack"; - uses org-openroadm-common-equipment-types:equipment-type; - } - leaf equipment-state { - type org-openroadm-equipment-states-types:states; - description - "Equipment state, which complements operational state."; - } - leaf circuit-pack-mode { - type string; - default "NORMAL"; - description - "Circuit-pack mode allowed. e.g. NORMAL or REGEN"; - } - leaf shelf { - type leafref { - path "/org-openroadm-device/shelves/shelf-name"; - } - mandatory true; - } - leaf slot { - type string; - mandatory true; - } - leaf subSlot { - type string; - mandatory false; - } - leaf is-pluggable-optics { - type boolean; - config false; - mandatory true; - description - "True if circuitpack is pluggable optics"; - } - leaf is-physical { - type boolean; - config false; - mandatory true; - description - "is the entity physical or logical"; - } - leaf is-passive { - type boolean; - config false; - mandatory true; - description - "is the entity passive and not actively managed by the device; - e.g., no physical inventory or plug-in notification supported"; - } - leaf faceplate-label { - type string; - config false; - mandatory true; - description - "label on the faceplace silk screening"; - } - uses user-description-grp; - leaf due-date { - type ietf-yang-types:date-and-time; - description - "due date for this circuit-pack."; - } - container parent-circuit-pack { - description - "In the case of circuit packs that contain other equipment (modules or pluggables), this captures the hierarchy of that equipment. It is a vendor specific design decision if the ports for single-port pluggables are modeled as children of the parent circuit-pack, or as children of the pluggable circuit-pack contained in the parent circuit-pack. For modules with multiple ports, it is recommended that ports be children of the module and not the carrier, to help in fault correlation and isolation in the case of a module failure."; - uses circuit-pack-name-g; - leaf cp-slot-name { - type string; - description - "Slot name on parent-circuit-pack."; - } - } - list cp-slots { - key "slot-name"; - config false; - description - "List of circuit-pack slots on this circuit-pack. To be populated by NE during retrieval."; - uses slot-info; - leaf slot-type { - type enumeration { - enum pluggable-optics-holder { - value 1; - description - "slot accepts dedicated pluggable port circuit-pack"; - } - enum other { - value 2; - description - "slot accepts parent circuit-pack"; - } - } - } - } - uses circuit-pack-features; - list ports { - key "port-name"; - description - "List of ports on this circuit-pack. Note that pluggables are considered independent circuit-packs. All ports that are physically present on a pluggable, need to be modeled as a port against that pluggable circuit-pack, and not against the parent circuit-pack."; - uses port; - container roadm-port { - when "../port-qual='roadm-external'"; - uses org-openroadm-port-types:roadm-port; - } - container transponder-port { - when "../port-qual='xpdr-network' or ../port-qual='xpdr-client' or ../port-qual='switch-network' or ../port-qual='switch-client'"; - uses org-openroadm-port-types:common-port; - } - container otdr-port { - when "../port-qual='otdr'"; - description - "Settings for otdr port."; - leaf launch-cable-length { - type uint32; - units "m"; - default "30"; - } - leaf port-direction { - type org-openroadm-common-alarm-pm-types:direction; - } - } - container ila-port { - when "../port-qual='ila-external'"; - uses org-openroadm-port-types:common-port; - } - } - } - - grouping odu-connection { - description - "Grouping used to define odu-connections."; - leaf connection-name { - type string; - description - "roadm-connection and odu-connection share the same resource-type and resource definition (e.g. connection)"; - } - leaf direction { - type enumeration { - enum unidirectional { - value 1; - } - enum bidirectional { - value 2; - } - } - default "bidirectional"; - description - "Directionality of connection. If bidirectional, both directions are created."; - } - container source { - leaf src-if { - type leafref { - path "/org-openroadm-device/interface/name"; - } - mandatory true; - } - } - container destination { - leaf dst-if { - type leafref { - path "/org-openroadm-device/interface/name"; - } - mandatory true; - } - } - } - - grouping connection { - description - "Grouping used to define connections."; - leaf connection-name { - type string; - } - leaf opticalControlMode { - type org-openroadm-common-link-types:optical-control-mode; - default "off"; - description - "Whether connection is currently in power or gain/loss mode"; - reference "openroadm.org: Open ROADM MSA Specification."; - } - leaf target-output-power { - type org-openroadm-common-link-types:power-dBm; - description - "The output target power for this connection. When set, the ROADM will work to ensure that current-output-power reaches this level."; - } - container source { - leaf src-if { - type leafref { - path "/org-openroadm-device/interface/name"; - } - mandatory true; - } - } - container destination { - leaf dst-if { - type leafref { - path "/org-openroadm-device/interface/name"; - } - mandatory true; - } - } - } - - grouping mc-capabilities-grp { - description - "Media channel capabilities grouping"; - leaf-list mc-capabilities { - type leafref { - path "/org-openroadm-device/mc-capability-profile/profile-name"; - } - config false; - description - "Media channel capabilities"; - } - } - - grouping degree { - leaf degree-number { - type uint16; - must 'not( current() > /org-openroadm-device/info/max-degrees) and current() > 0' { - error-message "Degree not supported by device "; - description - "Validating if the degree is supported by device"; - } - } - leaf lifecycle-state { - type org-openroadm-common-state-types:lifecycle-state; - description - "Lifecycle State of degree. Whether it is planned, deployed, in maintenance, etc."; - } - leaf max-wavelengths { - type uint16; - config false; - mandatory true; - description - "maximum number of wavelengths"; - } - list circuit-packs { - key "index"; - description - "list for Cards associated with a degree"; - leaf index { - type uint32; - } - uses circuit-pack-name-g { - refine "circuit-pack-name" { - mandatory true; - } - } - } - list connection-ports { - key "index"; - description - "Port associated with degree: One if bi-directional; two if uni-directional"; - leaf index { - type uint32; - } - uses port-name { - refine "circuit-pack-name" { - mandatory true; - } - refine "port-name" { - mandatory true; - } - } - } - container otdr-port { - description - "otdr port associated with degree."; - uses port-name; - } - uses mc-capabilities-grp; - } - - grouping amplifier { - leaf amp-number { - type uint8 { - range "1..128"; - } - description - "Unique identifier/number for the amplifier entry which corresponds to a logical amplifier"; - } - leaf amp-type { - type org-openroadm-common-amplifier-types:amplifier-types; - config false; - mandatory true; - description - "Amplifier type"; - } - leaf control-mode { - type org-openroadm-common-amplifier-types:line-amplifier-control-mode; - default "off"; - description - "Whether the line amplifier is currently in off or gainLoss mode. control-mode can only be set to gainLoss when target-gain, target-tilt and egress-average-channel-power are set and the OMS interfaces are provisioned. The amplifier will be turned off when the control-mode is set to off"; - } - leaf amp-gain-range { - type org-openroadm-common-amplifier-types:amplifier-gain-range; - default "gain-range-1"; - config false; - description - "Amplifier gain-range (gain-range 1 to 4 for switched gain amplifiers) - gain-range-1 (default value) for standard amplifiers"; - } - leaf target-gain { - type org-openroadm-common-link-types:ratio-dB; - config true; - description - "Target overall Amplifier Signal gain, excluding ASE, including VOA attenuation. - Defined as optional for ODL support, but shall be considered as mandatory and provided - by the controller when the control-mode is set to gainLoss for amplifier setting"; - } - leaf target-tilt { - type org-openroadm-common-link-types:ratio-dB; - config true; - description - "Target tilt configured in case of smart EDFA. - Tilt value provided as specified in Open-ROADM-MSA-specifications spreadsheet - Defined as optional for ODL support, but shall be considered as mandatory and provided - by the controller when the control-mode is set to gainLoss for amplifier setting"; - } - leaf egress-average-channel-power { - type org-openroadm-common-link-types:power-dBm; - config true; - description - "Based upon the total max power across the 4.8 THz passband. - Defined as optional for ODL support, but shall be considered as mandatory and provided - by the controller when the control-mode is set to gainLoss for amplifier setting"; - } - leaf out-voa-att { - type org-openroadm-common-link-types:ratio-dB; - config false; - description - "Used to provide the value output VOA attenuation, optional"; - } - leaf partner-amp { - type leafref { - path "/org-openroadm-device/line-amplifier/amp-number"; - } - config false; - description - "amp-number of amp module that is functionally associated to the amplifier - in the opposite direction"; - } - leaf ila-direction-label { - type string; - description - "Amplifier direction. Each operators may have its own naming convention. - Shall be consistent with tx-instance-port-direction-label and rx-instance-port-direction-label."; - } - leaf lifecycle-state { - type org-openroadm-common-state-types:lifecycle-state; - description - "Lifecycle State of the amplifier. Whether it is planned, deployed, in maintenance, etc."; - } - } - - grouping external-links { - description - "YANG definitions for external links.. - - physical links between ROADMs and between the ROADMs and XPonders, which can be added and removed manually."; - list external-link { - key "external-link-name"; - uses external-link; - } - } - - grouping external-link { - leaf external-link-name { - type string; - } - container source { - uses org-openroadm-resource-types:device-id { - refine "node-id" { - mandatory true; - } - } - uses org-openroadm-resource-types:port-name { - refine "circuit-pack-name" { - mandatory true; - } - refine "port-name" { - mandatory true; - } - } - } - container destination { - uses org-openroadm-resource-types:device-id { - refine "node-id" { - mandatory true; - } - } - uses org-openroadm-resource-types:port-name { - refine "circuit-pack-name" { - mandatory true; - } - refine "port-name" { - mandatory true; - } - } - } - } - - grouping internal-links { - list internal-link { - key "internal-link-name"; - config false; - uses internal-link; - } - } - - grouping internal-link { - leaf internal-link-name { - type string; - } - container source { - uses port-name { - refine "circuit-pack-name" { - mandatory true; - } - refine "port-name" { - mandatory true; - } - } - } - container destination { - uses port-name { - refine "circuit-pack-name" { - mandatory true; - } - refine "port-name" { - mandatory true; - } - } - } - } - - grouping physical-links { - description - "YANG definitions for physical links. - - physical links (fiber, cables,etc.) between ports within a node. "; - list physical-link { - key "physical-link-name"; - uses physical-link; - } - } - - grouping physical-link { - leaf physical-link-name { - type string; - } - leaf is-physical { - type boolean; - description - "is the entity physical or logical"; - } - uses user-description-grp; - container source { - uses port-name { - refine "circuit-pack-name" { - mandatory true; - } - refine "port-name" { - mandatory true; - } - } - } - container destination { - uses port-name { - refine "circuit-pack-name" { - mandatory true; - } - refine "port-name" { - mandatory true; - } - } - } - leaf lifecycle-state { - type org-openroadm-common-state-types:lifecycle-state; - description - "Lifecycle State of the physical link. Whether it is planned, deployed, in maintenance, etc."; - } - } - - grouping srg { - leaf max-add-drop-ports { - type uint16; - config false; - mandatory true; - description - "The max number of ports available for a given srg"; - } - leaf current-provisioned-add-drop-ports { - type uint16; - config false; - mandatory true; - description - "The number of ports currently provisioned for a given srg."; - } - leaf srg-number { - type uint16; - must 'not(current()>/org-openroadm-device/info/max-srgs) and current()>0' { - error-message "invalid SRG"; - description - "Validating if the srg is supported by add/drop group"; - } - } - leaf lifecycle-state { - type org-openroadm-common-state-types:lifecycle-state; - description - "Lifecycle State of shared-risk-group. Whether it is planned, deployed, in maintenance, etc."; - } - leaf wavelength-duplication { - type org-openroadm-common-optical-channel-types:wavelength-duplication-type; - config false; - mandatory true; - description - "Whether the SRG can handle duplicate wavelengths and if so to what extent."; - } - list circuit-packs { - key "index"; - description - "list for Cards associated with an add/drop group and srg"; - leaf index { - type uint32; - } - uses circuit-pack-name-g { - refine "circuit-pack-name" { - mandatory true; - } - } - } - uses mc-capabilities-grp; - } - - grouping xponder { - leaf xpdr-number { - type uint16; - must 'current() > 0' { - error-message "Xponder not supported by device "; - description - "Validating if the Xponder is supported by device"; - } - } - leaf xpdr-type { - type org-openroadm-device-types:xpdr-node-types; - mandatory true; - description - "Identifier for xponder-type e.g Transponder, Muxponder"; - } - leaf lifecycle-state { - type org-openroadm-common-state-types:lifecycle-state; - description - "Lifecycle State of xponder. Whether it is planned, deployed, in maintenance, etc."; - } - leaf recolor { - type boolean; - config false; - description - "Indication if recolor is supported"; - } - list xpdr-port { - key "index"; - description - "Network Ports with in a Xponder"; - leaf index { - type uint32; - } - uses port-name { - refine "circuit-pack-name" { - mandatory true; - } - refine "port-name" { - mandatory true; - } - } - leaf eqpt-srg-id { - type uint32; - description - "Shared Risk Group identifier. All ports in a circuit-pack will have same srg-id"; - } - } - } - - grouping degree-number { - leaf degree-number { - type leafref { - path "/org-openroadm-device/degree/degree-number"; - } - description - "Degree identifier. Unique within the context of a device."; - } - } - - grouping circuit-pack-name-g { - leaf circuit-pack-name { - type leafref { - path "/org-openroadm-device/circuit-packs/circuit-pack-name"; - } - description - "Circuit-Pack identifier. Unique within the context of a device."; - } - } - - grouping port-name { - uses circuit-pack-name-g; - leaf port-name { - type leafref { - path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name"; - } - description - "Port identifier. Unique within the context of a circuit-pack."; - } - } - - grouping srg-number { - leaf srg-number { - type leafref { - path "/org-openroadm-device/shared-risk-group/srg-number"; - } - description - "Shared Risk Group identifier. Unique within the context of a device."; - } - } - - grouping supporting-port-name { - leaf supporting-circuit-pack-name { - type leafref { - path "/org-openroadm-device/circuit-packs/circuit-pack-name"; - } - description - "Identifier of the supporting circuit-pack."; - } - leaf supporting-port { - type leafref { - path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../supporting-circuit-pack-name]/ports/port-name"; - } - description - "Identifier of the supporting port."; - } - } - - grouping supporting-circuit-pack-list-grp { - description - "supporting circuit pack list grouping"; - list supporting-port-list { - key "index"; - description - "supporting port list"; - leaf index { - type uint8; - description - "supporting circuit pack index"; - } - leaf circuit-pack-name { - type leafref { - path "/org-openroadm-device/circuit-packs/circuit-pack-name"; - } - mandatory true; - description - "The supported circuit-pack. It will be empty if holder status is empty-not-prov, or installed-not-prov"; - } - leaf-list port-list { - type leafref { - path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name"; - } - description - "port list"; - } - } - } - - grouping interface-name { - description - "interface name grouping"; - leaf interface-name { - type leafref { - path "/org-openroadm-device/interface/name"; - } - config false; - description - "Name of an interface. Unique within the context of a device."; - } - } - - grouping interfaces-grp { - description - "OpenROADM Interface configuration parameters."; - list interface { - key "name"; - description - "The list of configured interfaces on the device."; - leaf name { - type string; - description - "The name of the interface."; - } - leaf description { - type string; - description - "A textual description of the interface."; - } - leaf type { - type identityref { - base org-openroadm-interfaces:interface-type; - } - mandatory true; - description - "The type of the interface."; - } - leaf lifecycle-state { - type org-openroadm-common-state-types:lifecycle-state; - description - "Lifecycle State of interface. Whether it is planned, deployed, in maintenance, etc."; - } - leaf administrative-state { - type org-openroadm-equipment-states-types:admin-states; - mandatory true; - } - leaf operational-state { - type org-openroadm-common-state-types:state; - config false; - mandatory true; - } - leaf circuit-id { - type string { - length "0..45"; - } - description - "circuit identifier/user label, - can be used in alarm correlation and/or connection management "; - } - leaf supporting-interface { - type leafref { - path "/org-openroadm-device/interface/name"; - } - description - "supporting interface"; - } - uses supporting-port-name; - leaf-list supporting-interface-list { - type leafref { - path "/org-openroadm-device/interface/name"; - } - description - "supporting interface list"; - } - uses supporting-circuit-pack-list-grp; - } - } - - grouping protection-groups { - description - "OpenROADM facility protection configuration parameters."; - container protection-grps { - description - "The list of configured protection groups on the device."; - } - } - - grouping port { - description - "Grouping of attributes related to a port object."; - leaf port-name { - type string; - mandatory true; - description - "Identifier for a port, unique within a circuit pack"; - } - uses supporting-circuit-pack-list-grp; - leaf port-type { - type string; - description - "Type of the pluggable or fixed port."; - } - leaf port-qual { - type org-openroadm-device-types:port-qual; - } - leaf port-wavelength-type { - type org-openroadm-port-types:port-wavelength-types; - config false; - description - "Type of port - single, multiple-wavelength, etc."; - } - leaf port-direction { - type org-openroadm-common-alarm-pm-types:direction; - config false; - mandatory true; - description - "Whether port is uni (tx/rx) or bi-directional and"; - } - leaf label { - type string; - config false; - status deprecated; - description - "Faceplate label"; - } - leaf is-physical { - type boolean; - config false; - mandatory true; - description - "is the entity physical or logical"; - } - leaf faceplate-label { - type string; - config false; - mandatory true; - description - "label on the faceplace silk screening"; - } - uses user-description-grp; - leaf circuit-id { - type string { - length "0..45"; - } - description - "circuit identifier/user label, - can be used in alarm correlation and/or connection management "; - } - leaf lifecycle-state { - type org-openroadm-common-state-types:lifecycle-state; - description - "Lifecycle State of port. Whether it is planned, deployed, in maintenance, etc."; - } - leaf administrative-state { - type org-openroadm-equipment-states-types:admin-states; - default "outOfService"; - description - "Administrative state of port. The value of this field independent of the state of its contained and containing resources. Setting this a port to administratively down will impact both its operational state, as well the operational state of its contained resources. If this port is an endpoint to a connection, internal-link, physical-link, etc, then administratively disabling this port will impact the operational state of those items unless they are using some form of port-protection schema."; - } - leaf operational-state { - type org-openroadm-common-state-types:state; - config false; - mandatory true; - description - "Operational state of a port"; - } - leaf-list supported-interface-capability { - type identityref { - base org-openroadm-port-types:supported-if-capability; - } - config false; - description - "Interface types supported on this port"; - } - leaf logical-connection-point { - type string; - description - "delete or replace with list logical-ports or connections?"; - } - container partner-port { - config false; - description - "For ports which are not identified as having a direction of bidirectional, this field is used to identify the port which corresponds to the reverse direction. A port pair should include a port for each direction (tx, rx) and report their mate as partner-port."; - uses port-name; - } - container parent-port { - config false; - description - "In the case of port hierarchy, this is the parent port, which is also modeled as port within this circuit-pack. This is used in the case of a port that supports a parallel connector that contains subports. The parent-port of the subport will be the port that contains this subport. This can be used to help isolate faults when a single fault on a parallel connector introduces symptomatic failures on the contained subports."; - uses port-name; - } - list interfaces { - key "interface-name"; - config false; - description - "List of the interfaces this port supports. This is a list of names of instances in the flat instance list. Implementations must provide the list of interfaces for port that has interfaces provisioned on that port."; - uses interface-name; - } - uses mc-capabilities-grp; - } - - // grouping org-openroadm-device-container-g { - container org-openroadm-device { - container info { - uses device-common; - leaf max-degrees { - type uint16; - config false; - description - "Max. number of degrees supported by device"; - } - leaf max-srgs { - type uint16; - config false; - description - "Max. number of SRGs in an add/drop group"; - } - leaf max-num-bin-15min-historical-pm { - type uint16; - config false; - description - "Max. number of bin the NE support for 15min historical PM"; - } - leaf max-num-bin-24hour-historical-pm { - type uint16; - config false; - description - "Max. number of bin the NE support for 24hour historical PM"; - } - } - container users { - description - "Stores a list of users"; - uses org-openroadm-user-mgmt:user-profile; - } - container pending-sw { - config false; - description - "pending software information"; - uses org-openroadm-swdl:sw-bank; - } - container database-info { - config false; - description - "database restore information"; - uses org-openroadm-swdl:database-info-group; - } - uses shelves; - uses circuit-packs; - uses interfaces-grp; - uses protection-groups; - container protocols { - description - "Contains the supported protocols"; - leaf lifecycle-state { - type org-openroadm-common-state-types:lifecycle-state; - description - "Lifecycle State of the protocols. Whether it is planned or deployed, etc."; - } - } - uses internal-links; - uses physical-links; - uses external-links; - list degree { - when "/org-openroadm-device/info/node-type='rdm'"; - key "degree-number"; - uses degree; - } - list shared-risk-group { - when "/org-openroadm-device/info/node-type='rdm'"; - key "srg-number"; - uses srg; - } - list line-amplifier { - when "/org-openroadm-device/info/node-type='ila'"; - key "amp-number"; - description - "lists amplifiers in different directions"; - uses amplifier; - list circuit-pack { - key "index"; - description - "list for Cards associated with an amplifier"; - leaf index { - type uint32; - } - uses circuit-pack-name-g { - refine "circuit-pack-name" { - mandatory true; - } - } - } - list line-port { - key "port-direction"; - description - "Port associated with an amplifier which face the line (ila-external): traffic port."; - leaf port-direction { - type org-openroadm-common-alarm-pm-types:direction; - config true; - mandatory true; - description - "partly allows identifying ports associated with logical amp :TX for egress, RX for ingress - TXRX in case of bidirectional port"; - } - leaf tx-instance-port-direction-label { - type string; - config true; - description - "Complements ports identification. Used notably in case of bidirectional ports, - and/or in multi-degree amplifier nodes. Allows associating one of the directions - specified in ila-direction-label. Shall be consistent with ila-direction-label"; - } - leaf rx-instance-port-direction-label { - type string; - config true; - description - "Complements ports identification. Used notably in case of bidirectional ports, - and/or in multi-degree amplifier nodes. Allows associating one of the directions - specified in ila-direction-label. Shall be consistent with ila-direction-label"; - } - uses port-name { - refine "circuit-pack-name" { - mandatory true; - } - refine "port-name" { - mandatory true; - } - } - } - list osc-port { - key "port-direction"; - description - "Ports associated with OSC"; - leaf port-direction { - type org-openroadm-common-alarm-pm-types:direction; - config true; - mandatory true; - description - "allows identifying ports associated with logical amp : - TX for OSC circuit-pack IN RX for OSC circuit-pack OUT"; - } - uses port-name { - refine "circuit-pack-name" { - mandatory true; - } - refine "port-name" { - mandatory true; - } - } - } - list otdr-port { - key "otdr-direction"; - description - "otdr ports associated with an ILA"; - leaf otdr-direction { - type string; - config true; - description - "allows identifying associated logical amp port in which OTDR is launched: - corresponds to rx-instance-port-direction-label of corresponding amplifier line-port"; - } - uses port-name { - refine "circuit-pack-name" { - mandatory true; - } - refine "port-name" { - mandatory true; - } - } - } - } - list xponder { - when "/org-openroadm-device/info/node-type='xpdr'"; - key "xpdr-number"; - uses xponder; - } - list roadm-connections { - when "/org-openroadm-device/info/node-type='rdm'"; - key "connection-name"; - uses connection; - } - list odu-connection { - when "/org-openroadm-device/info/node-type='xpdr'"; - key "connection-name"; - uses odu-connection; - } - list connection-map { - key "connection-map-number"; - config false; - leaf connection-map-number { - type uint32; - description - "Unique identifier for this connection-map entry"; - } - container source { - leaf circuit-pack-name { - type leafref { - path "/org-openroadm-device/circuit-packs/circuit-pack-name"; - } - mandatory true; - } - leaf port-name { - type leafref { - path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name"; - } - mandatory true; - description - "Port identifier. Unique within the context of a circuit-pack."; - } - } - list destination { - key "circuit-pack-name port-name"; - min-elements 1; - leaf circuit-pack-name { - type leafref { - path "/org-openroadm-device/circuit-packs/circuit-pack-name"; - } - mandatory true; - } - leaf port-name { - type leafref { - path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name"; - } - mandatory true; - description - "Port identifier. Unique within the context of a circuit-pack."; - } - } - } - list odu-switching-pools { - when "/org-openroadm-device/info/node-type='xpdr'"; - key "switching-pool-number"; - config false; - leaf switching-pool-number { - type uint16; - description - "Unique identifier for this odu-switching-pool"; - } - leaf switching-pool-type { - type org-openroadm-switching-pool-types:switching-pool-types; - description - "Blocking/Non-Blocking"; - } - leaf odu-connection-direction-capabilities { - type identityref { - base connection-direction-identity; - } - description - "Bidrectional capable, or Bi and Unidirectional capable"; - } - list non-blocking-list { - key "nbl-number"; - config false; - description - "List of ports in a non-blocking switch element"; - leaf nbl-number { - type uint16; - description - "Identifier for this non-blocking-list. Unique within odu-switching-pool"; - } - leaf interconnect-bandwidth-unit { - type uint32; - config false; - description - "Switch fabric interconnect bandwidth unit rate in bits per second. - Represents granularity of switch fabric"; - } - leaf interconnect-bandwidth { - type uint32; - config false; - description - "Total interconnect bandwidth for a non-blocking element expressed as - number of inter-connect-bandwidth units"; - } - list port-list { - key "circuit-pack-name port-name"; - leaf circuit-pack-name { - type leafref { - path "/org-openroadm-device/circuit-packs/circuit-pack-name"; - } - config false; - } - leaf port-name { - type leafref { - path "/org-openroadm-device/circuit-packs/ports/port-name"; - } - config false; - description - "Port name. Unique within device"; - } - } - list pluggable-optics-holder-list { - key "circuit-pack-name slot-name"; - leaf circuit-pack-name { - type leafref { - path "/org-openroadm-device/circuit-packs/circuit-pack-name"; - } - config false; - description - "Name of parent circuit-pack"; - } - leaf slot-name { - type leafref { - path "/org-openroadm-device/circuit-packs/cp-slots/slot-name"; - } - config false; - description - "Name of pluggable-optics-holder"; - } - } - } - } - list mc-capability-profile { - key "profile-name"; - config false; - description - "Media channel capability profile list"; - leaf profile-name { - type string; - description - "Media channel profile name"; - } - leaf center-freq-granularity { - type org-openroadm-common-optical-channel-types:frequency-GHz; - default "50"; - config false; - description - "Granularity of allowed center frequencies. The base frequency for this computation is 193.1 THz (G.694.1)"; - } - leaf min-edge-freq { - type org-openroadm-common-optical-channel-types:frequency-THz; - config false; - description - "Minimum edge frequency"; - } - leaf max-edge-freq { - type org-openroadm-common-optical-channel-types:frequency-THz; - config false; - description - "Maximum edge frequency"; - } - leaf slot-width-granularity { - type org-openroadm-common-optical-channel-types:frequency-GHz; - default "50"; - config false; - description - "Width of a slot measured in GHz."; - } - leaf min-slots { - type uint32; - default "1"; - config false; - description - "Minimum number of slots permitted to be joined together to form a media channel. Must be less than or equal to the max-slots"; - } - leaf max-slots { - type uint32; - default "1"; - config false; - description - "Maximum number of slots permitted to be joined together to form a media channel. Must be greater than or equal to the min-slots"; - } - } - } - // } - - grouping common-session-parms { - description - "Common session parameters to identify a - management session."; - leaf username { - type org-openroadm-user-mgmt:username-type; - mandatory true; - description - "Name of the user for the session."; - } - leaf session-id { - type ietf-nc:session-id-or-zero-type; - mandatory true; - description - "Identifier of the session. - A NETCONF session MUST be identified by a non-zero value. - A non-NETCONF session MAY be identified by the value zero."; - } - leaf source-host { - type ietf-inet-types:ip-address; - description - "Address of the remote host for the session."; - } - } - - grouping changed-by-parms { - description - "Common parameters to identify the source - of a change event, such as a configuration - or capability change."; - container changed-by { - description - "Indicates the source of the change. - If caused by internal action, then the - empty leaf 'server' will be present. - If caused by a management session, then - the name, remote host address, and session ID - of the session that made the change will be reported."; - choice server-or-user { - leaf server { - type empty; - description - "If present, the change was caused - by the server."; - } - case by-user { - uses common-session-parms; - } - } - } - } - - rpc led-control { - description - "This command is used to allow user to find an entity on the NE, - The specified entity will have LED blinking. - The equipmentLedOn alarm will be raised and cleared for the indication"; - input { - choice equipment-entity { - mandatory true; - case shelf { - leaf shelf-name { - type leafref { - path "/org-openroadm-device/shelves/shelf-name"; - } - mandatory true; - description - "shelf-name for the operation"; - } - } - case circuit-pack { - leaf circuit-pack-name { - type leafref { - path "/org-openroadm-device/circuit-packs/circuit-pack-name"; - } - mandatory true; - description - "circuit-pack-name for the operation"; - } - } - } - leaf enabled { - type boolean; - mandatory true; - description - "led-control enabled flag. - when enabled=true, equipmentLedOn alarm will be raised - when enabled=false, equipmentLedOn alarm will be cleared"; - } - } - output { - uses org-openroadm-common-types:rpc-response-status; - } - } - rpc create-tech-info { - description - "Collects all log data for debugging and place it in a location accessible via ftp/sftp. - This model assumes ASYNC operation, i.e. the command will return after the device accepts the command, - A create-tech-info-notification will be send out later for the result of the operation. - The log-file is cleared at the start of every create-tech-info operation in order to ensure - the up-to-date logs are collected. If a vendor does not support concurrent log collection, the second - create-tech-info command will be rejected."; - input { - leaf shelf-id { - type leafref { - path "/org-openroadm-device/shelves/shelf-name"; - } - description - "This optional field is used to specify the shelf for log collection. - When this filed is not provided, it is expected to collect logs for the whole node. - Vendor should reject the command if the whole node log collection is not supported."; - } - leaf log-option { - type string; - description - "The log type a vendor can specify. Maybe used in future"; - } - } - output { - uses create-tech-info-group; - uses org-openroadm-common-types:rpc-response-status; - } - } - rpc get-connection-port-trail { - input { - leaf connection-name { - type string; - mandatory true; - } - } - output { - uses org-openroadm-common-types:rpc-response-status; - list ports { - uses org-openroadm-device-types:physical-location; - uses port-name { - refine "circuit-pack-name" { - mandatory true; - } - refine "port-name" { - mandatory true; - } - } - } - } - } - rpc disable-automatic-shutoff { - input { - choice degree-or-amp { - mandatory true; - description - "The choice describes the option to specify the entity for the disable-automatic-shutoff RPC. It can be degree-number for rdm and amp-number for ila"; - case degree { - leaf degree-number { - type leafref { - path "/org-openroadm-device/degree/degree-number"; - } - mandatory true; - description - "The degree-number defined in degree"; - } - } - case amp { - leaf amp-number { - type leafref { - path "/org-openroadm-device/line-amplifier/amp-number"; - } - mandatory true; - description - "The amp-number defined in line-amplifier"; - } - } - } - leaf support-timer { - type uint16 { - range "1..600"; - } - default "20"; - } - } - output { - uses org-openroadm-common-types:rpc-response-status; - } - } - rpc start-scan { - input { - choice degree-or-amp { - mandatory true; - description - "The choice describes the option to specify the entity for the start-scan RPC. It can be degree-number for rdm and amp-number for ila"; - case degree { - leaf degree-number { - type leafref { - path "/org-openroadm-device/degree/degree-number"; - } - mandatory true; - description - "The degree-number defined in degree"; - } - } - case amp { - leaf amp-number { - type leafref { - path "/org-openroadm-device/line-amplifier/amp-number"; - } - mandatory true; - description - "The amp-number defined in line-amplifier"; - } - } - } - leaf port-direction { - type org-openroadm-common-alarm-pm-types:direction; - } - leaf distance { - type uint32; - } - leaf resolution { - type uint32; - } - } - output { - uses org-openroadm-common-types:rpc-response-status; - } - } - rpc set-current-datetime { - description - "Set the info/current-datetime leaf to the specified value."; - input { - leaf current-datetime { - type ietf-yang-types:date-and-time; - mandatory true; - description - "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS"; - } - } - output { - uses org-openroadm-common-types:rpc-response-status; - } - } - notification create-tech-info-notification { - description - "This Notification is sent when the create-tech-info is complete or failed."; - uses create-tech-info-group; - uses org-openroadm-common-types:rpc-response-status; - } - notification otdr-scan-result { - description - "This Notification is sent when the otdr-scan-result is complete or failed."; - uses org-openroadm-common-types:rpc-response-status; - leaf result-file { - type string; - } - } - notification change-notification { - description - "The Notification that a resource has been added, modified or removed. - This notification can be triggered by changes in configuration and operational data. - It shall contain the changed field pointed by the xpath. - Typically it is not intended for frequently changing volatile data e.g. PM, power levels"; - leaf change-time { - type ietf-yang-types:date-and-time; - description - "The time the change occurs."; - } - uses changed-by-parms; - leaf datastore { - type enumeration { - enum running { - description - "The datastore has changed."; - } - enum startup { - description - "The datastore has changed"; - } - } - default "running"; - description - "Indicates which configuration datastore has changed."; - } - list edit { - description - "An edit (change) record SHOULD be present for each distinct - edit operation that the server has detected on - the target datastore. This list MAY be omitted - if the detailed edit operations are not known. - The server MAY report entries in this list for - changes not made by a NETCONF session."; - leaf target { - type instance-identifier; - description - "Top most node associated with the configuration or operational change. - A server SHOULD set this object to the node within - the datastore that is being altered. A server MAY - set this object to one of the ancestors of the actual - node that was changed, or omit this object, if the - exact node is not known."; - } - leaf operation { - type ietf-nc:edit-operation-type; - description - "Type of edit operation performed. - A server MUST set this object to the NETCONF edit - operation performed on the target datastore."; - } - } - } - // uses org-openroadm-device-container-g; -} \ No newline at end of file diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-equipment-states-types.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-equipment-states-types.yang deleted file mode 100644 index ccfca1972..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-equipment-states-types.yang +++ /dev/null @@ -1,147 +0,0 @@ -module org-openroadm-equipment-states-types { - namespace "http://org/openroadm/equipment/states/types"; - prefix org-openroadm-equipment-states-types; - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions for types of states of equipment (slot/subslot). - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE."; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2017-12-15 { - description - "Version 2.2"; - } - revision 2017-06-26 { - description - "Version 2.0"; - } - revision 2016-10-14 { - description - "Version 1.2"; - } - - typedef admin-states { - type enumeration { - enum inService { - value 1; - } - enum outOfService { - value 2; - } - enum maintenance { - value 3; - } - } - } - - typedef states { - type enumeration { - enum reserved-for-facility-planned { - value 1; - description - "equipment is planned for use by a service"; - } - enum not-reserved-planned { - value 2; - description - "equipment is planned by not reserved for any purpose"; - } - enum reserved-for-maintenance-planned { - value 3; - description - "equipment is planned for use as a maintenance spare"; - } - enum reserved-for-facility-unvalidated { - value 4; - description - "equipment is reserved for use by a service but not - validated against planned equipment"; - } - enum not-reserved-unvalidated { - value 5; - description - "equipment is not reserved for any purpose and - not validated against planned equipment"; - } - enum unknown-unvalidated { - value 6; - description - "unknown equipment not validated against planned equipment"; - } - enum reserved-for-maintenance-unvalidated { - value 7; - description - "equipment is to be used for use as a maintenance spare - but not validated against planned equipment"; - } - enum reserved-for-facility-available { - value 8; - description - "reserved for use by a service and available"; - } - enum not-reserved-available { - value 9; - description - "not reserved for use by a service and available"; - } - enum reserved-for-maintenance-available { - value 10; - description - "reserved as a maintenance spare and available"; - } - enum reserved-for-reversion-inuse { - value 11; - description - "equipment that is reserved as part of a home path - for a service that has been temporarily re-routed"; - } - enum not-reserved-inuse { - value 12; - description - "equipment in use for a service"; - } - enum reserved-for-maintenance-inuse { - value 13; - description - "maintenance spare equipment that is in use as a - maintenance spare"; - } - } - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-interfaces.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-interfaces.yang deleted file mode 100644 index 618c1e51b..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-interfaces.yang +++ /dev/null @@ -1,181 +0,0 @@ -module org-openroadm-interfaces { - namespace "http://org/openroadm/interfaces"; - prefix openROADM-if; - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions for device facility interfaces. - Reused ietf-interfaces and some interface-type defined in iana-if-type. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - Also contains code components extracted from IETF Interfaces. These code components - are copyrighted and licensed as follows: - - Copyright (c) 2016 IETF Trust and the persons identified as the document authors. - All rights reserved. - - This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating - to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of - publication of this document. Please review these documents carefully, as they - describe your rights and restrictions with respect to this document. Code Components - extracted from this document must include Simplified BSD License text as described in - Section 4.e of the Trust Legal Provisions and are provided without warranty as - described in the Simplified BSD License."; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2019-05-31 { - description - "Version 5.1.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-09-28 { - description - "Version 4.0.0"; - } - revision 2018-03-30 { - description - "Version 3.0"; - } - revision 2017-06-26 { - description - "Version 2.0"; - } - revision 2016-10-14 { - description - "Version 1.2"; - } - - identity interface-type { - description - "Base identity from which specific interface types are - derived."; - } - - identity ethernetCsmacd { - base interface-type; - description - "For all Ethernet-like interfaces, regardless of speed, - as per RFC 3635."; - reference - "RFC 3635 - Definitions of Managed Objects for the - Ethernet-like Interface Types"; - } - - identity ip { - base interface-type; - description - "IP (for APPN HPR in IP networks)."; - } - - identity mediaChannelTrailTerminationPoint { - base interface-type; - description - "Media Channel Trail Termination Point"; - } - - identity networkMediaChannelConnectionTerminationPoint { - base interface-type; - description - "Network Media Channel Connection Termination Point"; - } - - identity opticalChannel { - base interface-type; - description - "Optical Channel."; - } - - identity opticalTransport { - base interface-type; - description - "Optical Transport."; - } - - identity otnOdu { - base interface-type; - description - "OTN Optical Data Unit."; - } - - identity otnOtu { - base interface-type; - description - "OTN Optical channel Transport Unit."; - } - - identity otsi { - base interface-type; - description - "OTSI interface."; - } - - identity otsi-group { - base interface-type; - description - "OTSI Group interface."; - } - - identity flexo { - base interface-type; - description - "Flexo interface."; - } - - identity flexo-group { - base interface-type; - description - "Flexo Group interface."; - } - - identity openROADMOpticalMultiplex { - base interface-type; - description - "Optical Transport Multiplex type for openROADM"; - } - - identity ppp { - base interface-type; - description - "PPP for IP GNE."; - } - - identity gcc { - base interface-type; - description - "ITU-T G.709 GCC."; - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-otn-common-types.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-otn-common-types.yang deleted file mode 100644 index 69b9e9d38..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-otn-common-types.yang +++ /dev/null @@ -1,343 +0,0 @@ -module org-openroadm-otn-common-types { - namespace "http://org/openroadm/otn-common-types"; - prefix org-openroadm-otn-common-types; - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions for common otn related type definitions. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - Also contains code components extracted from IETF Interfaces. These code components - are copyrighted and licensed as follows: - - Copyright (c) 2016 IETF Trust and the persons identified as the document authors. - All rights reserved. - - This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating - to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of - publication of this document. Please review these documents carefully, as they - describe your rights and restrictions with respect to this document. Code Components - extracted from this document must include Simplified BSD License text as described in - Section 4.e of the Trust Legal Provisions and are provided without warranty as - described in the Simplified BSD License."; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2019-09-27 { - description - "Version 6.0.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-09-28 { - description - "Version 4.0.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - revision 2017-12-15 { - description - "Version 2.2"; - } - revision 2017-09-29 { - description - "Version 2.1"; - } - - identity otu-rate-identity { - description - "A unique rate identification of the OTU."; - } - - identity OTUCn { - base otu-rate-identity; - description - "Identity for an OTUCn"; - } - - identity OTU4 { - base otu-rate-identity; - description - "Identity for an OTU4"; - } - - identity OTU3 { - base otu-rate-identity; - description - "Identity for an OTU3"; - } - - identity OTU2 { - base otu-rate-identity; - description - "Identity for an OTU2"; - } - - identity OTU2e { - base otu-rate-identity; - description - "Identity for an OTU2e"; - } - - identity OTU1 { - base otu-rate-identity; - description - "Identity for an OTU1"; - } - - identity OTU0 { - base otu-rate-identity; - description - "Identity for an OTU0"; - } - - identity OTUflex { - base otu-rate-identity; - description - "Identity for an OTUflex"; - } - - identity odu-rate-identity { - description - "A unique rate identification of the ODU."; - } - - identity ODUCn { - base odu-rate-identity; - description - "Identity for an ODUCn"; - } - - identity ODU4 { - base odu-rate-identity; - description - "Identity for an ODU4"; - } - - identity ODU3 { - base odu-rate-identity; - description - "Identity for an ODU3"; - } - - identity ODU2 { - base odu-rate-identity; - description - "Identity for an ODU2"; - } - - identity ODU2e { - base odu-rate-identity; - description - "Identity for an ODU2e"; - } - - identity ODU1 { - base odu-rate-identity; - description - "Identity for an ODU1"; - } - - identity ODU0 { - base odu-rate-identity; - description - "Identity for an ODU0"; - } - - identity ODUflex-cbr { - base odu-rate-identity; - description - "ODUFlex for CBR client signals (G.709)"; - } - - identity ODUflex-cbr-25G { - base odu-rate-identity; - description - "ODUFlex for CBR client signals 25G (G.709 17.13.1)"; - } - - identity ODUflex-cbr-200G { - base odu-rate-identity; - description - "ODUFlex for CBR client signals 200G (G.709 17.13.2)"; - } - - identity ODUflex-cbr-400G { - base odu-rate-identity; - description - "ODUFlex for CBR client signals 400G (G.709 17.13.2)"; - } - - identity ODUflex-imp { - base odu-rate-identity; - description - "ODUFlex for IMP (Idle insertion Mapping Procedure) mapped client signals (G.709)"; - } - - identity ODUflex-flexe { - base odu-rate-identity; - description - "ODUflex for FlexE-aware client signals (G.709)"; - } - - identity ODUflex-gfp { - base odu-rate-identity; - description - "ODUflex for GFP-F mapped client signals (G.709)"; - } - - identity odtu-type-identity { - description - "A unique identification for the MSI odtu type."; - } - - identity ODTUCn.ts { - base odtu-type-identity; - description - "ODTUCn.ts - OPUCn MSI type (G.709 clause 20.2)"; - } - - identity ODTU4.ts-Allocated { - base odtu-type-identity; - description - "OPU4 MSI - ODTU4.ts, OPU4 MSI TS is occupied/allocated. - Applies to all ODTU4.x mappings"; - } - - identity ODTU01 { - base odtu-type-identity; - description - "ODTU01 MSI type"; - } - - identity ODTU12 { - base odtu-type-identity; - description - "ODTU12 MSI type"; - } - - identity ODTU13 { - base odtu-type-identity; - description - "ODTU13 MSI type"; - } - - identity ODTU23 { - base odtu-type-identity; - description - "ODTU23 MSI type"; - } - - identity ODTU2.ts { - base odtu-type-identity; - description - "ODTU2.ts MSI type"; - } - - identity ODTU3.ts { - base odtu-type-identity; - description - "ODTU3.ts MSI type"; - } - - identity ODTU4.ts { - base odtu-type-identity; - description - "ODTU4.ts MSI type"; - } - - identity unallocated { - base odtu-type-identity; - description - "Unallocated MSI type"; - } - - identity odu-function-identity { - description - "A unique identification of the ODUk interface function."; - } - - identity ODU-TTP { - base odu-function-identity; - description - "ODU TTP facility facing trail termination"; - } - - identity ODU-CTP { - base odu-function-identity; - description - "ODU CTP connection termination"; - } - - identity ODU-TTP-CTP { - base odu-function-identity; - description - "ODU CTP mapper level connection termination with trail termination and client adaptation"; - } - - typedef payload-type-def { - type string { - length "2"; - pattern '[0-9a-fA-F]*'; - } - description - "Common type definition for odu payload-type"; - } - - typedef opucn-trib-slot-def { - type string; - description - "OPUCn trib slot in the form of 'A.B' with - A = 1..n - B = 1..20"; - } - - typedef tcm-direction-enum { - type enumeration { - enum up-tcm { - description - "TCM termination direction faces the switch fabric."; - } - enum down-tcm { - description - "TCM termination direction faces the facility"; - } - } - description - "Enumeration type for TCM direction"; - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-physical-types.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-physical-types.yang deleted file mode 100644 index 236093707..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-physical-types.yang +++ /dev/null @@ -1,153 +0,0 @@ -module org-openroadm-physical-types { - namespace "http://org/openroadm/physical/types"; - prefix org-openroadm-physical-types; - - import org-openroadm-common-state-types { - prefix org-openroadm-common-state-types; - revision-date 2019-11-29; - } - import ietf-yang-types { - prefix yang; - revision-date 2013-07-15; - } - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of physical types. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE."; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-09-28 { - description - "Version 4.0.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - revision 2017-12-15 { - description - "Version 2.2"; - } - revision 2017-09-29 { - description - "Version 2.1"; - } - revision 2017-07-28 { - description - "Version 2.0.1 - added revision-date to imports"; - } - revision 2017-06-26 { - description - "Version 2.0"; - } - revision 2016-10-14 { - description - "Version 1.2"; - } - - grouping node-info { - description - "Physical inventory data used by the node"; - leaf vendor { - type string; - config false; - mandatory true; - description - "Vendor of the equipment"; - } - leaf model { - type string; - config false; - mandatory true; - description - "Physical resource model information."; - } - leaf serial-id { - type string; - config false; - mandatory true; - description - "Product Code for this physical resource"; - } - } - - grouping common-info { - description - "Physical inventory data used by all other entities"; - uses node-info; - leaf type { - type string; - config false; - description - "The specific type of this physical resource - ie the type of - shelf, type of circuit-pack, etc."; - } - leaf product-code { - type string; - config false; - description - "Product Code for this physical resource"; - } - leaf manufacture-date { - type yang:date-and-time; - config false; - description - "Manufacture date of physical resource"; - } - leaf clei { - type string; - config false; - description - "CLEI for this physical resource"; - } - leaf hardware-version { - type string; - config false; - description - "The version of the hardware."; - } - leaf operational-state { - type org-openroadm-common-state-types:state; - config false; - mandatory true; - description - "Operational state of the physical resource"; - } - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-pm.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-pm.yang deleted file mode 100644 index 2cebbb477..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-pm.yang +++ /dev/null @@ -1,350 +0,0 @@ -module org-openroadm-pm { - namespace "http://org/openroadm/pm"; - prefix org-openroadm-pm; - - import ietf-yang-types { - prefix yang; - revision-date 2013-07-15; - } - import org-openroadm-common-types { - prefix org-openroadm-common-types; - revision-date 2019-11-29; - } - import org-openroadm-common-alarm-pm-types { - prefix org-openroadm-common-alarm-pm-types; - revision-date 2019-11-29; - } - import org-openroadm-resource { - prefix org-openroadm-resource; - revision-date 2019-11-29; - } - import org-openroadm-resource-types { - prefix org-openroadm-resource-types; - revision-date 2019-11-29; - } - import org-openroadm-pm-types { - prefix org-openroadm-pm-types; - revision-date 2019-11-29; - } - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of performance management. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE"; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2019-09-27 { - description - "Version 6.0.0"; - } - revision 2019-05-31 { - description - "Version 5.1.0"; - } - revision 2019-03-29 { - description - "Version 5.0.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-09-28 { - description - "Version 4.0.0"; - } - revision 2018-05-30 { - description - "Version 3.1.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - revision 2017-12-15 { - description - "Version 2.2"; - } - revision 2017-09-29 { - description - "Version 2.1"; - } - revision 2017-07-28 { - description - "Version 2.0.1 - added revision-date to imports"; - } - revision 2017-06-26 { - description - "Version 2.0"; - } - revision 2016-10-14 { - description - "Version 1.2"; - } - - feature historical-pm-retrieval { - description - "The device supports the ability to directly retrieve the historical - PM data from the YANG model."; - } - - grouping current-pm-group { - description - "PM Data with current values - both realtime (granularity=notApplicable) - and binned (granularity=15 minute, 24h))"; - leaf pm-resource-instance { - type instance-identifier; - config false; - mandatory true; - description - "Retrieves all PM associate with the resource instance"; - } - leaf pm-resource-type { - type org-openroadm-resource-types:resource-type-enum; - config false; - mandatory true; - description - "The supported pm-resource-type associated with the given resource instance."; - } - leaf pm-resource-type-extension { - type string; - config false; - description - "The resource type extension when the type is not defined in the resource-type-enum."; - } - leaf start-time { - type yang:date-and-time; - config false; - mandatory true; - description - "Represents the start time of the bin (15m, 24h granularity) or the start of data collection (notApplicable/untimed granularity)."; - } - leaf retrieval-time { - type yang:date-and-time; - config false; - mandatory true; - description - "Represents the time when the data is being read, not the bin start or end time."; - } - list current-pm { - key "type extension location direction"; - config false; - uses current-pm-val-group; - } - } - - grouping current-pm-val-group { - uses org-openroadm-pm-types:pm-names; - leaf location { - type org-openroadm-common-alarm-pm-types:location; - } - leaf direction { - type org-openroadm-common-alarm-pm-types:direction; - } - list measurement { - key "granularity"; - leaf granularity { - type org-openroadm-pm-types:pm-granularity; - } - uses org-openroadm-pm-types:pm-measurement; - } - } - - grouping historical-pm-group { - description - "PM Data with historical values - binned (granularity=15 minute, 24h))"; - leaf pm-resource-instance { - type instance-identifier; - config false; - mandatory true; - description - "Retrieves all PM associate with the resource instance"; - } - leaf pm-resource-type { - type org-openroadm-resource-types:resource-type-enum; - config false; - mandatory true; - } - leaf pm-resource-type-extension { - type string; - config false; - description - "The resource type extension when the type is not defined in the resource-type-enum."; - } - list historical-pm { - key "type extension location direction"; - uses historical-pm-val-group; - } - } - - grouping historical-pm-val-group { - description - "PM Data with historical values"; - uses org-openroadm-pm-types:pm-names; - leaf location { - type org-openroadm-common-alarm-pm-types:location; - } - leaf direction { - type org-openroadm-common-alarm-pm-types:direction; - } - list measurement { - key "granularity bin-number"; - leaf granularity { - type org-openroadm-pm-types:pm-granularity; - mandatory true; - } - leaf bin-number { - type uint16 { - range "1..max"; - } - config false; - mandatory true; - } - uses org-openroadm-pm-types:pm-measurement; - leaf completion-time { - type yang:date-and-time; - config false; - mandatory true; - description - "The time at the end of the period; For example if bin starts at - 01:15:00 and ends at 01:29:59, the completion-time is 01:29:59"; - } - } - } - - grouping collect-history-pm-group { - leaf pm-filename { - type string { - length "10..255"; - } - mandatory true; - description - "The file name to write the historical PM data. - The controller should be able to use this name to retrieve the file via ftp/sftp. - The file name should be unique for each RPC request since a new RPC request - could be initiated while the file transfer of the previous file is still in progress. - - The file content should be written in xml format based on the historical-pm-list - yang definition and the file should be gzip compressed."; - } - uses org-openroadm-common-types:rpc-response-status; - } - - rpc clear-pm { - description - "Command to initialize PM data"; - input { - uses org-openroadm-resource:resource; - leaf pm-type { - type enumeration { - enum current { - value 1; - } - enum all { - value 2; - } - } - default "current"; - } - leaf granularity { - type org-openroadm-pm-types:pm-granularity; - default "15min"; - } - } - output { - uses org-openroadm-common-types:rpc-response-status; - } - } - rpc collect-historical-pm-file { - description - "Command to query historical PM data. - The device should be able to process an rpc request for 15min data - and a separate request for 24hour data in parallel."; - input { - leaf from-bin-number { - type uint16 { - range "1..max"; - } - default "1"; - description - "The start bin-number of the range"; - } - leaf to-bin-number { - type uint16 { - range "1..max"; - } - default "1"; - description - "The end bin-number of the range"; - } - leaf granularity { - type org-openroadm-pm-types:pm-granularity; - default "15min"; - description - "The granularity of the retrieve, default to 15 minutes PM"; - } - } - output { - uses collect-history-pm-group; - } - } - notification historical-pm-collect-result { - description - "This Notification is sent when the pm collection is successful or failed."; - uses collect-history-pm-group; - } - container current-pm-list { - config false; - description - "List of current PMs."; - list current-pm-entry { - key "pm-resource-type pm-resource-type-extension pm-resource-instance"; - description - "List of current PM entries"; - uses current-pm-group; - } - } - container historical-pm-list { - if-feature "historical-pm-retrieval"; - config false; - description - "List of historical PM"; - list historical-pm-entry { - key "pm-resource-type pm-resource-type-extension pm-resource-instance"; - description - "List of historical PM entries"; - uses historical-pm-group; - } - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-port-types.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-port-types.yang deleted file mode 100644 index 2fed53821..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-port-types.yang +++ /dev/null @@ -1,420 +0,0 @@ -module org-openroadm-port-types { - namespace "http://org/openroadm/port/types"; - prefix org-openroadm-port-types; - - import org-openroadm-common-link-types { - prefix org-openroadm-common-link-types; - revision-date 2019-11-29; - } - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions for port types. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE."; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2019-05-31 { - description - "Version 5.1.0"; - } - revision 2019-03-29 { - description - "Version 5.0.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-09-28 { - description - "Version 4.0.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - revision 2017-12-15 { - description - "Version 2.2"; - } - revision 2017-09-29 { - description - "Version 2.1"; - } - revision 2017-07-28 { - description - "Version 2.0.1 - added revision-date to imports"; - } - revision 2017-06-26 { - description - "Version 2.0"; - } - revision 2016-10-14 { - description - "Version 1.2"; - } - - identity supported-if-capability { - description - "Base identity from which specific supported interfaces are derived"; - } - - identity if-100GE { - base supported-if-capability; - } - - identity if-OMS { - base supported-if-capability; - } - - identity if-OTS { - base supported-if-capability; - } - - identity if-OTS-OMS-MC-NMC { - base supported-if-capability; - } - - identity if-NMC { - base supported-if-capability; - } - - identity if-OCH { - base supported-if-capability; - } - - identity if-1GE { - base supported-if-capability; - } - - identity if-10GE { - base supported-if-capability; - } - - identity if-40GE { - base supported-if-capability; - } - - identity if-OCH-OTU1-ODU1 { - base supported-if-capability; - } - - identity if-OCH-OTU2-ODU2 { - base supported-if-capability; - } - - identity if-OCH-OTU2E-ODU2E { - base supported-if-capability; - } - - identity if-OCH-OTU3-ODU3 { - base supported-if-capability; - } - - identity if-OCH-OTU4-ODU4 { - base supported-if-capability; - } - - identity if-OTUCn-ODUCn { - base supported-if-capability; - } - - identity if-otsi-flexo-flexogroup { - base supported-if-capability; - } - - identity if-otsi-otsigroup { - base supported-if-capability; - } - - identity if-n-OTU4-ODU4 { - base supported-if-capability; - } - - identity if-otsi-otucn-oducn { - base supported-if-capability; - status deprecated; - } - - identity if-OTU4-ODU4 { - base supported-if-capability; - } - - identity if-OTU1-ODU1 { - base supported-if-capability; - } - - identity if-OTU2-ODU2 { - base supported-if-capability; - } - - identity if-OTU2e-ODU2e { - base supported-if-capability; - } - - identity if-OTU3-ODU3 { - base supported-if-capability; - } - - identity if-1GE-ODU0 { - base supported-if-capability; - } - - identity if-10GE-ODU2 { - base supported-if-capability; - } - - identity if-10GE-ODU2e { - base supported-if-capability; - } - - identity if-10GE-oduflexgfp { - base supported-if-capability; - } - - identity if-25GE-oduflexcbr { - base supported-if-capability; - } - - identity if-40GE-ODU3 { - base supported-if-capability; - } - - identity if-40GE-oduflexgfp { - base supported-if-capability; - } - - identity if-100GE-ODU4 { - base supported-if-capability; - } - - identity if-100GE-oduflexgfp { - base supported-if-capability; - } - - identity if-200GE-oduflexcbr { - base supported-if-capability; - } - - identity if-400GE-odufleximp { - base supported-if-capability; - } - - identity if-400GE-oduflexcbr { - base supported-if-capability; - } - - identity supported-xpdr-capability { - description - "Base identity from which specific supported xponder are derived"; - } - - identity Transponder { - base supported-xpdr-capability; - } - - identity Regen { - base supported-xpdr-capability; - } - - identity pluggable-identifiers-identity { - description - "Pluggable identifiers type"; - } - - identity SFP { - base pluggable-identifiers-identity; - } - - identity SFP-plus { - base pluggable-identifiers-identity; - } - - identity SFP28 { - base pluggable-identifiers-identity; - } - - identity SFP-DD { - base pluggable-identifiers-identity; - } - - identity DWDM-SFP { - base pluggable-identifiers-identity; - } - - identity DWDM-SFP-plus { - base pluggable-identifiers-identity; - } - - identity QSFP { - base pluggable-identifiers-identity; - } - - identity QSFP-plus { - base pluggable-identifiers-identity; - } - - identity QSFP28 { - base pluggable-identifiers-identity; - } - - identity QSFP28-DD { - base pluggable-identifiers-identity; - } - - identity QSFP-DD { - base pluggable-identifiers-identity; - } - - identity micro-QSFP { - base pluggable-identifiers-identity; - } - - identity OSFP { - base pluggable-identifiers-identity; - } - - identity CFP { - base pluggable-identifiers-identity; - } - - identity CFP2 { - base pluggable-identifiers-identity; - } - - identity CFP4 { - base pluggable-identifiers-identity; - } - - identity CFP8 { - base pluggable-identifiers-identity; - } - - identity CFP2-ACO { - base pluggable-identifiers-identity; - } - - identity CFP2-DCO { - base pluggable-identifiers-identity; - } - - identity XFP { - base pluggable-identifiers-identity; - } - - identity SFP56 { - base pluggable-identifiers-identity; - } - - identity QSFP56 { - base pluggable-identifiers-identity; - } - - identity QSFP56-DD { - base pluggable-identifiers-identity; - } - - identity SFP-other { - base pluggable-identifiers-identity; - } - - identity SFP-unspecified { - base pluggable-identifiers-identity; - } - - typedef port-wavelength-types { - type enumeration { - enum wavelength { - value 1; - description - "Port on a transponder or ROADM SRG add drop"; - } - enum multi-wavelength { - value 2; - description - "External port connecting to other roadm."; - } - } - description - "Port types."; - } - - typedef port-module-types { - type enumeration { - enum 100GBASE-LR4 { - value 1; - } - enum CWDM-4 { - value 2; - } - } - description - "Pluggable modue types."; - } - - grouping common-port { - leaf port-power-capability-min-rx { - type org-openroadm-common-link-types:power-dBm; - config false; - description - "Based on port capabilities, the minimum power in the system spec for this port to - provide optimum function in rx direction"; - } - leaf port-power-capability-min-tx { - type org-openroadm-common-link-types:power-dBm; - config false; - description - "Based on port capabilities, the minimum power in the system spec for this port to - provide optimum function in tx direction."; - } - leaf port-power-capability-max-rx { - type org-openroadm-common-link-types:power-dBm; - config false; - description - "Based on port capabilities, the maximum power in the system spec for this port to - provide optimum function in rx direction."; - } - leaf port-power-capability-max-tx { - type org-openroadm-common-link-types:power-dBm; - config false; - description - "Based on port capabilities, the maximum power in the system spec for this port to - provide optimum function in tx direction."; - } - } - - grouping roadm-port { - uses common-port; - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-probable-cause.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-probable-cause.yang deleted file mode 100644 index 4b752c8e5..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-probable-cause.yang +++ /dev/null @@ -1,843 +0,0 @@ -module org-openroadm-probable-cause { - namespace "http://org/openroadm/probableCause"; - prefix org-openroadm-probable-cause; - - import org-openroadm-common-alarm-pm-types { - prefix org-openroadm-common-alarm-pm-types; - revision-date 2019-11-29; - } - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of Probable Causes. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE"; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2019-09-27 { - description - "Version 6.0.0"; - } - revision 2019-05-31 { - description - "Version 5.1.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-09-28 { - description - "Version 4.0.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - revision 2017-12-15 { - description - "Version 2.2"; - } - revision 2017-09-29 { - description - "Version 2.1"; - } - revision 2017-07-28 { - description - "Version 2.0.1 - added revision-date to imports"; - } - revision 2017-06-26 { - description - "Version 2.0"; - } - revision 2016-10-14 { - description - "Version 1.2"; - } - - typedef probable-cause-enum { - type enumeration { - enum vendorExtension { - value 1; - description - "vendorExtension"; - } - enum openConnectionIndication { - value 2; - description - "Open connection indication (OCI)"; - reference "G.798"; - } - enum alarmIndicationSignal { - value 3; - description - "Alarm indication signal"; - reference "G.798"; - } - enum lossOfSignal { - value 4; - description - "Loss of Signal"; - } - enum opticalLineFail { - value 5; - description - "Optical Line Fail"; - } - enum opticalPowerDegraded { - value 6; - description - "Optical Power Degraded"; - } - enum automaticLaserShutdown { - value 7; - description - "Automatic Laser Shutdown"; - } - enum serverSignalFail { - value 8; - description - "Server Signal Fail (SSF)"; - reference "G.798"; - } - enum lockedDefect { - value 10; - description - "Locked defect (LCK)"; - reference "G.798"; - } - enum trailTraceIdentifierMismatch { - value 11; - description - "Trail trace Identifier Mismatch (TIM)"; - reference "G.798"; - } - enum degradedDefect { - value 12; - description - "Degraded defect (DEG)"; - reference "G.798"; - } - enum backwardsDefectIndication { - value 13; - description - "Backward Defect Indication (BDI)"; - reference "G.798"; - } - enum otsSpanlossPowerOutOfSpecificationHigh { - value 14; - } - enum automaticShutoffDisabled { - value 15; - } - enum portLossOfLight { - value 17; - } - enum reflectionTooHigh { - value 18; - } - enum payloadMissingIndication { - value 22; - description - "Will be applicable to ROADM when OSC signaling supported in future (G.709 2016-06 Figure 15-1A, 1B)"; - } - enum forwardDefectIndication { - value 23; - description - "Will be applicable to ROADM when OSC signaling supported in future (G.709 2016-06 Figure 15-1A, 1B)"; - } - enum oscPowerOutOfSpecificationHigh { - value 24; - } - enum oscPowerOutOfSpecificationLow { - value 25; - } - enum powerOutOfSpecificationHigh { - value 26; - } - enum lossOfSynchronization { - value 27; - } - enum linkDown { - value 28; - } - enum equipmentFault { - value 29; - } - enum equipmentRemoved { - value 30; - } - enum equipmentMismatch { - value 31; - } - enum equipmentWarmup { - value 32; - } - enum equipmentLedOn { - value 33; - } - enum equipmentInterConnectFailure { - value 34; - } - enum equipmentMiscabledConnection { - value 35; - } - enum softwareVersionMismatch { - value 36; - } - enum softwareStageInProgress { - value 37; - } - enum databaseCorruption { - value 38; - } - enum databaseVersionMismatch { - value 44; - } - enum firmwareVersionMismatch { - value 46; - } - enum incompatibleFirmware { - value 49; - } - enum firmwareDownloadOrActivationFailure { - value 50; - } - enum firmwareInitInProgress { - value 51; - } - enum softwareReset { - value 52; - } - enum fanCoolingFail { - value 53; - } - enum administrativeDown { - value 54; - } - enum lampTest { - value 55; - } - enum powerProblemA { - value 56; - } - enum powerProblemB { - value 57; - } - enum shelfProvisioningMode { - value 58; - } - enum sysNameChanged { - value 59; - } - enum sysNtpNotSynchronized { - value 60; - } - enum lossOfFrame { - value 63; - } - enum lossOfMultiframe { - value 64; - } - enum backwardIncomingAlignmentError { - value 65; - } - enum incomingAlignmentError { - value 66; - } - enum payloadMismatch { - value 67; - } - enum clientSignalFailDefect { - value 68; - } - enum highBER { - value 123; - } - enum localFault { - value 124; - } - enum remoteFault { - value 125; - } - enum lossOfAlignment { - value 126; - } - enum lossOfFECAlignment { - value 127; - } - enum facilityLoopbackActive { - value 128; - } - enum facilityLoopback2Active { - value 129; - } - enum terminalLoopbackActive { - value 130; - } - enum facilityTestsignalActive { - value 131; - } - enum terminalTestsignalActive { - value 132; - } - enum certificateNotInstalled { - value 134; - } - enum lockoutOfProtection { - value 135; - } - enum forcedSwitchAwayFromWorking { - value 136; - } - enum forcedSwitchAwayFromProtect { - value 137; - } - enum automaticSwitchAwayFromWorkingDueToSF { - value 138; - } - enum automaticSwitchAwayFromProtectDueToSF { - value 139; - } - enum automaticSwitchDueToWTR { - value 140; - } - enum manualSwitchAwayFromWork { - value 141; - } - enum manualSwitchAwayFromProtect { - value 142; - } - enum automaticPowerReduction { - value 143; - } - enum lossOfSignalOSC { - value 144; - } - enum softwareValidateInProgress { - value 145; - } - enum databaseRollbackTimerInProgress { - value 146; - } - enum otdrScanInProgress { - value 147; - } - enum lldpFail { - value 148; - } - enum omsPowerOutOfSpecificationHigh { - value 149; - } - enum omsPowerOutOfSpecificationLow { - value 150; - } - enum automaticSwitchAwayFromWorkingDueToSD { - value 151; - } - enum automaticSwitchAwayFromProtectDueToSD { - value 152; - } - enum backwardIncomingAlignmentErrorTCM1-up { - value 153; - } - enum backwardIncomingAlignmentErrorTCM2-up { - value 154; - } - enum backwardIncomingAlignmentErrorTCM3-up { - value 155; - } - enum backwardIncomingAlignmentErrorTCM4-up { - value 156; - } - enum backwardIncomingAlignmentErrorTCM5-up { - value 157; - } - enum backwardIncomingAlignmentErrorTCM6-up { - value 158; - } - enum incomingAlignmentErrorTCM1-up { - value 159; - } - enum incomingAlignmentErrorTCM2-up { - value 160; - } - enum incomingAlignmentErrorTCM3-up { - value 161; - } - enum incomingAlignmentErrorTCM4-up { - value 162; - } - enum incomingAlignmentErrorTCM5-up { - value 163; - } - enum incomingAlignmentErrorTCM6-up { - value 164; - } - enum backwardsDefectIndicationTCM1-up { - value 165; - } - enum backwardsDefectIndicationTCM2-up { - value 166; - } - enum backwardsDefectIndicationTCM3-up { - value 167; - } - enum backwardsDefectIndicationTCM4-up { - value 168; - } - enum backwardsDefectIndicationTCM5-up { - value 169; - } - enum backwardsDefectIndicationTCM6-up { - value 170; - } - enum degradedDefectTCM1-up { - value 171; - } - enum degradedDefectTCM2-up { - value 172; - } - enum degradedDefectTCM3-up { - value 173; - } - enum degradedDefectTCM4-up { - value 174; - } - enum degradedDefectTCM5-up { - value 175; - } - enum degradedDefectTCM6-up { - value 176; - } - enum trailTraceIdentifierMisMatchTCM1-up { - value 177; - } - enum trailTraceIdentifierMisMatchTCM2-up { - value 178; - } - enum trailTraceIdentifierMisMatchTCM3-up { - value 179; - } - enum trailTraceIdentifierMisMatchTCM4-up { - value 180; - } - enum trailTraceIdentifierMisMatchTCM5-up { - value 181; - } - enum trailTraceIdentifierMisMatchTCM6-up { - value 182; - } - enum alarmIndicationSignalTCM1-up { - value 183; - } - enum alarmIndicationSignalTCM2-up { - value 184; - } - enum alarmIndicationSignalTCM3-up { - value 185; - } - enum alarmIndicationSignalTCM4-up { - value 186; - } - enum alarmIndicationSignalTCM5-up { - value 187; - } - enum alarmIndicationSignalTCM6-up { - value 188; - } - enum openConnectionIndicationTCM1-up { - value 189; - } - enum openConnectionIndicationTCM2-up { - value 190; - } - enum openConnectionIndicationTCM3-up { - value 191; - } - enum openConnectionIndicationTCM4-up { - value 192; - } - enum openConnectionIndicationTCM5-up { - value 193; - } - enum openConnectionIndicationTCM6-up { - value 194; - } - enum lockedDefectTCM1-up { - value 195; - } - enum lockedDefectTCM2-up { - value 196; - } - enum lockedDefectTCM3-up { - value 197; - } - enum lockedDefectTCM4-up { - value 198; - } - enum lockedDefectTCM5-up { - value 199; - } - enum lockedDefectTCM6-up { - value 200; - } - enum lossofTandemConnectionTCM1-up { - value 201; - } - enum lossofTandemConnectionTCM2-up { - value 202; - } - enum lossofTandemConnectionTCM3-up { - value 203; - } - enum lossofTandemConnectionTCM4-up { - value 204; - } - enum lossofTandemConnectionTCM5-up { - value 205; - } - enum lossofTandemConnectionTCM6-up { - value 206; - } - enum backwardIncomingAlignmentErrorTCM1-down { - value 207; - } - enum backwardIncomingAlignmentErrorTCM2-down { - value 208; - } - enum backwardIncomingAlignmentErrorTCM3-down { - value 209; - } - enum backwardIncomingAlignmentErrorTCM4-down { - value 210; - } - enum backwardIncomingAlignmentErrorTCM5-down { - value 211; - } - enum backwardIncomingAlignmentErrorTCM6-down { - value 212; - } - enum incomingAlignmentErrorTCM1-down { - value 213; - } - enum incomingAlignmentErrorTCM2-down { - value 214; - } - enum incomingAlignmentErrorTCM3-down { - value 215; - } - enum incomingAlignmentErrorTCM4-down { - value 216; - } - enum incomingAlignmentErrorTCM5-down { - value 217; - } - enum incomingAlignmentErrorTCM6-down { - value 218; - } - enum backwardsDefectIndicationTCM1-down { - value 219; - } - enum backwardsDefectIndicationTCM2-down { - value 220; - } - enum backwardsDefectIndicationTCM3-down { - value 221; - } - enum backwardsDefectIndicationTCM4-down { - value 222; - } - enum backwardsDefectIndicationTCM5-down { - value 223; - } - enum backwardsDefectIndicationTCM6-down { - value 224; - } - enum degradedDefectTCM1-down { - value 225; - } - enum degradedDefectTCM2-down { - value 226; - } - enum degradedDefectTCM3-down { - value 227; - } - enum degradedDefectTCM4-down { - value 228; - } - enum degradedDefectTCM5-down { - value 229; - } - enum degradedDefectTCM6-down { - value 230; - } - enum trailTraceIdentifierMisMatchTCM1-down { - value 231; - } - enum trailTraceIdentifierMisMatchTCM2-down { - value 232; - } - enum trailTraceIdentifierMisMatchTCM3-down { - value 233; - } - enum trailTraceIdentifierMisMatchTCM4-down { - value 234; - } - enum trailTraceIdentifierMisMatchTCM5-down { - value 235; - } - enum trailTraceIdentifierMisMatchTCM6-down { - value 236; - } - enum alarmIndicationSignalTCM1-down { - value 237; - } - enum alarmIndicationSignalTCM2-down { - value 238; - } - enum alarmIndicationSignalTCM3-down { - value 239; - } - enum alarmIndicationSignalTCM4-down { - value 240; - } - enum alarmIndicationSignalTCM5-down { - value 241; - } - enum alarmIndicationSignalTCM6-down { - value 242; - } - enum openConnectionIndicationTCM1-down { - value 243; - } - enum openConnectionIndicationTCM2-down { - value 244; - } - enum openConnectionIndicationTCM3-down { - value 245; - } - enum openConnectionIndicationTCM4-down { - value 246; - } - enum openConnectionIndicationTCM5-down { - value 247; - } - enum openConnectionIndicationTCM6-down { - value 248; - } - enum lockedDefectTCM1-down { - value 249; - } - enum lockedDefectTCM2-down { - value 250; - } - enum lockedDefectTCM3-down { - value 251; - } - enum lockedDefectTCM4-down { - value 252; - } - enum lockedDefectTCM5-down { - value 253; - } - enum lockedDefectTCM6-down { - value 254; - } - enum lossofTandemConnectionTCM1-down { - value 255; - } - enum lossofTandemConnectionTCM2-down { - value 256; - } - enum lossofTandemConnectionTCM3-down { - value 257; - } - enum lossofTandemConnectionTCM4-down { - value 258; - } - enum lossofTandemConnectionTCM5-down { - value 259; - } - enum lossofTandemConnectionTCM6-down { - value 260; - } - enum multiplexStructureIdentifierMismatch { - value 261; - description - "G798 : 6.2.9 (dMSIM)"; - } - enum lossOfOmfIndication { - value 262; - description - "G798 : 14.3.10.2 Figure 14-73 (dLOOMFI)"; - } - enum lossOfFrameAndLossOfMultiframe { - value 263; - description - "G798 : 6.2.5.3 (dLOFLOM)"; - } - enum lossOfDatabaseRedundancy { - value 264; - description - "loss of database redundancy"; - } - enum databaseLocked { - value 265; - description - "Database locked"; - } - enum createTechInfoInProgress { - value 266; - description - "create-tech-info in progress"; - } - enum circuitPackActivateFailed { - value 267; - description - "circuit-pack activation failed"; - } - enum softwareSubsystemFailed { - value 268; - description - "Software subsystem failed"; - } - enum diskFull { - value 269; - description - "Disk full"; - } - enum lossOfSignalPayload { - value 270; - description - "Loss Of Signal Payload"; - reference "G.798 6.2.1.2 dLOS-P, 16.8.2 OTSi/FlexO_A_Sk"; - } - enum lossOfLaneAlignment { - value 271; - description - "Loss Of Lane Alignment"; - reference - "G.798 15.3.1.2 FlexO-n/OTUCn_A_Sk that dLOL if the alignment process is in OLA state; - 16.8.2 OTSi/FlexO_A_Sk that dLOL based on the FEC alignment state diagram"; - } - enum groupIdMismatch { - value 272; - description - "Group Id Mismatch"; - reference "G.798 dGIDM in Annex B.1.1.2.1; G.798 15.3.1.2 FlexO-n/OTUCn_A_Sk"; - } - enum phyMapMismatch { - value 273; - description - "PHY Map Mismatch"; - reference "G.798 dPMM in Annex B.1.1.2.2; G.798 15.3.1.2 FlexO-n/OTUCn_A_Sk"; - } - enum powerOutOfSpecificationLow { - value 274; - } - enum gfpLossOfFrameDelineation { - value 275; - description - "GFP loss of frame delineation (dLFD G.806:6.2.5.2) is raised when the frame delineation process (clause 6.3.1 of [ITU-T G.7041]) is not in the 'SYNC' state"; - } - enum cmfLossOfSignal { - value 276; - description - "GFP client signal fail (dCSF G.806:6.2.6.4.1) is raised when a GFP frame with correct tHEC, with aPTI = '100' and a valid UPI code 0x01(G.7041: Table 6-4) is received"; - } - enum cmfLossOfSync { - value 277; - description - "GFP client signal fail (dCSF G.806:6.2.6.4.1) is raised when a GFP frame with correct tHEC, with aPTI = '100' and a valid UPI code 0x02(G.7041: Table 6-4) is received"; - } - enum cmfForwardDefectIndication { - value 278; - description - "GFP client signal fail (dCSF G.806:6.2.6.4.1) is raised when a GFP frame with correct tHEC, with aPTI = '100' and a valid UPI code 0x04(G.7041: Table 6-4) is received"; - } - enum cmfReverseDefectIndication { - value 279; - description - "GFP client signal fail (dCSF G.806:6.2.6.4.1) is raised when a GFP frame with correct tHEC, with aPTI = '100' and a valid UPI code 0x05(G.7041: Table 6-4) is received"; - } - } - description - "probable cause group"; - } - - grouping probable-cause { - leaf cause { - type probable-cause-enum; - mandatory true; - } - leaf extension { - type string; - mandatory false; - } - leaf direction { - type org-openroadm-common-alarm-pm-types:direction; - mandatory true; - description - "Direction indication of the alarm."; - } - leaf location { - type org-openroadm-common-alarm-pm-types:location; - mandatory true; - description - "location indication of the alarm."; - } - leaf type { - type enumeration { - enum communication { - value 1; - } - enum qualityOfService { - value 2; - } - enum processingError { - value 3; - } - enum equipment { - value 4; - } - enum environmental { - value 5; - } - } - mandatory false; - description - "Type of alarm. Based on X.733 event Type."; - } - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-resource-types.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-resource-types.yang deleted file mode 100644 index 1a5bd66dd..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-resource-types.yang +++ /dev/null @@ -1,374 +0,0 @@ -module org-openroadm-resource-types { - namespace "http://org/openroadm/resource/types"; - prefix org-openroadm-resource-types; - - import org-openroadm-common-node-types { - prefix org-openroadm-common-node-types; - revision-date 2019-11-29; - } - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of common resource types. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE"; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-09-28 { - description - "Version 4.0.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - revision 2017-12-15 { - description - "Version 2.2"; - } - revision 2017-09-29 { - description - "Version 2.1"; - } - revision 2017-06-26 { - description - "Version 2.0"; - } - revision 2016-10-14 { - description - "Version 1.2"; - } - - typedef resource-type-enum { - type enumeration { - enum other { - value 1; - description - "Resource of type not found in list."; - } - enum device { - value 2; - description - "device - ROAMD, Xponder, etc"; - } - enum degree { - value 3; - description - "degree"; - } - enum shared-risk-group { - value 4; - description - "shared-risk-group"; - } - enum connection { - value 5; - description - "connection - this is used by roadm-connection and odu-connection - since they are mutually exclusive in the model"; - } - enum connection-map { - value 6; - description - "connection-map"; - } - enum port { - value 7; - description - "port"; - } - enum circuit-pack { - value 8; - description - "circuit pack"; - } - enum internal-link { - value 9; - description - "internal-link"; - } - enum physical-link { - value 10; - description - "physical-link"; - } - enum interface { - value 11; - description - "interface"; - } - enum shelf { - value 12; - description - "shelf"; - } - enum service { - value 13; - description - "service"; - } - enum odu-sncp-pg { - value 14; - description - "odu-sncp-pg"; - } - enum line-amplifier { - value 15; - description - "line-amplifier"; - } - enum xponder { - value 16; - description - "xponder"; - } - enum versioned-service { - value 17; - description - "versioned-service"; - } - enum temp-service { - value 18; - description - "temp-service"; - } - } - } - - typedef resource-notification-type { - type enumeration { - enum resourceCreation { - value 1; - description - "A new instance of a resource has been created."; - } - enum resourceModification { - value 2; - description - "An existing instance of a resource has been modified. This shall be triggered by changes in configuration, state, status etc. - It shall not be triggered by changes in performance measurements, power and temperature readings or any other data that is highly volatile. "; - } - enum resourceDeletion { - value 3; - description - "An existing instance of a resource has been removed."; - } - } - description - "Type of notification about a resource"; - } - - grouping resource-type { - leaf type { - type resource-type-enum; - mandatory true; - } - leaf extension { - type string; - mandatory false; - } - } - - grouping device-id { - description - "Device identifier. Unique within the Controller."; - leaf node-id { - type org-openroadm-common-node-types:node-id-type; - description - "Node Id is a globally unique identifier for a device. - Same as leafref value in model, if applicable."; - } - } - - grouping circuit-pack-name { - leaf circuit-pack-name { - type string; - mandatory true; - description - "Circuit-Pack identifier. Unique within the context of a device. - Same as leafref value in model, if applicable."; - } - } - - grouping port-name { - uses circuit-pack-name; - leaf port-name { - type string; - description - "Port identifier. Unique within the context of a circuit-pack. - Same as leafref value in model, if applicable."; - } - } - - grouping physical-link-name { - leaf physical-link-name { - type string; - mandatory true; - description - "Physical Link identifier. Unique within the context of a device. - Same as leafref value in model, if applicable."; - } - } - - grouping internal-link-name { - leaf internal-link-name { - type string; - mandatory true; - description - "Internal Link identifier. Unique within the context of a device. - Same as leafref value in model, if applicable."; - } - } - - grouping connection-name { - leaf connection-name { - type string; - description - "Connection name. Unique within the context of a device. - Same as leafref value in model, if applicable."; - } - } - - grouping degree-number { - leaf degree-number { - type uint16; - description - "Degree identifier. Unique within the context of a device. - Same as leafref value in model, if applicable."; - } - } - - grouping srg-number { - leaf srg-number { - type uint16; - description - "Shared Risk Group identifier. Unique within the context of a device. - Same as leafref value in model, if applicable."; - } - } - - grouping shelf-name { - leaf shelf-name { - type string; - mandatory true; - description - "Shelf-id identifier. Unique within the context of a device. - Same as leafref value in model, if applicable."; - } - } - - grouping service-name { - leaf service-name { - type string; - mandatory true; - description - "Service identifier. Unique within the context of a network. - Same as leafref value in model, if applicable."; - } - } - - grouping versioned-service-name { - leaf versioned-service-name { - type string; - mandatory true; - description - "Service identifier. Unique within the context of a network. - Same as leafref value in model, if applicable."; - } - leaf version-number { - type uint64; - mandatory true; - description - "version-number of the service"; - } - } - - grouping temp-service-name { - leaf common-id { - type string; - mandatory true; - description - "Service identifier. Unique within the context of a network. - Same as leafref value in model, if applicable."; - } - } - - grouping interface-name { - leaf interface-name { - type string; - mandatory true; - description - "Interface identifier."; - } - } - - grouping other-resource-id { - leaf other-resource-id { - type string; - mandatory true; - description - "resource-id for other."; - } - } - - grouping odu-sncp-pg-name { - leaf odu-sncp-pg-name { - type string; - mandatory true; - description - "name of the odu-snc-pg"; - } - } - - grouping amp-number { - leaf amp-number { - type uint8; - mandatory true; - description - "number of the line-amplifier"; - } - } - - grouping xpdr-number { - leaf xpdr-number { - type uint16; - mandatory true; - description - "number of the xponder"; - } - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-resource.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-resource.yang deleted file mode 100644 index 5d102398e..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-resource.yang +++ /dev/null @@ -1,358 +0,0 @@ -module org-openroadm-resource { - namespace "http://org/openroadm/resource"; - prefix org-openroadm-resource; - - import org-openroadm-interfaces { - prefix org-openroadm-interfaces; - revision-date 2019-11-29; - } - import org-openroadm-otn-common-types { - prefix org-openroadm-otn-common-types; - revision-date 2019-11-29; - } - import org-openroadm-common-optical-channel-types { - prefix org-openroadm-common-optical-channel-types; - revision-date 2019-11-29; - } - import org-openroadm-resource-types { - prefix org-openroadm-resource-types; - revision-date 2019-11-29; - } - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of resources. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE"; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2019-09-27 { - description - "Version 6.0.0"; - } - revision 2019-05-31 { - description - "Version 5.1.0"; - } - revision 2019-03-29 { - description - "Version 5.0.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-09-28 { - description - "Version 4.0.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - revision 2017-12-15 { - description - "Version 2.2"; - } - revision 2017-09-29 { - description - "Version 2.1"; - } - revision 2017-07-28 { - description - "Version 2.0.1 - added revision-date to imports"; - } - revision 2017-06-26 { - description - "Version 2.0"; - } - revision 2016-10-14 { - description - "Version 1.2"; - } - - grouping eth-attributes { - leaf speed { - type uint32; - description - "Set speed of the interface, unit mbps. - This is for ETH facility. "; - } - } - - grouping mc-ttp-attributes { - description - "Media channel termination point. Models bandwidth allocation in physical media. Network media channels may be provisioned in the spectrum characterized by the frequency limits."; - leaf min-freq { - type org-openroadm-common-optical-channel-types:frequency-THz; - config true; - description - "Minimum Frequency in THz. Granularity is hardware dependent, based on pixel resolution. eg. ITU 12.5GHz frequency slots. Range covers C+L"; - } - leaf max-freq { - type org-openroadm-common-optical-channel-types:frequency-THz; - config true; - description - "Maximum Frequency in THz. Granularity is hardware dependent, based on pixel resolution. eg. ITU 12.5GHz frequency slots. Range covers C+L"; - } - } - - grouping nmc-ctp-attributes { - description - "Network Media Channel attributes"; - leaf frequency { - type org-openroadm-common-optical-channel-types:frequency-THz; - config true; - description - "Center Frequency in THz. This is not constrained by mc-capabilities. It must fit (when combined with width) inside any containing media channel."; - } - leaf width { - type org-openroadm-common-optical-channel-types:frequency-GHz; - config true; - description - "Frequency width in GHz. This is not constrained by mc-capabilities. It must fit (when combined with frequency) inside any containing media channel."; - } - } - - grouping och-attributes { - description - "Optical Channel attributes"; - leaf rate { - type identityref { - base org-openroadm-common-optical-channel-types:och-rate-identity; - } - description - "rate"; - } - leaf frequency { - type org-openroadm-common-optical-channel-types:frequency-THz; - description - "Center Frequency in THz."; - } - leaf width { - type org-openroadm-common-optical-channel-types:frequency-GHz; - config false; - description - "Frequency width in GHz."; - } - leaf modulation-format { - type org-openroadm-common-optical-channel-types:modulation-format; - description - "Modulation format"; - } - } - - grouping odu-attributes { - description - "ODU attributes"; - leaf rate { - type identityref { - base org-openroadm-otn-common-types:odu-rate-identity; - } - description - "rate identity of the ODU. 'identityref' is used - to allow to extend for future higher rates"; - } - container parent-odu-allocation { - description - "parent odu allocation"; - leaf trib-port-number { - type uint16 { - range "1 .. 80"; - } - description - "Assigned tributary port number in parent OPU"; - } - leaf-list trib-slots { - type uint16 { - range "1 .. 80"; - } - min-elements 1; - max-elements 80; - description - "Assigned trib slots occupied in parent OPU MSI"; - } - } - } - - grouping otu-attributes { - description - "OTU attributes"; - leaf rate { - type identityref { - base org-openroadm-otn-common-types:otu-rate-identity; - } - description - "rate identity of the OTU. 'identityref' is used - to allow to extend for future higher rates"; - } - } - - grouping resource-reporting { - leaf type { - type identityref { - base org-openroadm-interfaces:interface-type; - } - mandatory true; - description - "The type of the interface."; - } - container ethernet { - when "../type = 'ethernetCsmacd'"; - description - "Ethernet Interfaces"; - uses eth-attributes; - } - container mc-ttp { - when "../type = 'mediaChannelTrailTerminationPoint'"; - description - "Media Channel Trail Termination Point (MC-TTP)"; - uses mc-ttp-attributes; - } - container nmc-ctp { - when "../type = 'networkMediaChannelConnectionTerminationPoint'"; - description - "Network Media Channel Connection Termination Point (NMC-CTP)"; - uses nmc-ctp-attributes; - } - container och { - when "../type = 'opticalChannel'"; - description - "Optical Channel (OCh): - Models the optical channel interfaces for an Optical White Box."; - uses och-attributes; - } - container odu { - when "../type = 'otnOdu'"; - presence "Attribute Nodes for Optical Data Unit (ODU)"; - description - "Optical Channel Data Unit (ODU)"; - uses odu-attributes; - } - container otu { - when "../type = 'otnOtu'"; - description - "Optical Channel Transport Unit (OTU)"; - uses otu-attributes; - } - } - - grouping resource { - description - "This resource identifier is intended to provide a generic identifier - for any resource that can be used without specific knowledge of - the resource."; - container device { - description - "Device of the resource, used only when the system using this - model report on more than one device. "; - uses org-openroadm-resource-types:device-id; - } - container resource { - choice resource { - case circuit-pack { - uses org-openroadm-resource-types:circuit-pack-name; - } - case port { - container port { - uses org-openroadm-resource-types:port-name; - } - } - case connection { - uses org-openroadm-resource-types:connection-name { - refine "connection-name" { - mandatory true; - } - } - } - case physical-link { - uses org-openroadm-resource-types:physical-link-name; - } - case internal-link { - uses org-openroadm-resource-types:internal-link-name; - } - case shelf { - uses org-openroadm-resource-types:shelf-name; - } - case srg { - uses org-openroadm-resource-types:srg-number { - refine "srg-number" { - mandatory true; - } - } - } - case degree { - uses org-openroadm-resource-types:degree-number { - refine "degree-number" { - mandatory true; - } - } - } - case service { - uses org-openroadm-resource-types:service-name; - } - case interface { - uses org-openroadm-resource-types:interface-name; - } - case odu-sncp-pg { - uses org-openroadm-resource-types:odu-sncp-pg-name; - } - case other { - uses org-openroadm-resource-types:other-resource-id; - } - case device { - uses org-openroadm-resource-types:device-id { - refine "node-id" { - mandatory true; - } - } - } - case line-amplifier { - uses org-openroadm-resource-types:amp-number; - } - case xponder { - uses org-openroadm-resource-types:xpdr-number; - } - case versioned-service { - uses org-openroadm-resource-types:versioned-service-name; - } - case temp-service { - uses org-openroadm-resource-types:temp-service-name; - } - } - } - container resourceType { - uses org-openroadm-resource-types:resource-type; - } - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-swdl.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-swdl.yang deleted file mode 100644 index 79064b4d3..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-swdl.yang +++ /dev/null @@ -1,203 +0,0 @@ -module org-openroadm-swdl { - namespace "http://org/openroadm/de/swdl"; - prefix org-openroadm-swdl; - - import ietf-yang-types { - prefix yang; - revision-date 2013-07-15; - } - import org-openroadm-common-types { - prefix org-openroadm-common-types; - revision-date 2019-11-29; - } - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "Yang definitions for System Management. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE."; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2019-09-27 { - description - "Version 6.0.0"; - } - revision 2019-05-31 { - description - "Version 5.1.0"; - } - revision 2019-03-29 { - description - "Version 5.0.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-09-28 { - description - "Version 4.0.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - revision 2017-12-15 { - description - "Version 2.2"; - } - revision 2017-09-29 { - description - "Version 2.1"; - } - revision 2017-07-28 { - description - "Version 2.0.1 - added revision-date to imports"; - } - revision 2017-06-26 { - description - "Version 2.0"; - } - revision 2016-10-14 { - description - "Version 1.2"; - } - - grouping sw-bank { - description - "software bank group"; - leaf sw-version { - type string; - description - "Gissue of the SW in this bank"; - } - leaf sw-validation-timer { - type string { - pattern '(([0-1][0-9]|2[0-3])-([0-5][0-9])-([0-5][0-9]))'; - } - description - "value of validation timer in hh-mm-ss"; - } - leaf activation-date-time { - type yang:date-and-time; - description - "activation date and time: The date load was activated"; - } - } - - grouping database-info-group { - description - "database info group"; - leaf last-restored-time { - type yang:date-and-time; - description - "last restored time for the database, or the time that the database was created, whichever is later"; - } - leaf rollback-timer { - type string { - pattern '(([0-1][0-9]|2[0-3])-([0-5][0-9])-([0-5][0-9]))'; - } - description - "value of rollback timer in hh-mm-ss"; - } - leaf activation-date-time { - type yang:date-and-time; - description - "activation date and time: The date load was activated"; - } - } - - rpc sw-stage { - description - "SW stage - copies the SW from repo to staging bank"; - input { - leaf filename { - type string { - length "10..255"; - } - description - "file name which has the load"; - } - } - output { - uses org-openroadm-common-types:rpc-response-status; - } - } - rpc sw-activate { - description - "Activate new load"; - input { - leaf version { - type string; - description - " software version of the new load which is being activated"; - } - leaf validationTimer { - type string; - description - "validation timer hh-mm-ss"; - } - } - output { - uses org-openroadm-common-types:rpc-response-status; - } - } - rpc cancel-validation-timer { - description - "Cancel validation timer which user provisioned as part of activate command"; - input { - leaf accept { - type boolean; - default "true"; - description - " TRUE means validation timer is cancelled and new load is accepted"; - } - } - output { - uses org-openroadm-common-types:rpc-response-status; - } - } - notification sw-stage-notification { - description - "notification for sw-stage."; - uses org-openroadm-common-types:rpc-response-status; - } - notification sw-activate-notification { - description - "notification for sw-activate events."; - leaf sw-active-notification-type { - type org-openroadm-common-types:activate-notification-type; - } - uses org-openroadm-common-types:rpc-response-status; - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-switching-pool-types.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-switching-pool-types.yang deleted file mode 100644 index a698a3ffd..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-switching-pool-types.yang +++ /dev/null @@ -1,63 +0,0 @@ -module org-openroadm-switching-pool-types { - namespace "http://org/openroadm/switching-pool-types"; - prefix org-openroadm-switching-pool-types; - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of common types. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE"; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2017-12-15 { - description - "Version 2.2"; - } - - typedef switching-pool-types { - type enumeration { - enum non-blocking { - value 1; - description - "Single non-blocking element"; - } - enum blocking { - value 2; - description - "Multiple connected non-blocking lists"; - } - } - } -} diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-user-mgmt.yang b/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-user-mgmt.yang deleted file mode 100644 index 846250f2a..000000000 --- a/sdnr/wt/devicemanager-openroadm/provider/src/main/yang/org-openroadm-user-mgmt.yang +++ /dev/null @@ -1,161 +0,0 @@ -module org-openroadm-user-mgmt { - namespace "http://org/openroadm/user-mgmt"; - prefix org-openroadm-user-mgmt; - - organization - "Open ROADM MSA"; - contact - "OpenROADM.org"; - description - "YANG definitions of user managements. - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE"; - - revision 2019-11-29 { - description - "Version 6.1.0"; - } - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2017-12-15 { - description - "Version 2.2"; - } - revision 2017-09-29 { - description - "Version 2.1"; - } - revision 2017-06-26 { - description - "Version 2.0"; - } - revision 2016-10-14 { - description - "Version 1.2"; - } - - typedef username-type { - type string { - length "3..32"; - pattern '[a-z][a-z0-9]{2,31}' { - error-message - "A username must begin with a lowercase letter, The remainder - of the string may contain lowercase letters, or numbers 0 through 9."; - } - } - description - "The user name string identifying this entry."; - } - - typedef password-type { - type string { - length "8..128"; - pattern '[a-zA-Z0-9!$%\^()\[\]_\-~{}.+]*' { - error-message "Password content does not meet the requirements"; - } - } - description - "The password for this entry. This shouldn't be in clear text - The Password must contain at least 2 characters from - each of the following groups: - a) Lower case alphabetic (a-z) - b) Upper case alphabetic (A-Z) - c) Numeric 0-9 - d) Special characters Allowed !$%^()[]_-~{}.+ - Password must not contain Username."; - } - - grouping user-profile { - list user { - key "name"; - description - "The list of local users configured on this device."; - leaf name { - type username-type; - description - "The user name string identifying this entry."; - } - leaf password { - type password-type; - description - "The password for this entry."; - } - leaf group { - type enumeration { - enum sudo; - } - description - "The group to which the user is associated to."; - } - } - } - - rpc chg-password { - input { - leaf currentPassword { - type password-type; - mandatory true; - description - "provide the current password"; - } - leaf newPassword { - type password-type; - mandatory true; - description - "provide a new password"; - } - leaf newPasswordConfirm { - type password-type; - mandatory true; - description - "re-enter the new password "; - } - } - output { - leaf status { - type enumeration { - enum Successful { - value 1; - } - enum Failed { - value 2; - } - } - mandatory true; - description - "Successful or Failed"; - } - leaf status-message { - type string; - description - "Gives a more detailed reason for success / failure"; - } - } - } -} -- cgit 1.2.3-korg