aboutsummaryrefslogtreecommitdiffstats
path: root/sdnr/wt/devicemanager-oran/provider/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/devicemanager-oran/provider/src/main')
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/DeviceManagerORanImpl.java89
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanChangeNotificationListener.java130
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultNotificationListener.java110
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultToVESFaultMapper.java131
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElement.java237
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElementFactory.java57
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNotifToVESEventAssembly.java99
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanRegistrationToVESpnfRegistrationMapper.java87
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanToInternalDataModel.java203
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/OperatorStateBuilder.java24
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceBuilder.java24
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceMatchBuilder.java24
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/SeverityWithClearBuilder.java24
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/alarms/ControlMaxAlarmStatusChangesBuilder.java24
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml38
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/resources/version.properties24
-rwxr-xr-xsdnr/wt/devicemanager-oran/provider/src/main/yang/iana-hardware.yang180
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/yang/ietf-alarms@2019-09-11.yang1530
-rwxr-xr-xsdnr/wt/devicemanager-oran/provider/src/main/yang/ietf-hardware.yang1141
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/yang/ietf-interfaces.yang1073
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/yang/nc-notifications@2008-07-14.yang95
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-ald-port@2019-07-03.yang238
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-fm.yang168
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-hardware.yang271
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-hardware@2019-07-03.yang271
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-common-alarms-v1.yang56
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-cu-cp-alarms-v1.yang57
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-cu-up-alarms-v1.yang57
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-du-alarms-v1.yang56
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-ric-alarms-v1.yang56
-rw-r--r--sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-ru-alarms-v1.yang56
31 files changed, 0 insertions, 6630 deletions
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/DeviceManagerORanImpl.java b/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/DeviceManagerORanImpl.java
deleted file mode 100644
index 87157e8ce..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/DeviceManagerORanImpl.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
-
-import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.FactoryRegistration;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class DeviceManagerORanImpl implements AutoCloseable {
-
- private static final Logger LOG = LoggerFactory.getLogger(DeviceManagerORanImpl.class);
- private static final String APPLICATION_NAME = "DeviceManagerORan";
- @SuppressWarnings("unused")
- private static final String CONFIGURATIONFILE = "etc/devicemanager-oran.properties";
-
-
- private NetconfNetworkElementService netconfNetworkElementService;
-
- private HtDatabaseClient htDatabaseClient;
- private Boolean devicemanagerInitializationOk = false;
- private FactoryRegistration<ORanNetworkElementFactory> resORan;
-
- // Blueprint begin
- public DeviceManagerORanImpl() {
- LOG.info("Creating provider for {}", APPLICATION_NAME);
- resORan = null;
- }
-
- public void setNetconfNetworkElementService(NetconfNetworkElementService netconfNetworkElementService) {
- this.netconfNetworkElementService = netconfNetworkElementService;
- }
-
- public void init() throws Exception {
-
- LOG.info("Session Initiated start {}", APPLICATION_NAME);
-
- resORan = netconfNetworkElementService.registerBindingNetworkElementFactory(new ORanNetworkElementFactory());
-
-
- netconfNetworkElementService.writeToEventLog(APPLICATION_NAME, "startup", "done");
- this.devicemanagerInitializationOk = true;
-
- LOG.info("Session Initiated end. Initialization done {}", devicemanagerInitializationOk);
- }
- // Blueprint end
-
- @Override
- public void close() throws Exception {
- LOG.info("closing ...");
- close(htDatabaseClient);
- close(resORan);
- LOG.info("closing done");
- }
-
- /**
- * Used to close all Services, that should support AutoCloseable Pattern
- *
- * @param toClose
- * @throws Exception
- */
- private void close(AutoCloseable... toCloseList) {
- for (AutoCloseable element : toCloseList) {
- if (element != null) {
- try {
- element.close();
- } catch (Exception e) {
- LOG.warn("Fail during close: ", e);
- }
- }
- }
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanChangeNotificationListener.java b/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanChangeNotificationListener.java
deleted file mode 100644
index 63d8f2787..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanChangeNotificationListener.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import java.util.List;
-import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationProxyParser;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESNotificationFieldsPOJO;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.IetfNetconfNotificationsListener;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfConfigChange;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfConfirmedCommit;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfSessionEnd;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfSessionStart;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.netconf.config.change.Edit;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Listener for change notifications
- */
-public class ORanChangeNotificationListener implements IetfNetconfNotificationsListener {
-
- private static final Logger log = LoggerFactory.getLogger(ORanChangeNotificationListener.class);
-
- private final NetconfBindingAccessor netconfAccessor;
- private final DataProvider databaseService;
- private final VESCollectorService vesCollectorService;
- private final NotificationProxyParser notificationProxyParser;
- private ORanNotifToVESEventAssembly mapper = null;
-
- private static int sequenceNo = 0;
-
- public ORanChangeNotificationListener(NetconfBindingAccessor netconfAccessor, DataProvider databaseService,
- VESCollectorService vesCollectorService, NotificationProxyParser notificationProxyParser) {
- this.netconfAccessor = netconfAccessor;
- this.databaseService = databaseService;
- this.vesCollectorService = vesCollectorService;
- this.notificationProxyParser = notificationProxyParser;
- }
-
- @Override
- public void onNetconfConfirmedCommit(NetconfConfirmedCommit notification) {
- log.info("onNetconfConfirmedCommit {}", notification);
- }
-
- @Override
- public void onNetconfSessionStart(NetconfSessionStart notification) {
- log.info("onNetconfSessionStart {}", notification);
- }
-
- @Override
- public void onNetconfSessionEnd(NetconfSessionEnd notification) {
- log.info("onNetconfSessionEnd {}", notification);
- }
-
- @Override
- public void onNetconfCapabilityChange(NetconfCapabilityChange notification) {
- log.info("onNetconfCapabilityChange {}", notification);
- }
-
- @Override
- public void onNetconfConfigChange(NetconfConfigChange notification) {
- log.info("onNetconfConfigChange (1) {}", notification);
- sequenceNo++;
- StringBuffer sb = new StringBuffer();
- List<Edit> editList = notification.nonnullEdit();
- for (Edit edit : editList) {
- if (sb.length() > 0) {
- sb.append(", ");
- }
- sb.append(edit);
-
- EventlogBuilder eventlogBuilder = new EventlogBuilder();
-
- InstanceIdentifier<?> target = edit.getTarget();
- if (target != null) {
- eventlogBuilder.setObjectId(target.toString());
- log.info("TARGET: {} {} {}", target.getClass(), target.getTargetType());
- for (PathArgument pa : target.getPathArguments()) {
- log.info("PathArgument {}", pa);
- }
- }
- eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue());
- eventlogBuilder.setNewValue(String.valueOf(edit.getOperation()));
- databaseService.writeEventLog(eventlogBuilder.build());
- }
- log.info("onNetconfConfigChange (2) {}", sb);
-
- if (vesCollectorService.getConfig().isVESCollectorEnabled()) {
- if (mapper == null) {
- this.mapper = new ORanNotifToVESEventAssembly(netconfAccessor, vesCollectorService);
- }
- VESCommonEventHeaderPOJO header = mapper.createVESCommonEventHeader(notificationProxyParser.getTime(notification),
- NetconfConfigChange.class.getSimpleName(), sequenceNo);
- VESNotificationFieldsPOJO body =
- mapper.createVESNotificationFields(notificationProxyParser.parseNotificationProxy(notification),
- NetconfConfigChange.class.getSimpleName());
- try {
- vesCollectorService.publishVESMessage(vesCollectorService.generateVESEvent(header, body));
- } catch (JsonProcessingException e) {
- log.warn("Exception while generating JSON object ", e);
-
- }
- }
-
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultNotificationListener.java b/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultNotificationListener.java
deleted file mode 100644
index 6f5de9677..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultNotificationListener.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import java.time.Instant;
-import java.time.format.DateTimeParseException;
-import org.eclipse.jdt.annotation.Nullable;
-import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESFaultFieldsPOJO;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.Alarm.FaultSeverity;
-import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.AlarmNotif;
-import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.ORanFmListener;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultcurrentBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author herbert
- *
- */
-public class ORanFaultNotificationListener implements ORanFmListener {
-
- private static final Logger log = LoggerFactory.getLogger(ORanFaultNotificationListener.class);
- private NetconfBindingAccessor netconfAccessor;
- private DataProvider databaseService;
- private VESCollectorService vesCollectorService;
- private int counter = 0;
- private ORanFaultToVESFaultMapper mapper = null;
-
- public ORanFaultNotificationListener(NetconfBindingAccessor netconfAccessor, DataProvider databaseService,
- VESCollectorService vesCollectorService) {
- this.netconfAccessor = netconfAccessor;
- this.databaseService = databaseService;
- this.vesCollectorService = vesCollectorService;
- }
-
- @Override
- public void onAlarmNotif(AlarmNotif notification) {
-
- log.info("onAlarmNotif {}", notification.getClass().getSimpleName());
- @Nullable
- DateAndTime eventTime = notification.getEventTime();
- try {
- Instant eventTimeInstant = Instant.parse(eventTime.getValue());
-
- FaultcurrentBuilder faultCurrent = new FaultcurrentBuilder();
- faultCurrent.setNodeId(netconfAccessor.getNodeId().getValue());
- faultCurrent.setObjectId(notification.getFaultSource());
- faultCurrent.setProblem(notification.getFaultText());
- faultCurrent.setSeverity(getSeverityType(notification.getFaultSeverity()));
- faultCurrent.setCounter(Integer.valueOf(counter++));
- faultCurrent.setId(notification.getFaultId().toString());
- faultCurrent.setTimestamp(eventTime);
-
- databaseService.updateFaultCurrent(faultCurrent.build());
-
- if (vesCollectorService.getConfig().isVESCollectorEnabled()) {
- if (mapper == null) {
- this.mapper = new ORanFaultToVESFaultMapper(netconfAccessor.getNodeId(), vesCollectorService,
- AlarmNotif.class.getSimpleName());
- }
- VESCommonEventHeaderPOJO header =
- mapper.mapCommonEventHeader(notification, eventTimeInstant, counter);
- VESFaultFieldsPOJO body = mapper.mapFaultFields(notification);
- vesCollectorService.publishVESMessage(vesCollectorService.generateVESEvent(header, body));
- }
- } catch (JsonProcessingException | DateTimeParseException e) {
- log.debug("Can not convert event into VES message {}", notification, e);
- }
-
- }
-
- private SeverityType getSeverityType(FaultSeverity faultSeverity) {
- String severity = faultSeverity.getName();
- switch (severity) {
- case "CRITICAL":
- return SeverityType.Critical;
- case "MAJOR":
- return SeverityType.Major;
- case "MINOR":
- return SeverityType.Minor;
- case "WARNING":
- return SeverityType.Warning;
- default:
- return SeverityType.NonAlarmed;
- }
- }
-
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultToVESFaultMapper.java b/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultToVESFaultMapper.java
deleted file mode 100644
index 1790f82c7..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanFaultToVESFaultMapper.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk features
- * ================================================================================
- * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
-
-import java.time.Instant;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESFaultFieldsPOJO;
-import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.AlarmNotif;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-//@formatter:off
-/*
- * Maps ORAN Fault fields to VES fault domain fields and VES commonEventHeader fields
- *
- *
- * VES Fields Mapping
- * domain "fault"
- * eventId "nt:network-topology/nt:topology/nt:node/nt:node-id"
- * eventName "nt:network-topology/nt:topology/nt:node/nt:node-id"
- * eventType "O-RAN-RU-Fault"
- * lastEpochMicrosec TimeStamp represented by <eventTime> field in NetConf notification header in unix time format - as microseconds elapsed since 1 Jan 1970 not including leap seconds.
- * nfcNamingCode always ""
- * nfNamingCode always ""
- * nfVendorName ???
- * priority "Normal"
- * reportingEntityId The OAM-Controller identifier with in the SMO - e.g. the fully qualified domain name or IP-Address.
- * reportingEntityName as configured by helm charts for the OpenDaylight cluster name ??????
- * sequence As per NetConf notification increasing sequence number as unsigned integer 32 bits. The value is reused in the eventId field.
- * sourceId ?????
- * sourceName "nt:network-topology/nt:topology/nt:node/nt:node-id"
- * startEpochMicrosec
- * timeZoneOffset
- * version "4.1"
- * vesEventListenerVersion "7.2"
- *
- *
- * alarmAdditionalInformation
- * alarmCondition Value of "o-ran-fm:alarm-notif/fault-id"
- * alarmInterfaceA Value of "o-ran-fm:alarm-notif/fault-source"
- * eventCategory Static text "O-RU failure"
- * eventSeverity Value of "o-ran-fm:alarm-notif/fault-severity". But if "o-ran-fm:alarm-notif/is-cleared" then "NORMAL"
- * eventSourceType The value of ietf-hardware (RFC8348) /hardware/component[not(parent)][1]/mfg-model or "O-RU" if not found.
- * faultFieldsVersion "4.0"
- * specificProblem A mapping of the fault-id to its description according to O-RAN OpenFronthaul specification.
- * vfStatus "Active"
- *
- */
-//@formatter:on
-
-public class ORanFaultToVESFaultMapper {
-
- private static final Logger LOG = LoggerFactory.getLogger(ORanFaultToVESFaultMapper.class);
- private static final String VES_EVENT_DOMAIN = "fault";
- private static final String VES_EVENTTYPE = "ORAN_Fault";
- private static final String VES_EVENT_PRIORITY = "Normal";
- private static final String VES_EVENT_CATEGORY = "O-RU Failure";
- private static final String VES_FAULT_FIELDS_VERSION = "4.0";
- private static final String VES_FAULT_FIELDS_VFSTATUS = "Active"; //virtual function status
-
- private final VESCollectorService vesProvider;
- private final String notifName; // Name
- private final String nodeIdString; // Sourcename
-
-
- public ORanFaultToVESFaultMapper(NodeId nodeId, VESCollectorService vesCollectorService,
- String notifName) {
- this.nodeIdString = nodeId.getValue();
- this.vesProvider = vesCollectorService;
- this.notifName = notifName;
- }
-
- public VESCommonEventHeaderPOJO mapCommonEventHeader(AlarmNotif notification, Instant eventTime, int sequenceNo) {
- VESCommonEventHeaderPOJO vesCEH = new VESCommonEventHeaderPOJO();
- vesCEH.setDomain(VES_EVENT_DOMAIN);
- vesCEH.setEventName(notifName);
- vesCEH.setEventType(VES_EVENTTYPE);
- vesCEH.setPriority(VES_EVENT_PRIORITY);
-
- String eventId;
-
- eventId = notifName + "-" + Long.toUnsignedString(sequenceNo);
-
- vesCEH.setEventId(eventId);
- vesCEH.setStartEpochMicrosec(eventTime.toEpochMilli() * 1000);
- vesCEH.setLastEpochMicrosec(eventTime.toEpochMilli() * 1000);
- vesCEH.setNfVendorName("ORAN");
- vesCEH.setReportingEntityName(vesProvider.getConfig().getReportingEntityName());
- vesCEH.setSequence(sequenceNo);
- vesCEH.setSourceId("ORAN");
- vesCEH.setSourceName(nodeIdString);
-
- return vesCEH;
- }
-
- public VESFaultFieldsPOJO mapFaultFields(AlarmNotif alarmNotif) {
- VESFaultFieldsPOJO vesFaultFields = new VESFaultFieldsPOJO();
-
- vesFaultFields.setAlarmCondition(alarmNotif.getFaultId().toString());
- vesFaultFields.setAlarmInterfaceA(alarmNotif.getFaultSource());
- vesFaultFields.setEventCategory(VES_EVENT_CATEGORY);
- vesFaultFields.setEventSeverity(alarmNotif.getFaultSeverity().getName());
- vesFaultFields.setFaultFieldsVersion(VES_FAULT_FIELDS_VERSION);
- vesFaultFields.setSpecificProblem(alarmNotif.getFaultText());
- vesFaultFields.setVfStatus(VES_FAULT_FIELDS_VFSTATUS);
-
- return vesFaultFields;
- }
-
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElement.java b/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElement.java
deleted file mode 100644
index 7c69f832b..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElement.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import java.util.Collection;
-import java.util.List;
-import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNull;
-import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
-import org.onap.ccsdk.features.sdnr.wt.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.NotificationProxyParser;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESPNFRegistrationFieldsPOJO;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.Stream;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.Hardware;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component;
-import org.opendaylight.yang.gen.v1.urn.onap.system.rev201026.System1;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Guicutthrough;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev161109.NetconfCallhomeServer;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev161109.netconf.callhome.server.AllowedDevices;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev161109.netconf.callhome.server.allowed.devices.Device;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.NotificationListener;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ORanNetworkElement implements NetworkElement {
-
- private static final Logger log = LoggerFactory.getLogger(ORanNetworkElement.class);
-
- private final NetconfBindingAccessor netconfAccessor;
-
- private final DataProvider databaseService;
-
- @SuppressWarnings("unused")
- private final VESCollectorService vesCollectorService;
-
- private ListenerRegistration<NotificationListener> oRanListenerRegistrationResult;
- private @NonNull final ORanChangeNotificationListener oRanListener;
- private ListenerRegistration<NotificationListener> oRanFaultListenerRegistrationResult;
- private @NonNull final ORanFaultNotificationListener oRanFaultListener;
- private final NotificationProxyParser notificationProxyParser;
- private @NonNull ORanRegistrationToVESpnfRegistrationMapper mapper;
- private Collection<Component> componentList;
- private static int sequenceNo = 0;
-
- ORanNetworkElement(NetconfBindingAccessor netconfAccess, DataProvider databaseService,
- VESCollectorService vesCollectorService) {
- log.info("Create {}", ORanNetworkElement.class.getSimpleName());
- this.netconfAccessor = netconfAccess;
- this.databaseService = databaseService;
- this.vesCollectorService = vesCollectorService;
- this.notificationProxyParser = vesCollectorService.getNotificationProxyParser();
-
- this.oRanListenerRegistrationResult = null;
- this.oRanListener = new ORanChangeNotificationListener(netconfAccessor, databaseService, vesCollectorService,
- notificationProxyParser);
-
- this.oRanFaultListenerRegistrationResult = null;
- this.oRanFaultListener =
- new ORanFaultNotificationListener(netconfAccessor, databaseService, vesCollectorService);
- }
-
- private void initialReadFromNetworkElement() {
- Hardware hardware = readHardware();
- if (hardware != null) {
- componentList = YangHelper.getCollection(hardware.nonnullComponent());
- List<Inventory> inventoryList =
- ORanToInternalDataModel.getInventoryList(netconfAccessor.getNodeId(), componentList);
- databaseService.writeInventory(netconfAccessor.getNodeId().getValue(), inventoryList);
- }
-
- Optional<Guicutthrough> oGuicutthrough = ORanToInternalDataModel.getGuicutthrough(getOnapSystemData());
- if (oGuicutthrough.isPresent()) {
- databaseService.writeGuiCutThroughData(oGuicutthrough.get(), netconfAccessor.getNodeId().getValue());
- }
- }
-
- @Override
- public NetworkElementDeviceType getDeviceType() {
- return NetworkElementDeviceType.ORAN;
- }
-
- @Override
- public void register() {
- initialReadFromNetworkElement();
- // Publish the mountpoint to VES if enabled
- publishMountpointToVES();
- // Register call back class for receiving notifications
- this.oRanListenerRegistrationResult = netconfAccessor.doRegisterNotificationListener(oRanListener);
- this.oRanFaultListenerRegistrationResult =
- netconfAccessor.doRegisterNotificationListener(oRanFaultListener);
- // Register notifications stream
- if (netconfAccessor.isNotificationsRFC5277Supported()) {
- List<Stream> streamList = netconfAccessor.getNotificationStreams();
- netconfAccessor.registerNotificationsStream(NetconfBindingAccessor.DefaultNotificationsStream); // Always register first to default stream
- netconfAccessor.registerNotificationsStream(streamList);
- } else {
- netconfAccessor.registerNotificationsStream(NetconfBindingAccessor.DefaultNotificationsStream);
- }
- }
-
- @Override
- public void deregister() {
- if (oRanListenerRegistrationResult != null) {
- this.oRanListenerRegistrationResult.close();
- }
- if (oRanFaultListenerRegistrationResult != null) {
- this.oRanFaultListenerRegistrationResult.close();
- } ;
- }
-
-
- @Override
- public NodeId getNodeId() {
- return netconfAccessor.getNodeId();
- }
-
- @Override
- public <L extends NetworkElementService> Optional<L> getService(Class<L> clazz) {
- return Optional.empty();
- }
-
- @Override
- public void warmstart() {}
-
- @Override
- public Optional<NetconfAccessor> getAcessor() {
- return Optional.of(netconfAccessor);
- }
-
- // Read from device
- private System1 getOnapSystemData() {
- log.info("Get System1 for class {} from mountpoint {}", netconfAccessor.getNodeId().getValue());
-
- InstanceIdentifier<System1> system1IID = InstanceIdentifier
- .builder(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.system.rev140806.System.class)
- .augmentation(System1.class).build();
- System1 res = netconfAccessor.getTransactionUtils().readData(netconfAccessor.getDataBroker(),
- LogicalDatastoreType.OPERATIONAL, system1IID);
- log.debug("Result of System1 = {}", res);
- return res;
- }
-
- private Hardware readHardware() {
- final Class<Hardware> clazzPac = Hardware.class;
- log.info("DBRead Get hardware for class {} from mountpoint {}", clazzPac.getSimpleName(),
- netconfAccessor.getNodeId().getValue());
- InstanceIdentifier<Hardware> hardwareIID = InstanceIdentifier.builder(clazzPac).build();
- Hardware res = netconfAccessor.getTransactionUtils().readData(netconfAccessor.getDataBroker(),
- LogicalDatastoreType.OPERATIONAL, hardwareIID);
- log.debug("Result of Hardware = {}", res);
- return res;
- }
-
- private void publishMountpointToVES() {
- log.debug("In publishMountpointToVES()");
-
- /**
- * 1. Check if this device is in the list of allowed-devices.
- * 2. If device exists in allowed-devices, then create VES pnfRegistration event and publish to VES
- */
- if (inAllowedDevices(netconfAccessor.getNodeId().getValue())) {
- if (vesCollectorService.getConfig().isVESCollectorEnabled()) {
-
- for (Component component : ORanToInternalDataModel.getRootComponents(componentList)) {
- //Just get one component. At the moment we don't care which one. Also since there is only one management address, we assume there will be only one chassis.
- //If the device supports subtended configuration then it is assumed that the Chassis containing the management interface will be the root component and there will be only one root.
- this.mapper = new ORanRegistrationToVESpnfRegistrationMapper(netconfAccessor,
- vesCollectorService, component);
- VESCommonEventHeaderPOJO header =
- mapper.mapCommonEventHeader(sequenceNo++);
- VESPNFRegistrationFieldsPOJO body = mapper.mapPNFRegistrationFields();
- try {
- vesCollectorService.publishVESMessage(vesCollectorService.generateVESEvent(header, body));
- } catch (JsonProcessingException e) {
- log.warn("Error while serializing VES Event to String ", e);
- e.printStackTrace();
- }
-
- }
- }
-
- }
-
- }
-
- private boolean inAllowedDevices(String mountpointName) {
- final InstanceIdentifier<AllowedDevices> ALL_DEVICES =
- InstanceIdentifier.create(NetconfCallhomeServer.class).child(AllowedDevices.class);
-
- AllowedDevices allowedDevices;
- allowedDevices = netconfAccessor.getTransactionUtils().readData(
- netconfAccessor.getControllerBindingDataBroker(), LogicalDatastoreType.CONFIGURATION, ALL_DEVICES);
-
- if (allowedDevices != null) {
- Collection<Device> deviceList = YangHelper.getCollection(allowedDevices.nonnullDevice());
- for (Device device : deviceList) {
- log.info("Device in allowed-devices is - {}", device.getUniqueId());
- if (device.getUniqueId().equals(netconfAccessor.getNodeId().getValue())) {
- log.info("Mountpoint is part of allowed-devices list");
- return true;
- }
- }
- }
-
- log.info("Mountpoint {} is not part of allowed-devices list", mountpointName);
- return false;
- }
-
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElementFactory.java b/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElementFactory.java
deleted file mode 100644
index 55b2eea34..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNetworkElementFactory.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk features
- * ================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
-
-import java.util.Optional;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.NetworkElementFactory;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
-import org.opendaylight.yang.gen.v1.urn.o.ran.hardware._1._0.rev190328.ORANHWCOMPONENT;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ORanNetworkElementFactory implements NetworkElementFactory {
-
- private static final Logger log = LoggerFactory.getLogger(ORanNetworkElementFactory.class);
- //Workaround
- private static final QName OneCell =
- QName.create("urn:onf:otcc:wireless:yang:radio-access:commscope-onecell", "2020-06-22", "onecell").intern();
-
- @Override
- public Optional<NetworkElement> create(NetconfAccessor accessor, DeviceManagerServiceProvider serviceProvider) {
- Capabilities capabilites = accessor.getCapabilites();
- if (!capabilites.isSupportingNamespace(OneCell)) {
- if (capabilites.isSupportingNamespace(ORANHWCOMPONENT.QNAME)) {
- log.info("Create device {} ", ORanNetworkElement.class.getName());
- Optional<NetconfBindingAccessor> bindingAccessor = accessor.getNetconfBindingAccessor();
- if (bindingAccessor.isPresent()) {
- return Optional.of(new ORanNetworkElement(bindingAccessor.get(), serviceProvider.getDataProvider(),
- serviceProvider.getVESCollectorService()));
- }
- }
- }
- return Optional.empty();
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNotifToVESEventAssembly.java b/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNotifToVESEventAssembly.java
deleted file mode 100644
index d99f1c874..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanNotifToVESEventAssembly.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk features
- * ================================================================================
- * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
-
-import java.time.Instant;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map.Entry;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESNotificationFieldsPOJO;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ORanNotifToVESEventAssembly {
-
- private static final Logger log = LoggerFactory.getLogger(ORanNotifToVESEventAssembly.class);
- private static final String VES_EVENT_DOMAIN = "notification";
- private static final String VES_EVENTTYPE = "ORAN_notification";
- private static final String VES_EVENT_PRIORITY = "Normal";
- private NetconfBindingAccessor netconfAccessor;
- private VESCollectorService vesProvider;
-
- public ORanNotifToVESEventAssembly(NetconfBindingAccessor netconfAccessor, VESCollectorService vesProvider) {
- this.netconfAccessor = netconfAccessor;
- this.vesProvider = vesProvider;
- }
-
- // VES CommonEventHeader fields
- public VESCommonEventHeaderPOJO createVESCommonEventHeader(Instant time, String notificationTypeName,
- long sequenceNo) {
- VESCommonEventHeaderPOJO vesCEH = new VESCommonEventHeaderPOJO();
- vesCEH.setDomain(VES_EVENT_DOMAIN);
- vesCEH.setEventName(notificationTypeName);
- vesCEH.setEventType(VES_EVENTTYPE);
- vesCEH.setPriority(VES_EVENT_PRIORITY);
-
- String eventId;
-
- eventId = notificationTypeName + "-" + Long.toUnsignedString(sequenceNo);
-
- vesCEH.setEventId(eventId);
- vesCEH.setStartEpochMicrosec(time.toEpochMilli() * 1000);
- vesCEH.setLastEpochMicrosec(time.toEpochMilli() * 1000);
- vesCEH.setNfVendorName("ORAN");
- vesCEH.setReportingEntityName(vesProvider.getConfig().getReportingEntityName());
- vesCEH.setSequence(sequenceNo);
- vesCEH.setSourceId("ORAN");
- vesCEH.setSourceName(netconfAccessor.getNodeId().getValue());
- return vesCEH;
- }
-
- // Notification fields
- public VESNotificationFieldsPOJO createVESNotificationFields(HashMap<String, String> xPathFields,
- String notificationTypeName) {
- VESNotificationFieldsPOJO vesNotifFields = new VESNotificationFieldsPOJO();
-
- vesNotifFields.setChangeType(notificationTypeName);
- vesNotifFields.setChangeIdentifier(netconfAccessor.getNodeId().getValue());
-
- StringBuffer buf = new StringBuffer();
- Iterator<Entry<String, String>> it = xPathFields.entrySet().iterator();
- while (it.hasNext()) {
- Entry<String, String> pair = it.next();
- buf.append("\n" + pair.getKey() + " = " + pair.getValue());
- }
- log.info("Resultlist({}):{}", xPathFields.size(), buf.toString());
-
- ArrayList<HashMap<String, Object>> arrayOfNamedHashMap = new ArrayList<HashMap<String, Object>>();
- HashMap<String, Object> namedHashMap = new HashMap<String, Object>();
- namedHashMap.put("hashMap", xPathFields);
- namedHashMap.put("name", notificationTypeName);
- arrayOfNamedHashMap.add(namedHashMap);
- vesNotifFields.setArrayOfNamedHashMap(arrayOfNamedHashMap);
- return vesNotifFields;
-
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanRegistrationToVESpnfRegistrationMapper.java b/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanRegistrationToVESpnfRegistrationMapper.java
deleted file mode 100644
index 81605e450..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanRegistrationToVESpnfRegistrationMapper.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : ccsdk features
- * ================================================================================
- * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
- * All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- *
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
-
-import java.time.Instant;
-import org.eclipse.jdt.annotation.NonNull;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO;
-import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESPNFRegistrationFieldsPOJO;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ORanRegistrationToVESpnfRegistrationMapper {
-
- private static final Logger LOG = LoggerFactory.getLogger(ORanFaultToVESFaultMapper.class);
- //CommonEventHeader fields
- private static final String VES_EVENT_DOMAIN = "pnfRegistration";
- private static final String VES_EVENTTYPE = "NetConf Callhome Registration";
- private static final String VES_EVENT_PRIORITY = "Normal";
-
- private final VESCollectorService vesProvider;
- private final @NonNull Component component;
- private final NetconfAccessor netconfAccessor;
-
- public ORanRegistrationToVESpnfRegistrationMapper(NetconfAccessor netconfAccessor,
- VESCollectorService vesCollectorService, Component component) {
- this.netconfAccessor = netconfAccessor;
- this.vesProvider = vesCollectorService;
- this.component = component;
- }
-
- public VESCommonEventHeaderPOJO mapCommonEventHeader(int sequenceNo) {
- VESCommonEventHeaderPOJO vesCEH = new VESCommonEventHeaderPOJO();
- vesCEH.setDomain(VES_EVENT_DOMAIN);
- vesCEH.setEventId(netconfAccessor.getNodeId().getValue());
- vesCEH.setEventName(netconfAccessor.getNodeId().getValue());
- vesCEH.setEventType(VES_EVENTTYPE);
- vesCEH.setPriority(VES_EVENT_PRIORITY);
-
- vesCEH.setStartEpochMicrosec(Instant.now().toEpochMilli() * 1000);
- vesCEH.setLastEpochMicrosec(Instant.now().toEpochMilli() * 1000);
- vesCEH.setNfVendorName(component.getMfgName());
- vesCEH.setReportingEntityName(vesProvider.getConfig().getReportingEntityName());
- vesCEH.setSequence(sequenceNo);
- vesCEH.setSourceId(component.getUuid().toString());
- vesCEH.setSourceName(netconfAccessor.getNodeId().getValue());
-
- return vesCEH;
- }
-
- public VESPNFRegistrationFieldsPOJO mapPNFRegistrationFields() {
- VESPNFRegistrationFieldsPOJO vesPnfFields = new VESPNFRegistrationFieldsPOJO();
- vesPnfFields.setModelNumber(component.getModelName());
- vesPnfFields.setOamV4IpAddress(netconfAccessor.getNetconfNode().getHost().getIpAddress().toString());
- //vesPnfFields.setOamV6IpAddress(oamV6IpAddress); // Check if IP address in V6 format and then include it. Same with v4 address also
- vesPnfFields.setSerialNumber(component.getSerialNum());
- vesPnfFields.setVendorName(component.getMfgName());
- vesPnfFields.setSoftwareVersion(component.getSoftwareRev());
- vesPnfFields.setUnitType(component.getAlias());
- vesPnfFields.setUnitFamily(component.getXmlClass().toString());
- vesPnfFields.setManufactureDate(component.getMfgDate().toString());
- //vesPnfFields.setLastServiceDate(component.getLastChange());
-
- return vesPnfFields;
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanToInternalDataModel.java b/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanToInternalDataModel.java
deleted file mode 100644
index 1f84db41c..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/ORanToInternalDataModel.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
-import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.HardwareClass;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.onap.system.rev201026.System1;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Guicutthrough;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GuicutthroughBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.InventoryBuilder;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
-import org.opendaylight.yangtools.yang.binding.CodeHelpers;
-import org.opendaylight.yangtools.yang.common.Uint32;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Convert data to data-provider model and perform consistency checks.<br>
- * <b>Component list characteristics:</b><br>
- * <ul>
- * <li>component list is a flat list tree structure specified
- * <li>via "component.getParent()":
- * <ul>
- * <li>If null we have a root element
- * <li>if not null it is a child element with generated child level<br>
- * </ul>
- * </ul>
- * Example of List:<br>
- *
- *
- */
-public class ORanToInternalDataModel {
-
- private static final Logger log = LoggerFactory.getLogger(ORanToInternalDataModel.class);
-
- public static List<Inventory> getInventoryList(NodeId nodeId, Collection<Component> componentList) {
-
- List<Inventory> inventoryResultList = new ArrayList<Inventory>();
- for (Component component : getRootComponents(componentList)) {
- inventoryResultList = recurseGetInventory(nodeId, component, componentList, 0, inventoryResultList);
- }
- // Verify if result is complete
- if (componentList.size() != inventoryResultList.size()) {
- log.warn(
- "Not all data were written to the Inventory. Potential entries with missing "
- + "contained-child. Node Id = {}, Components Found = {}, Entries written to Database = {}",
- nodeId.getValue(), componentList.size(), inventoryResultList.size());
- }
- return inventoryResultList;
- }
-
- private static List<Inventory> recurseGetInventory(NodeId nodeId, Component component,
- Collection<Component> componentList, int treeLevel, List<Inventory> inventoryResultList) {
-
- //Add element to list, if conversion successfull
- Optional<Inventory> oInventory = getInternalEquipment(nodeId, component, treeLevel);
- if (oInventory.isPresent()) {
- inventoryResultList.add(oInventory.get());
- }
- //Walk trough list of child keys and add to list
- for (String childUuid : CodeHelpers.nonnull(component.getContainsChild())) {
- for (Component c : getComponentsByName(childUuid, componentList)) {
- inventoryResultList = recurseGetInventory(nodeId, c, componentList, treeLevel + 1, inventoryResultList);
- }
- }
- return inventoryResultList;
- }
-
- public static List<Component> getRootComponents(Collection<Component> componentList) {
- List<Component> resultList = new ArrayList<>();
- for (Component c : componentList) {
- if (c.getParent() == null) { // Root elements do not have a parent
- resultList.add(c);
- }
- }
- return resultList;
- }
-
- private static List<Component> getComponentsByName(String name, Collection<Component> componentList) {
- List<Component> resultList = new ArrayList<>();
- for (Component c : componentList) {
- if (name.equals(c.getName())) { // <-- Component list is flat search for child's of name
- resultList.add(c);
- }
- }
- return resultList;
- }
-
- /**
- * Convert equipment into Inventory. Decide if inventory can by created from content or not.
- * Public for test case.
- * @param nodeId of node (Similar to mountpointId)
- * @param component to handle
- * @param treeLevel of components
- * @return Inventory if possible to be created.
- */
- public static Optional<Inventory> getInternalEquipment(NodeId nodeId, Component component, int treeLevel) {
-
- // Make sure that expected data are not null
- Objects.requireNonNull(nodeId);
- Objects.requireNonNull(component);
-
- // Read manadatory data
-
- @Nullable
- String nodeIdString = nodeId.getValue();
- @Nullable
- String uuid = component.getName();
- @Nullable
- String idParent = component.getParent();
- @Nullable
- String uuidParent = idParent != null ? idParent : uuid; //<- Passt nicht
-
- // do consistency check if all mandatory parameters are there
- if (treeLevel >= 0 && nodeIdString != null && uuid != null && uuidParent != null) {
-
- // Build output data
-
- InventoryBuilder inventoryBuilder = new InventoryBuilder();
-
- // General assumed as mandatory
- inventoryBuilder.setNodeId(nodeIdString);
- inventoryBuilder.setUuid(uuid);
- inventoryBuilder.setParentUuid(uuidParent);
- inventoryBuilder.setTreeLevel(Uint32.valueOf(treeLevel));
-
- // -- String list with ids of holders (optional)
- inventoryBuilder.setContainedHolder(CodeHelpers.nonnull(component.getContainsChild()));
-
- // -- Manufacturer related things (optional)
- @Nullable
- String mfgName = component.getMfgName();
- inventoryBuilder.setManufacturerName(mfgName);
- inventoryBuilder.setManufacturerIdentifier(mfgName);
-
- // Equipment type (optional)
- inventoryBuilder.setDescription(component.getDescription());
- inventoryBuilder.setModelIdentifier(component.getModelName());
- @Nullable
- Class<? extends HardwareClass> xmlClass = component.getXmlClass();
- if (xmlClass != null) {
- inventoryBuilder.setPartTypeId(xmlClass.getName());
- }
- inventoryBuilder.setTypeName(component.getName());
- inventoryBuilder.setVersion(component.getHardwareRev());
-
- // Equipment instance (optional)
- @Nullable
- DateAndTime mfgDate = component.getMfgDate();
- if (mfgDate != null) {
- inventoryBuilder.setDate(mfgDate.getValue());
- }
- inventoryBuilder.setSerial(component.getSerialNum());
-
- return Optional.of(inventoryBuilder.build());
- }
- return Optional.empty();
- }
-
- public static Optional<Guicutthrough> getGuicutthrough(@Nullable System1 sys) {
- if (sys != null) {
- String name = sys.getName();
- @Nullable
- Uri uri = sys.getWebUi();
- if (uri != null) {
- GuicutthroughBuilder gcBuilder = new GuicutthroughBuilder();
- if (name != null) {
- gcBuilder.setName(name);
- }
- gcBuilder.setWeburi(uri.getValue());
- return Optional.of(gcBuilder.build());
- }
- log.warn("Uri not set to invoke a Gui cut through session to the device. Please set the Uri in the device");
- }
- log.warn("Retrieving augmented System details failed. Gui cut through information not available");
- return Optional.empty();
- }
-
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/OperatorStateBuilder.java b/sdnr/wt/devicemanager-oran/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 48d8e802a..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/OperatorStateBuilder.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.alarms.rev190911;
-
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * 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-oran/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceBuilder.java b/sdnr/wt/devicemanager-oran/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 fb2e5d59d..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceBuilder.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.alarms.rev190911;
-
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * 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-oran/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceMatchBuilder.java b/sdnr/wt/devicemanager-oran/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 2f4b5931f..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/ResourceMatchBuilder.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.alarms.rev190911;
-
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * 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-oran/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/SeverityWithClearBuilder.java b/sdnr/wt/devicemanager-oran/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 49e50e004..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/SeverityWithClearBuilder.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.alarms.rev190911;
-
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * 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-oran/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-oran/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 c2a500986..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/alarms/rev190911/alarms/ControlMaxAlarmStatusChangesBuilder.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.alarms.rev190911.alarms;
-
-import java.lang.String;
-import java.lang.UnsupportedOperationException;
-
-/**
- * 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-oran/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/sdnr/wt/devicemanager-oran/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
deleted file mode 100644
index 21b761ce2..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ ============LICENSE_START=======================================================
- ~ ONAP : ccsdk features
- ~ ================================================================================
- ~ Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
- ~ All rights reserved.
- ~ ================================================================================
- ~ Update Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
- ~ ================================================================================
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- ~ ============LICENSE_END=======================================================
- ~
- -->
-
-<blueprint xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
- xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" odl:use-default-for-reference-types="true">
-
- <reference id="netconfNetworkElementService"
- availability="mandatory" activation="eager"
- interface="org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService"/>
-
- <bean id="provider"
- class="org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.DeviceManagerORanImpl"
- init-method="init" destroy-method="close">
- <property name="netconfNetworkElementService" ref="netconfNetworkElementService"/>
- </bean>
-</blueprint>
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/resources/version.properties b/sdnr/wt/devicemanager-oran/provider/src/main/resources/version.properties
deleted file mode 100644
index 6638c04f9..000000000
--- a/sdnr/wt/devicemanager-oran/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-oran/provider/src/main/yang/iana-hardware.yang b/sdnr/wt/devicemanager-oran/provider/src/main/yang/iana-hardware.yang
deleted file mode 100755
index 52bcaf3a0..000000000
--- a/sdnr/wt/devicemanager-oran/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-oran/provider/src/main/yang/ietf-alarms@2019-09-11.yang b/sdnr/wt/devicemanager-oran/provider/src/main/yang/ietf-alarms@2019-09-11.yang
deleted file mode 100644
index a6f51bb81..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/yang/ietf-alarms@2019-09-11.yang
+++ /dev/null
@@ -1,1530 +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: <https://trac.ietf.org/trac/ccamp>
- WG List: <mailto:ccamp@ietf.org>
-
- Editor: Stefan Vallin
- <mailto:stefan@wallan.se>
-
- Editor: Martin Bjorklund
- <mailto:mbj@tail-f.com>";
- description
- "This module defines an interface for managing alarms. Main
- inputs to the module design are the 3GPP Alarm Integration
- Reference Point (IRP), ITU-T X.733, and ANSI/ISA-18.2 alarm
- standards.
-
- Main features of this module include:
-
- * Alarm list:
- A list of all alarms. Cleared alarms stay in
- the list until explicitly purged.
-
- * Operator actions on alarms:
- Acknowledging and closing alarms.
-
- * Administrative actions on alarms:
- Purging alarms from the list according to specific
- criteria.
-
- * Alarm inventory:
- A management application can read all
- alarm types implemented by the system.
-
- * Alarm shelving:
- Shelving (blocking) alarms according
- to specific criteria.
-
- * Alarm profiles:
- A management system can attach further
- information to alarm types, for example,
- overriding system-default severity
- levels.
-
- This module uses a stateful view on alarms. An alarm is a state
- for a specific resource (note that an alarm is not a
- notification). An alarm type is a possible alarm state for a
- resource. For example, the tuple:
-
- ('link-alarm', 'GigabitEthernet0/25')
-
- is an alarm of type 'link-alarm' on the resource
- 'GigabitEthernet0/25'.
-
- Alarm types are identified using YANG identities and an optional
- string-based qualifier. The string-based qualifier allows for
- dynamic extension of the statically defined alarm types. Alarm
- types identify a possible alarm state and not the individual
- notifications. For example, the traditional 'link-down' and
- 'link-up' notifications are two notifications referring to the
- same alarm type 'link-alarm'.
-
- With this design, there is no ambiguity about how alarm and
- alarm clear correlation should be performed; notifications that
- report the same resource and alarm type are considered updates
-
- of the same alarm, e.g., clearing an active alarm or changing
- the severity of an alarm. The instrumentation can update the
- severity and alarm text on an existing alarm. The above alarm
- example can therefore look like the following:
-
- (('link-alarm', 'GigabitEthernet0/25'),
- warning,
- 'interface down while interface admin state is up')
-
- There is a clear separation between updates on the alarm from
- the underlying resource, like clear, and updates from an
- operator, like acknowledging or closing an alarm:
-
- (('link-alarm', 'GigabitEthernet0/25'),
- warning,
- 'interface down while interface admin state is up',
- cleared,
- closed)
-
- Administrative actions like removing closed alarms older than a
- given time is supported.
-
- This YANG module does not define how the underlying
- instrumentation detects and clears the specific alarms. That
- belongs to the Standards Development Organization (SDO) or
- enterprise that owns that specific technology.
-
- The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
- NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
- 'MAY', and 'OPTIONAL' in this document are to be interpreted as
- described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
- they appear in all capitals, as shown here.
-
- Copyright (c) 2019 IETF Trust and the persons identified as
- authors of the code. All rights reserved.
-
- Redistribution and use in source and binary forms, with or
- without modification, is permitted pursuant to, and subject to
- the license terms contained in, the Simplified BSD License set
- forth in Section 4.c of the IETF Trust's Legal Provisions
- Relating to IETF Documents
- (https://trustee.ietf.org/license-info).
-
- This version of this YANG module is part of RFC 8632; see
- the RFC itself for full legal notices.";
-
- revision 2019-09-11 {
- description
- "Initial revision.";
- reference
- "RFC 8632: A YANG Data Model for Alarm Management";
- }
-
- /*
- * Features
- */
-
- feature operator-actions {
- description
- "This feature indicates that the system supports operator
- states on alarms.";
- }
-
- feature alarm-shelving {
- description
- "This feature indicates that the system supports shelving
- (blocking) alarms.
-
- Alarm shelving may have an impact on server processing
- resources in order to match alarms against shelf
- criteria.";
- }
-
- feature alarm-history {
- description
- "This feature indicates that the server maintains a history
- of state changes for each alarm. For example, if an alarm
- toggles between cleared and active 10 times, these state
- changes are present in a separate list in the alarm.
-
- Keeping the alarm history may have an impact on server
- memory resources.";
- }
-
- feature alarm-summary {
- description
- "This feature indicates that the server summarizes the number
- of alarms per severity and operator state.";
- }
-
- feature alarm-profile {
- description
- "The system enables clients to configure further information
- to each alarm type.";
- }
-
- feature severity-assignment {
- description
- "The system supports configurable alarm severity levels.";
- reference
- "ITU-T Recommendation M.3100:
- Generic network information model
- ITU-T Recommendation M.3160:
- Generic, protocol-neutral management information model";
- }
-
- feature root-cause-analysis {
- description
- "The system supports identifying candidate root-cause
- resources for an alarm, for example, a disk partition
- root cause for a logger failure alarm.";
- }
-
- feature service-impact-analysis {
- description
- "The system supports identifying candidate-impacted
- resources for an alarm, for example, an interface state change
- resulting in a link alarm, which can refer to a link as being
- impacted.";
- }
-
- feature alarm-correlation {
- description
- "The system supports correlating/grouping alarms
- that belong together.";
- }
-
- /*
- * Identities
- */
-
- identity alarm-type-id {
- description
- "Base identity for alarm types. A unique identification of
- the alarm, not including the resource. Different resources
- can share alarm types. If the resource reports the same
- alarm type, it is considered to be the same alarm. The alarm
- type is a simplification of the different X.733 and 3GPP Alarm
- IRP correlation mechanisms, and it allows for
- hierarchical extensions.
-
- A string-based qualifier can be used in addition to the
- identity in order to have different alarm types based on
- information not known at design time, such as values in
-
- textual SNMP Notification varbinds.
-
- Standards and vendors can define sub-identities to clearly
- identify specific alarm types.
-
- This identity is abstract and MUST NOT be used for alarms.";
- }
-
- /*
- * Common types
- */
-
- typedef resource {
- type union {
- type instance-identifier {
- require-instance false;
- }
- type yang:object-identifier;
- type string;
- type yang:uuid;
- }
- description
- "This is an identification of the alarming resource, such as an
- interface. It should be as fine-grained as possible to both
- guide the operator and guarantee uniqueness of the alarms.
-
- If the alarming resource is modeled in YANG, this type will
- be an instance-identifier.
-
- If the resource is an SNMP object, the type will be an
- 'object-identifier'.
-
- If the resource is anything else, for example, a distinguished
- name or a Common Information Model (CIM) path, this type will
- be a string.
-
- If the alarming object is identified by a Universally Unique
- Identifier (UUID), use the uuid type. Be cautious when using
- this type, since a UUID is hard to use for an operator.
-
- If the server supports several models, the precedence should
- be in the order as given in the union definition.";
- }
-
- typedef resource-match {
- type union {
- type yang:xpath1.0;
- type yang:object-identifier;
- type string;
- }
- description
- "This type is used to match resources of type 'resource'.
- Since the type 'resource' is a union of different types, the
- 'resource-match' type is also a union of corresponding types.
-
- If the type is given as an XPath 1.0 expression, a resource
- of type 'instance-identifier' matches if the instance is part
- of the node set that is the result of evaluating the XPath 1.0
- expression. For example, the XPath 1.0 expression:
-
- /ietf-interfaces:interfaces/ietf-interfaces:interface
- [ietf-interfaces:type='ianaift:ethernetCsmacd']
-
- would match the resource instance-identifier:
-
- /if:interfaces/if:interface[if:name='eth1'],
-
- assuming that the interface 'eth1' is of type
- 'ianaift:ethernetCsmacd'.
-
- If the type is given as an object identifier, a resource of
- type 'object-identifier' matches if the match object
- identifier is a prefix of the resource's object identifier.
- For example, the value:
-
- 1.3.6.1.2.1.2.2
-
- would match the resource object identifier:
-
- 1.3.6.1.2.1.2.2.1.1.5
-
- If the type is given as an UUID or a string, it is interpreted
- as an XML Schema regular expression, which matches a resource
- of type 'yang:uuid' or 'string' if the given regular
- expression matches the resource string.
-
- If the type is given as an XPath expression, it is evaluated
- in the following XPath context:
-
- o The set of namespace declarations is the set of prefix
- and namespace pairs for all YANG modules implemented by
- the server, where the prefix is the YANG module name and
- the namespace is as defined by the 'namespace' statement
- in the YANG module.
-
- If a leaf of this type is encoded in XML, all namespace
-
- declarations in scope on the leaf element are added to
- the set of namespace declarations. If a prefix found in
- the XML is already present in the set of namespace
- declarations, the namespace in the XML is used.
-
- o The set of variable bindings is empty.
-
- o The function library is the core function library, and
- the functions are defined in Section 10 of RFC 7950.
-
- o The context node is the root node in the data tree.";
- reference
- "XML Schema Part 2: Datatypes Second Edition,
- World Wide Web Consortium Recommendation
- REC-xmlschema-2-20041028";
- }
-
- typedef alarm-text {
- type string;
- description
- "The string used to inform operators about the alarm. This
- MUST contain enough information for an operator to be able to
- understand the problem and how to resolve it. If this string
- contains structure, this format should be clearly documented
- for programs to be able to parse that information.";
- }
-
- typedef severity {
- type enumeration {
- enum indeterminate {
- value 2;
- description
- "Indicates that the severity level could not be
- determined. This level SHOULD be avoided.";
- }
- enum warning {
- value 3;
- description
- "The 'warning' severity level indicates the detection of a
- potential or impending service-affecting fault, before any
- significant effects have been felt. Action should be
- taken to further diagnose (if necessary) and correct the
- problem in order to prevent it from becoming a more
- serious service-affecting fault.";
- }
- enum minor {
- value 4;
- description
- "The 'minor' severity level indicates the existence of a
- non-service-affecting fault condition and that corrective
- action should be taken in order to prevent a more serious
- (for example, service-affecting) fault. Such a severity
- can be reported, for example, when the detected alarm
- condition is not currently degrading the capacity of the
- resource.";
- }
- enum major {
- value 5;
- description
- "The 'major' severity level indicates that a service-
- affecting condition has developed and an urgent corrective
- action is required. Such a severity can be reported, for
- example, when there is a severe degradation in the
- capability of the resource and its full capability must be
- restored.";
- }
- enum critical {
- value 6;
- description
- "The 'critical' severity level indicates that a service-
- affecting condition has occurred and an immediate
- corrective action is required. Such a severity can be
- reported, for example, when a resource becomes totally out
- of service and its capability must be restored.";
- }
- }
- description
- "The severity level of the alarm. Note well that the value
- 'clear' is not included. Whether or not an alarm is cleared
- is a separate boolean flag.";
- reference
- "ITU-T Recommendation X.733: Information Technology
- - Open Systems Interconnection
- - System Management: Alarm Reporting Function";
- }
-
- typedef severity-with-clear {
- type union {
- type enumeration {
- enum cleared {
- value 1;
- description
- "The alarm is cleared by the instrumentation.";
- }
- }
- type severity;
- }
- description
- "The severity level of the alarm including clear. This is used
- only in notifications reporting state changes for an alarm.";
- }
-
- typedef writable-operator-state {
- type enumeration {
- enum none {
- value 1;
- description
- "The alarm is not being taken care of.";
- }
- enum ack {
- value 2;
- description
- "The alarm is being taken care of. Corrective action not
- taken yet or has failed";
- }
- enum closed {
- value 3;
- description
- "Corrective action taken successfully.";
- }
- }
- description
- "Operator states on an alarm. The 'closed' state indicates
- that an operator considers the alarm being resolved. This is
- separate from the alarm's 'is-cleared' leaf.";
- }
-
- typedef operator-state {
- type union {
- type writable-operator-state;
- type enumeration {
- enum shelved {
- value 4;
- description
- "The alarm is shelved. Alarms in /alarms/shelved-alarms/
- MUST be assigned this operator state by the server as
- the last entry in the 'operator-state-change' list. The
- text for that entry SHOULD include the shelf name.";
- }
- enum un-shelved {
- value 5;
- description
- "The alarm is moved back to 'alarm-list' from a shelf.
- Alarms that are moved from /alarms/shelved-alarms/ to
- /alarms/alarm-list MUST be assigned this state by the
- server as the last entry in the 'operator-state-change'
- list. The text for that entry SHOULD include the shelf
- name.";
- }
- }
- }
- description
- "Operator states on an alarm. The 'closed' state indicates
- that an operator considers the alarm being resolved. This is
- separate from the alarm's 'is-cleared' leaf.";
- }
-
- /* Alarm type */
-
- typedef alarm-type-id {
- type identityref {
- base alarm-type-id;
- }
- description
- "Identifies an alarm type. The description of the alarm type
- id MUST indicate whether or not the alarm type is abstract.
- An abstract alarm type is used as a base for other alarm type
- ids and will not be used as a value for an alarm or be present
- in the alarm inventory.";
- }
-
- typedef alarm-type-qualifier {
- type string;
- description
- "If an alarm type cannot be fully specified at design time by
- 'alarm-type-id', this string qualifier is used in addition to
- fully define a unique alarm type.
-
- The definition of alarm qualifiers is considered to be part of
- the instrumentation and is out of scope for this module. An
- empty string is used when this is part of a key.";
- }
-
- /*
- * Groupings
- */
-
- grouping common-alarm-parameters {
- description
- "Common parameters for an alarm.
-
- This grouping is used both in the alarm list and in the
- notification representing an alarm-state change.";
- leaf resource {
- type resource;
- mandatory true;
- description
- "The alarming resource. See also 'alt-resource'. This could
- be, for example, a reference to the alarming interface";
- }
- leaf alarm-type-id {
- type alarm-type-id;
- mandatory true;
- description
- "This leaf and the leaf 'alarm-type-qualifier' together
- provide a unique identification of the alarm type.";
- }
- leaf alarm-type-qualifier {
- type alarm-type-qualifier;
- description
- "This leaf is used when the 'alarm-type-id' leaf cannot
- uniquely identify the alarm type. Normally, this is not the
- case, and this leaf is the empty string.";
- }
- leaf-list alt-resource {
- type resource;
- description
- "Used if the alarming resource is available over other
- interfaces. This field can contain SNMP OIDs, CIM paths, or
- 3GPP distinguished names, for example.";
- }
- list related-alarm {
- if-feature "alarm-correlation";
- key "resource alarm-type-id alarm-type-qualifier";
- description
- "References to related alarms. Note that the related alarm
- might have been purged from the alarm list.";
- leaf resource {
- type leafref {
- path "/alarms/alarm-list/alarm/resource";
- require-instance false;
- }
- description
- "The alarming resource for the related alarm.";
- }
- leaf alarm-type-id {
- type leafref {
- path "/alarms/alarm-list/alarm"
- + "[resource=current()/../resource]"
- + "/alarm-type-id";
- require-instance false;
- }
- description
- "The alarm type identifier for the related alarm.";
- }
- leaf alarm-type-qualifier {
- type leafref {
- path "/alarms/alarm-list/alarm"
- + "[resource=current()/../resource]"
- + "[alarm-type-id=current()/../alarm-type-id]"
- + "/alarm-type-qualifier";
- require-instance false;
- }
- description
- "The alarm qualifier for the related alarm.";
- }
- }
- leaf-list impacted-resource {
- if-feature "service-impact-analysis";
- type resource;
- description
- "Resources that might be affected by this alarm. If the
- system creates an alarm on a resource and also has a mapping
- to other resources that might be impacted, these resources
- can be listed in this leaf-list. In this way, the system
- can create one alarm instead of several. For example, if an
- interface has an alarm, the 'impacted-resource' can
- reference the aggregated port channels.";
- }
- leaf-list root-cause-resource {
- if-feature "root-cause-analysis";
- type resource;
- description
- "Resources that are candidates for causing the alarm. If the
- system has a mechanism to understand the candidate root
- causes of an alarm, this leaf-list can be used to list the
- root-cause candidate resources. In this way, the system can
- create one alarm instead of several. An example might be a
- logging system (alarm resource) that fails; the alarm can
- reference the file system in the 'root-cause-resource'
- leaf-list. Note that the intended use is not to also send
- an alarm with the 'root-cause-resource' as an alarming
- resource. The 'root-cause-resource' leaf-list is a hint and
- should not also generate an alarm for the same problem.";
- }
- }
-
- grouping alarm-state-change-parameters {
- description
- "Parameters for an alarm-state change.
-
- This grouping is used both in the alarm list's status-change
- list and in the notification representing an alarm-state
- change.";
- leaf time {
- type yang:date-and-time;
- mandatory true;
- description
- "The time the status of the alarm changed. The value
- represents the time the real alarm-state change appeared in
- the resource and not when it was added to the alarm
- list. The /alarm-list/alarm/last-changed MUST be set to the
- same value.";
- }
- leaf perceived-severity {
- type severity-with-clear;
- mandatory true;
- description
- "The severity of the alarm as defined by X.733. Note that
- this may not be the original severity since the alarm may
- have changed severity.";
- reference
- "ITU-T Recommendation X.733: Information Technology
- - Open Systems Interconnection
- - System Management: Alarm Reporting Function";
- }
- leaf alarm-text {
- type alarm-text;
- mandatory true;
- description
- "A user-friendly text describing the alarm-state change.";
- reference
- "ITU-T Recommendation X.733: Information Technology
- - Open Systems Interconnection
- - System Management: Alarm Reporting Function";
- }
- }
-
- grouping operator-parameters {
- description
- "This grouping defines parameters that can be changed by an
- operator.";
- leaf time {
- type yang:date-and-time;
- mandatory true;
- description
- "Timestamp for operator action on the alarm.";
- }
- leaf operator {
- type string;
- mandatory true;
- description
- "The name of the operator that has acted on this alarm.";
- }
- leaf state {
- type operator-state;
- mandatory true;
- description
- "The operator's view of the alarm state.";
- }
- leaf text {
- type string;
- description
- "Additional optional textual information provided by the
- operator.";
- }
- }
-
- grouping resource-alarm-parameters {
- description
- "Alarm parameters that originate from the resource view.";
- leaf is-cleared {
- type boolean;
- mandatory true;
- description
- "Indicates the current clearance state of the alarm. An
- alarm might toggle from active alarm to cleared alarm and
- back to active again.";
- }
- leaf last-raised {
- type yang:date-and-time;
- mandatory true;
- description
- "An alarm may change severity level and toggle between
- active and cleared during its lifetime. This leaf indicates
- the last time it was raised ('is-cleared' = 'false').";
- }
- leaf last-changed {
- type yang:date-and-time;
- mandatory true;
- description
- "A timestamp when the 'status-change' or
- 'operator-state-change' list was last changed.";
- }
- leaf perceived-severity {
- type severity;
- mandatory true;
- description
- "The last severity of the alarm.
-
- If an alarm was raised with severity 'warning' but later
- changed to 'major', this leaf will show 'major'.";
- }
- leaf alarm-text {
- type alarm-text;
- mandatory true;
- description
- "The last reported alarm text. This text should contain
- information for an operator to be able to understand the
- problem and how to resolve it.";
- }
- list status-change {
- if-feature "alarm-history";
- key "time";
- min-elements 1;
- description
- "A list of status-change events for this alarm.
-
- The entry with latest timestamp in this list MUST
- correspond to the leafs 'is-cleared', 'perceived-severity',
- and 'alarm-text' for the alarm.
-
- This list is ordered according to the timestamps of alarm
- state changes. The first item corresponds to the latest
- state change.
-
- The following state changes create an entry in this
- list:
- - changed severity (warning, minor, major, critical)
- - clearance status; this also updates the 'is-cleared'
- leaf
- - alarm-text update";
- uses alarm-state-change-parameters;
- }
- }
-
- grouping filter-input {
- description
- "Grouping to specify a filter construct on alarm information.";
- leaf alarm-clearance-status {
- type enumeration {
- enum any {
- description
- "Ignore alarm-clearance status.";
- }
- enum cleared {
- description
- "Filter cleared alarms.";
- }
- enum not-cleared {
- description
- "Filter not-cleared alarms.";
- }
- }
- mandatory true;
- description
- "The clearance status of the alarm.";
- }
- container older-than {
- presence "Age specification";
- description
- "Matches the 'last-status-change' leaf in the alarm.";
- choice age-spec {
- description
- "Filter using date and time age.";
- case seconds {
- leaf seconds {
- type uint16;
- description
- "Age expressed in seconds.";
- }
- }
- case minutes {
- leaf minutes {
- type uint16;
- description
- "Age expressed in minutes.";
- }
- }
- case hours {
- leaf hours {
- type uint16;
- description
- "Age expressed in hours.";
- }
- }
- case days {
- leaf days {
- type uint16;
- description
- "Age expressed in days.";
- }
- }
- case weeks {
- leaf weeks {
- type uint16;
- description
- "Age expressed in weeks.";
- }
- }
- }
- }
- container severity {
- presence "Severity filter";
- choice sev-spec {
- description
- "Filter based on severity level.";
- leaf below {
- type severity;
- description
- "Severity less than this leaf.";
- }
- leaf is {
- type severity;
- description
- "Severity level equal to this leaf.";
- }
- leaf above {
- type severity;
- description
- "Severity level higher than this leaf.";
- }
- }
- description
- "Filter based on severity.";
- }
- container operator-state-filter {
- if-feature "operator-actions";
- presence "Operator state filter";
- leaf state {
- type operator-state;
- description
- "Filter on operator state.";
- }
- leaf user {
- type string;
- description
- "Filter based on which operator.";
- }
- description
- "Filter based on operator state.";
- }
- }
-
- /*
- * The /alarms data tree
- */
-
- container alarms {
- description
- "The top container for this module.";
- container control {
- description
- "Configuration to control the alarm behavior.";
- leaf max-alarm-status-changes {
- type union {
- type uint16;
- type enumeration {
- enum infinite {
- description
- "The status-change entries are accumulated
- infinitely.";
- }
- }
- }
- default "32";
- description
- "The 'status-change' entries are kept in a circular list
- per alarm. When this number is exceeded, the oldest
- status change entry is automatically removed. If the
- value is 'infinite', the status-change entries are
- accumulated infinitely.";
- }
- leaf notify-status-changes {
- type enumeration {
- enum all-state-changes {
- description
- "Send notifications for all status changes.";
- }
- enum raise-and-clear {
- description
- "Send notifications only for raise, clear, and
- re-raise. Notifications for severity-level changes or
- alarm-text changes are not sent.";
- }
- enum severity-level {
- description
- "Only send notifications for alarm-state changes
- crossing the level specified in
- 'notify-severity-level'. Always send clear
- notifications.";
- }
- }
- must '. != "severity-level" or ../notify-severity-level' {
- description
- "When notify-status-changes is 'severity-level', a value
- must be given for 'notify-severity-level'.";
- }
- default "all-state-changes";
- description
- "This leaf controls the notifications sent for alarm status
- updates. There are three options:
-
- 1. Notifications are sent for all updates, severity-level
- changes, and alarm-text changes.
-
- 2. Notifications are only sent for alarm raise and clear.
-
- 3. Notifications are sent for status changes equal to or
- above the specified severity level. Clear
- notifications shall always be sent. Notifications
- shall also be sent for state changes that make an
- alarm less severe than the specified level.
-
- For example, in option 3, assume that the severity level
- is set to major and that the alarm has the following state
- changes:
-
- [(Time, severity, clear)]:
- [(T1, major, -), (T2, minor, -), (T3, warning, -),
- (T4, minor, -), (T5, major, -), (T6, critical, -),
- (T7, major. -), (T8, major, clear)]
-
- In that case, notifications will be sent at times
- T1, T2, T5, T6, T7, and T8.";
- }
- leaf notify-severity-level {
- when '../notify-status-changes = "severity-level"';
- type severity;
- description
- "Only send notifications for alarm-state changes crossing
- the specified level. Always send clear notifications.";
- }
- container alarm-shelving {
- if-feature "alarm-shelving";
- description
- "The 'alarm-shelving/shelf' list is used to shelve
- (block/filter) alarms. The conditions in the shelf
- criteria are logically ANDed. The first matching shelf is
- used, and an alarm is shelved only for this first match.
- Matching alarms MUST appear in the
- /alarms/shelved-alarms/shelved-alarm list, and
- non-matching /alarms MUST appear in the
- /alarms/alarm-list/alarm list. The server does not send
- any notifications for shelved alarms.
-
- The server MUST maintain states (e.g., severity
- changes) for the shelved alarms.
-
- Alarms that match the criteria shall have an
- operator state 'shelved'. When the shelf
- configuration removes an alarm from the shelf, the server
- shall add the operator state 'un-shelved'.";
- list shelf {
- key "name";
- ordered-by user;
- leaf name {
- type string;
- description
- "An arbitrary name for the alarm shelf.";
- }
- description
- "Each entry defines the criteria for shelving alarms.
- Criteria are ANDed. If no criteria are specified,
- all alarms will be shelved.";
- leaf-list resource {
- type resource-match;
- description
- "Shelve alarms for matching resources.";
- }
- list alarm-type {
- key "alarm-type-id alarm-type-qualifier-match";
- description
- "Any alarm matching the combined criteria of
- 'alarm-type-id' and 'alarm-type-qualifier-match'
- MUST be matched.";
- leaf alarm-type-id {
- type alarm-type-id;
- description
- "Shelve all alarms that have an 'alarm-type-id' that
- is equal to or derived from the given
- 'alarm-type-id'.";
- }
- leaf alarm-type-qualifier-match {
- type string;
- description
- "An XML Schema regular expression that is used to
- match an alarm type qualifier. Shelve all alarms
- that match this regular expression for the alarm
- type qualifier.";
- reference
- "XML Schema Part 2: Datatypes Second Edition,
- World Wide Web Consortium Recommendation
- REC-xmlschema-2-20041028";
- }
- }
- leaf description {
- type string;
- description
- "An optional textual description of the shelf. This
- description should include the reason for shelving
- these alarms.";
- }
- }
- }
- }
- container alarm-inventory {
- config false;
- description
- "The 'alarm-inventory/alarm-type' list contains all possible
- alarm types for the system.
-
- If the system knows for which resources a specific alarm
- type can appear, it is also identified in the inventory.
- The list also tells if each alarm type has a corresponding
- clear state. The inventory shall only contain concrete
- alarm types.
-
- The alarm inventory MUST be updated by the system when new
- alarms can appear. This can be the case when installing new
- software modules or inserting new card types. A
- notification 'alarm-inventory-changed' is sent when the
- inventory is changed.";
- list alarm-type {
- key "alarm-type-id alarm-type-qualifier";
- description
- "An entry in this list defines a possible alarm.";
- leaf alarm-type-id {
- type alarm-type-id;
- description
- "The statically defined alarm type identifier for this
- possible alarm.";
- }
- leaf alarm-type-qualifier {
- type alarm-type-qualifier;
- description
- "The optionally dynamically defined alarm type identifier
- for this possible alarm.";
- }
- leaf-list resource {
- type resource-match;
- description
- "Optionally, specifies for which resources the alarm type
- is valid.";
- }
- leaf will-clear {
- type boolean;
- mandatory true;
- description
- "This leaf tells the operator if the alarm will be
- cleared when the correct corrective action has been
- taken. Implementations SHOULD strive for detecting the
- cleared state for all alarm types.
-
- If this leaf is 'true', the operator can monitor the
- alarm until it becomes cleared after the corrective
- action has been taken.
-
- If this leaf is 'false', the operator needs to validate
- that the alarm is no longer active using other
- mechanisms. Alarms can lack a corresponding clear due
- to missing instrumentation or no logical
- corresponding clear state.";
- }
- leaf-list severity-level {
- type severity;
- description
- "This leaf-list indicates the possible severity levels of
- this alarm type. Note well that 'clear' is not part of
- the severity type. In general, the severity level
- should be defined by the instrumentation based on the
- dynamic state, rather than being defined statically by
- the alarm type, in order to provide a relevant severity
- level based on dynamic state and context. However, most
- alarm types have a defined set of possible severity
- levels, and this should be provided here.";
- }
- leaf description {
- type string;
- mandatory true;
- description
- "A description of the possible alarm. It SHOULD include
- information on possible underlying root causes and
- corrective actions.";
- }
- }
- }
- container summary {
- if-feature "alarm-summary";
- config false;
- description
- "This container gives a summary of the number of alarms.";
- list alarm-summary {
- key "severity";
- description
- "A global summary of all alarms in the system. The summary
- does not include shelved alarms.";
- leaf severity {
- type severity;
- description
- "Alarm summary for this severity level.";
- }
- leaf total {
- type yang:gauge32;
- description
- "Total number of alarms of this severity level.";
- }
- leaf not-cleared {
- type yang:gauge32;
- description
- "Total number of alarms of this severity level
- that are not cleared.";
- }
- leaf cleared {
- type yang:gauge32;
- description
- "For this severity level, the number of alarms that are
- cleared.";
- }
- leaf cleared-not-closed {
- if-feature "operator-actions";
- type yang:gauge32;
- description
- "For this severity level, the number of alarms that are
- cleared but not closed.";
- }
- leaf cleared-closed {
- if-feature "operator-actions";
- type yang:gauge32;
- description
- "For this severity level, the number of alarms that are
- cleared and closed.";
- }
- leaf not-cleared-closed {
- if-feature "operator-actions";
- type yang:gauge32;
- description
- "For this severity level, the number of alarms that are
- not cleared but closed.";
- }
- leaf not-cleared-not-closed {
- if-feature "operator-actions";
- type yang:gauge32;
- description
- "For this severity level, the number of alarms that are
- not cleared and not closed.";
- }
- }
- leaf shelves-active {
- if-feature "alarm-shelving";
- type empty;
- description
- "This is a hint to the operator that there are active
- alarm shelves. This leaf MUST exist if the
- /alarms/shelved-alarms/number-of-shelved-alarms is > 0.";
- }
- }
- container alarm-list {
- config false;
- description
- "The alarms in the system.";
- leaf number-of-alarms {
- type yang:gauge32;
- description
- "This object shows the total number of
- alarms in the system, i.e., the total number
- of entries in the alarm list.";
- }
- leaf last-changed {
- type yang:date-and-time;
- description
- "A timestamp when the alarm list was last
- changed. The value can be used by a manager to
- initiate an alarm resynchronization procedure.";
- }
- list alarm {
- key "resource alarm-type-id alarm-type-qualifier";
- description
- "The list of alarms. Each entry in the list holds one
- alarm for a given alarm type and resource. An alarm can
- be updated from the underlying resource or by the user.
- The following leafs are maintained by the resource:
- 'is-cleared', 'last-change', 'perceived-severity', and
- 'alarm-text'. An operator can change 'operator-state' and
- 'operator-text'.
-
- Entries appear in the alarm list the first time an alarm
- becomes active for a given alarm type and resource.
- Entries do not get deleted when the alarm is cleared.
- Clear status is represented as a boolean flag.
-
- Alarm entries are removed, i.e., purged, from the list by
- an explicit purge action. For example, purge all alarms
- that are cleared and in closed operator state that are
- older than 24 hours. Purged alarms are removed from the
- alarm list. If the alarm resource state changes after a
- purge, the alarm will reappear in the alarm list.
-
- Systems may also remove alarms based on locally configured
- policies; this is out of scope for this module.";
- uses common-alarm-parameters;
- leaf time-created {
- type yang:date-and-time;
- mandatory true;
- description
- "The timestamp when this alarm entry was created. This
- represents the first time the alarm appeared; it can
- also represent that the alarm reappeared after a purge.
- Further state changes of the same alarm do not change
- this leaf; these changes will update the 'last-changed'
- leaf.";
- }
- uses resource-alarm-parameters;
- list operator-state-change {
- if-feature "operator-actions";
- key "time";
- description
- "This list is used by operators to indicate the state of
- human intervention on an alarm. For example, if an
- operator has seen an alarm, the operator can add a new
- item to this list indicating that the alarm is
- acknowledged.";
- uses operator-parameters;
- }
- action set-operator-state {
- if-feature "operator-actions";
- description
- "This is a means for the operator to indicate the level
- of human intervention on an alarm.";
- input {
- leaf state {
- type writable-operator-state;
- mandatory true;
- description
- "Set this operator state.";
- }
- leaf text {
- type string;
- description
- "Additional optional textual information.";
- }
- }
- }
- notification operator-action {
- if-feature "operator-actions";
- description
- "This notification is used to report that an operator
- acted upon an alarm.";
- uses operator-parameters;
- }
- }
- action purge-alarms {
- description
- "This operation requests that the server delete entries
- from the alarm list according to the supplied criteria.
-
- Typically, this operation is used to delete alarms that
- are in closed operator state and older than a specified
- time.
-
- The number of purged alarms is returned as an output
- parameter.";
- input {
- uses filter-input;
- }
- output {
- leaf purged-alarms {
- type uint32;
- description
- "Number of purged alarms.";
- }
- }
- }
- action compress-alarms {
- if-feature "alarm-history";
- description
- "This operation requests that the server compress
- entries in the alarm list by removing all but the
- latest 'status-change' entry for all matching alarms.
- Conditions in the input are logically ANDed. If no
- input condition is given, all alarms are compressed.";
- input {
- leaf resource {
- type resource-match;
- description
- "Compress the alarms matching this resource.";
- }
- leaf alarm-type-id {
- type leafref {
- path "/alarms/alarm-list/alarm/alarm-type-id";
- require-instance false;
- }
- description
- "Compress alarms with this 'alarm-type-id'.";
- }
- leaf alarm-type-qualifier {
- type leafref {
- path "/alarms/alarm-list/alarm/alarm-type-qualifier";
- require-instance false;
- }
- description
- "Compress the alarms with this
- 'alarm-type-qualifier'.";
- }
- }
- output {
- leaf compressed-alarms {
- type uint32;
- description
- "Number of compressed alarm entries.";
- }
- }
- }
- }
- container shelved-alarms {
- if-feature "alarm-shelving";
- config false;
- description
- "The shelved alarms. Alarms appear here if they match the
- criteria in /alarms/control/alarm-shelving. This list does
- not generate any notifications. The list represents alarms
- that are considered not relevant by the operator. Alarms in
- this list have an 'operator-state' of 'shelved'. This
- cannot be changed.";
- leaf number-of-shelved-alarms {
- type yang:gauge32;
- description
- "This object shows the total number of current
- alarms, i.e., the total number of entries
- in the alarm list.";
- }
- leaf shelved-alarms-last-changed {
- type yang:date-and-time;
- description
- "A timestamp when the shelved-alarm list was last changed.
- The value can be used by a manager to initiate an alarm
- resynchronization procedure.";
- }
- list shelved-alarm {
- key "resource alarm-type-id alarm-type-qualifier";
- description
- "The list of shelved alarms. Shelved alarms can only be
- updated from the underlying resource; no operator actions
- are supported.";
- uses common-alarm-parameters;
- leaf shelf-name {
- type leafref {
- path "/alarms/control/alarm-shelving/shelf/name";
- require-instance false;
- }
- description
- "The name of the shelf.";
- }
- uses resource-alarm-parameters;
- list operator-state-change {
- if-feature "operator-actions";
- key "time";
- description
- "This list is used by operators to indicate the state of
- human intervention on an alarm. For shelved alarms, the
- system has set the list item in the list to 'shelved'.";
- uses operator-parameters;
- }
- }
- action purge-shelved-alarms {
- description
- "This operation requests that the server delete entries from
- the shelved-alarm list according to the supplied criteria.
- In the shelved-alarm list, it makes sense to delete alarms
- that are not relevant anymore.
-
- The number of purged alarms is returned as an output
- parameter.";
- input {
- uses filter-input;
- }
- output {
- leaf purged-alarms {
- type uint32;
- description
- "Number of purged alarms.";
- }
- }
- }
- action compress-shelved-alarms {
- if-feature "alarm-history";
- description
- "This operation requests that the server compress entries
- in the shelved-alarm list by removing all but the latest
- 'status-change' entry for all matching shelved alarms.
- Conditions in the input are logically ANDed. If no input
- condition is given, all alarms are compressed.";
- input {
- leaf resource {
- type leafref {
- path "/alarms/shelved-alarms/shelved-alarm/resource";
- require-instance false;
- }
- description
- "Compress the alarms with this resource.";
- }
- leaf alarm-type-id {
- type leafref {
- path "/alarms/shelved-alarms/shelved-alarm"
- + "/alarm-type-id";
- require-instance false;
- }
- description
- "Compress alarms with this 'alarm-type-id'.";
- }
- leaf alarm-type-qualifier {
- type leafref {
- path "/alarms/shelved-alarms/shelved-alarm"
- + "/alarm-type-qualifier";
- require-instance false;
- }
- description
- "Compress the alarms with this
- 'alarm-type-qualifier'.";
- }
- }
- output {
- leaf compressed-alarms {
- type uint32;
- description
- "Number of compressed alarm entries.";
- }
- }
- }
- }
- list alarm-profile {
- if-feature "alarm-profile";
- key "alarm-type-id alarm-type-qualifier-match resource";
- ordered-by user;
- description
- "This list is used to assign further information or
- configuration for each alarm type. This module supports a
- mechanism where the client can override the system-default
- alarm severity levels. The 'alarm-profile' is also a useful
- augmentation point for specific additions to alarm types.";
- leaf alarm-type-id {
- type alarm-type-id;
- description
- "The alarm type identifier to match.";
- }
- leaf alarm-type-qualifier-match {
- type string;
- description
- "An XML Schema regular expression that is used to match the
- alarm type qualifier.";
- reference
- "XML Schema Part 2: Datatypes Second Edition,
- World Wide Web Consortium Recommendation
- REC-xmlschema-2-20041028";
- }
- leaf resource {
- type resource-match;
- description
- "Specifies which resources to match.";
- }
- leaf description {
- type string;
- mandatory true;
- description
- "A description of the alarm profile.";
- }
- container alarm-severity-assignment-profile {
- if-feature "severity-assignment";
- description
- "The client can override the system-default severity
- level.";
- reference
- "ITU-T Recommendation M.3100:
- Generic network information model
- ITU-T Recommendation M.3160:
- Generic, protocol-neutral management information model";
- leaf-list severity-level {
- type severity;
- ordered-by user;
- description
- "Specifies the configured severity level(s) for the
- matching alarm. If the alarm has several severity
- levels, the leaf-list shall be given in rising severity
- order. The original M3100/M3160 ASAP function only
- allows for a one-to-one mapping between alarm type and
- severity, but since YANG module supports stateful
- alarms, the mapping must allow for several severity
- levels.
-
- Assume a high-utilization alarm type with two thresholds
- with the system-default severity levels of threshold1 =
- warning and threshold2 = minor. Setting this leaf-list
- to (minor, major) will assign the severity levels as
- threshold1 = minor and threshold2 = major";
- }
- }
- }
- }
-
- /*
- * Notifications
- */
-
- notification alarm-notification {
- description
- "This notification is used to report a state change for an
- alarm. The same notification is used for reporting a newly
- raised alarm, a cleared alarm, or changing the text and/or
- severity of an existing alarm.";
- uses common-alarm-parameters;
- uses alarm-state-change-parameters;
- }
-
- notification alarm-inventory-changed {
- description
- "This notification is used to report that the list of possible
- alarms has changed. This can happen when, for example, a new
- software module is installed or a new physical card is
- inserted.";
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/yang/ietf-hardware.yang b/sdnr/wt/devicemanager-oran/provider/src/main/yang/ietf-hardware.yang
deleted file mode 100755
index f444e26ee..000000000
--- a/sdnr/wt/devicemanager-oran/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: <https://datatracker.ietf.org/wg/netmod/>
- WG List: <mailto:netmod@ietf.org>
- Editor: Andy Bierman
- <mailto:andy@yumaworks.com>
- Editor: Martin Bjorklund
- <mailto:mbj@tail-f.com>
- Editor: Jie Dong
- <mailto:jie.dong@huawei.com>
- Editor: Dan Romascanu
- <mailto:dromasca@gmail.com>";
-
-description
- "This module contains a collection of YANG definitions for
- managing hardware.
- This data model is designed for the Network Management Datastore
- Architecture (NMDA) defined in RFC 8342.
- Copyright (c) 2018 IETF Trust and the persons identified as
- authors of the code. All rights reserved.
- Redistribution and use in source and binary forms, with or
- without modification, is permitted pursuant to, and subject
- to the license terms contained in, the Simplified BSD License
- set forth in Section 4.c of the IETF Trust's Legal Provisions
- Relating to IETF Documents
- (https://trustee.ietf.org/license-info).
- This version of this YANG module is part of RFC 8348; see
- the RFC itself for full legal notices.";
-
-revision 2018-03-13 {
- description
- "Initial revision.";
- reference
- "RFC 8348: A YANG Data Model for Hardware Management";
-}
-
-/*
- * Features
- */
-
-feature entity-mib {
- description
- "This feature indicates that the device implements
- the ENTITY-MIB.";
- reference
- "RFC 6933: Entity MIB (Version 4)";
-}
-
-feature hardware-state {
- description
- "Indicates that ENTITY-STATE-MIB objects are supported";
- reference
- "RFC 4268: Entity State MIB";
-}
-
-feature hardware-sensor {
- description
- "Indicates that ENTITY-SENSOR-MIB objects are supported";
- reference
- "RFC 3433: Entity Sensor Management Information Base";
-}
-
-/*
- * Typedefs
- */
-
-typedef admin-state {
- type enumeration {
- enum unknown {
- value 1;
- description
- "The resource is unable to report administrative state.";
- }
- enum locked {
- value 2;
- description
- "The resource is administratively prohibited from use.";
- }
- enum shutting-down {
- value 3;
- description
- "The resource usage is administratively limited to current
- instances of use.";
- }
- enum unlocked {
- value 4;
- description
- "The resource is not administratively prohibited from
- use.";
- }
- }
- description
- "Represents the various possible administrative states.";
- reference
- "RFC 4268: Entity State MIB - EntityAdminState";
-}
-
-typedef oper-state {
- type enumeration {
- enum unknown {
- value 1;
- description
- "The resource is unable to report its operational state.";
- }
- enum disabled {
- value 2;
- description
- "The resource is totally inoperable.";
- }
- enum enabled {
- value 3;
-
- description
- "The resource is partially or fully operable.";
- }
- enum testing {
- value 4;
- description
- "The resource is currently being tested and cannot
- therefore report whether or not it is operational.";
- }
- }
- description
- "Represents the possible values of operational states.";
- reference
- "RFC 4268: Entity State MIB - EntityOperState";
-}
-
-typedef usage-state {
- type enumeration {
- enum unknown {
- value 1;
- description
- "The resource is unable to report usage state.";
- }
- enum idle {
- value 2;
- description
- "The resource is servicing no users.";
- }
- enum active {
- value 3;
- description
- "The resource is currently in use, and it has sufficient
- spare capacity to provide for additional users.";
- }
- enum busy {
- value 4;
- description
- "The resource is currently in use, but it currently has no
- spare capacity to provide for additional users.";
- }
- }
- description
- "Represents the possible values of usage states.";
- reference
- "RFC 4268: Entity State MIB - EntityUsageState";
-}
-
-typedef alarm-state {
- type bits {
- bit unknown {
- position 0;
- description
- "The resource is unable to report alarm state.";
- }
- bit under-repair {
- position 1;
- description
- "The resource is currently being repaired, which, depending
- on the implementation, may make the other values in this
- bit string not meaningful.";
- }
- bit critical {
- position 2;
- description
- "One or more critical alarms are active against the
- resource.";
- }
- bit major {
- position 3;
- description
- "One or more major alarms are active against the
- resource.";
- }
- bit minor {
- position 4;
- description
- "One or more minor alarms are active against the
- resource.";
- }
- bit warning {
- position 5;
- description
- "One or more warning alarms are active against the
- resource.";
- }
- bit indeterminate {
- position 6;
- description
- "One or more alarms of whose perceived severity cannot be
- determined are active against this resource.";
- }
- }
- description
- "Represents the possible values of alarm states. An alarm is a
- persistent indication of an error or warning condition.
- When no bits of this attribute are set, then no active alarms
- are known against this component and it is not under repair.";
- reference
- "RFC 4268: Entity State MIB - EntityAlarmStatus";
-}
-
-typedef standby-state {
- type enumeration {
- enum unknown {
- value 1;
- description
- "The resource is unable to report standby state.";
- }
- enum hot-standby {
- value 2;
- description
- "The resource is not providing service, but it will be
- immediately able to take over the role of the resource to
- be backed up, without the need for initialization
- activity, and will contain the same information as the
- resource to be backed up.";
- }
- enum cold-standby {
- value 3;
- description
- "The resource is to back up another resource, but it will
- not be immediately able to take over the role of a
- resource to be backed up and will require some
- initialization activity.";
- }
- enum providing-service {
- value 4;
- description
- "The resource is providing service.";
- }
- }
- description
- "Represents the possible values of standby states.";
- reference
- "RFC 4268: Entity State MIB - EntityStandbyStatus";
-}
-
-typedef sensor-value-type {
- type enumeration {
- enum other {
- value 1;
- description
- "A measure other than those listed below.";
- }
- enum unknown {
- value 2;
- description
- "An unknown measurement or arbitrary, relative numbers";
- }
- enum volts-AC {
- value 3;
- description
- "A measure of electric potential (alternating current).";
- }
- enum volts-DC {
- value 4;
- description
- "A measure of electric potential (direct current).";
- }
- enum amperes {
- value 5;
- description
- "A measure of electric current.";
- }
- enum watts {
- value 6;
- description
- "A measure of power.";
- }
- enum hertz {
- value 7;
- description
- "A measure of frequency.";
- }
- enum celsius {
- value 8;
- description
- "A measure of temperature.";
- }
- enum percent-RH {
- value 9;
- description
- "A measure of percent relative humidity.";
- }
- enum rpm {
- value 10;
- description
- "A measure of shaft revolutions per minute.";
- }
- enum cmm {
- value 11;
- description
- "A measure of cubic meters per minute (airflow).";
- }
- enum truth-value {
- value 12;
- description
- "Value is one of 1 (true) or 2 (false)";
- }
- }
- description
- "A node using this data type represents the sensor measurement
- data type associated with a physical sensor value. The actual
- data units are determined by examining a node of this type
- together with the associated sensor-value-scale node.
- A node of this type SHOULD be defined together with nodes of
- type sensor-value-scale and type sensor-value-precision.
- These three types are used to identify the semantics of a node
- of type sensor-value.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- EntitySensorDataType";
-}
-
-typedef sensor-value-scale {
- type enumeration {
- enum yocto {
- value 1;
- description
- "Data scaling factor of 10^-24.";
- }
- enum zepto {
- value 2;
- description
- "Data scaling factor of 10^-21.";
- }
- enum atto {
- value 3;
- description
- "Data scaling factor of 10^-18.";
- }
- enum femto {
- value 4;
- description
- "Data scaling factor of 10^-15.";
- }
- enum pico {
- value 5;
- description
- "Data scaling factor of 10^-12.";
- }
- enum nano {
- value 6;
- description
- "Data scaling factor of 10^-9.";
- }
- enum micro {
- value 7;
- description
- "Data scaling factor of 10^-6.";
- }
- enum milli {
- value 8;
- description
- "Data scaling factor of 10^-3.";
- }
- enum units {
- value 9;
- description
- "Data scaling factor of 10^0.";
- }
- enum kilo {
- value 10;
- description
- "Data scaling factor of 10^3.";
- }
- enum mega {
- value 11;
- description
- "Data scaling factor of 10^6.";
- }
- enum giga {
- value 12;
- description
- "Data scaling factor of 10^9.";
- }
- enum tera {
- value 13;
- description
- "Data scaling factor of 10^12.";
- }
- enum peta {
- value 14;
- description
- "Data scaling factor of 10^15.";
- }
- enum exa {
- value 15;
- description
- "Data scaling factor of 10^18.";
- }
- enum zetta {
- value 16;
- description
- "Data scaling factor of 10^21.";
- }
- enum yotta {
- value 17;
- description
- "Data scaling factor of 10^24.";
- }
- }
- description
- "A node using this data type represents a data scaling factor,
- represented with an International System of Units (SI) prefix.
- The actual data units are determined by examining a node of
- this type together with the associated sensor-value-type.
- A node of this type SHOULD be defined together with nodes of
- type sensor-value-type and type sensor-value-precision.
- Together, associated nodes of these three types are used to
- identify the semantics of a node of type sensor-value.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- EntitySensorDataScale";
-}
-
-typedef sensor-value-precision {
- type int8 {
- range "-8 .. 9";
- }
- description
- "A node using this data type represents a sensor value
- precision range.
- A node of this type SHOULD be defined together with nodes of
- type sensor-value-type and type sensor-value-scale. Together,
- associated nodes of these three types are used to identify the
- semantics of a node of type sensor-value.
- If a node of this type contains a value in the range 1 to 9,
- it represents the number of decimal places in the fractional
- part of an associated sensor-value fixed-point number.
- If a node of this type contains a value in the range -8 to -1,
- it represents the number of accurate digits in the associated
- sensor-value fixed-point number.
- The value zero indicates the associated sensor-value node is
- not a fixed-point number.
- Server implementers must choose a value for the associated
- sensor-value-precision node so that the precision and accuracy
- of the associated sensor-value node is correctly indicated.
- For example, a component representing a temperature sensor
- that can measure 0 to 100 degrees C in 0.1 degree
- increments, +/- 0.05 degrees, would have a
- sensor-value-precision value of '1', a sensor-value-scale
- value of 'units', and a sensor-value ranging from '0' to
- '1000'. The sensor-value would be interpreted as
- 'degrees C * 10'.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- EntitySensorPrecision";
-}
-
-typedef sensor-value {
- type int32 {
- range "-1000000000 .. 1000000000";
- }
- description
- "A node using this data type represents a sensor value.
- A node of this type SHOULD be defined together with nodes of
- type sensor-value-type, type sensor-value-scale, and
- type sensor-value-precision. Together, associated nodes of
- those three types are used to identify the semantics of a node
- of this data type.
- The semantics of a node using this data type are determined by
- the value of the associated sensor-value-type node.
- If the associated sensor-value-type node is equal to 'voltsAC',
- 'voltsDC', 'amperes', 'watts', 'hertz', 'celsius', or 'cmm',
- then a node of this type MUST contain a fixed-point number
- ranging from -999,999,999 to +999,999,999. The value
- -1000000000 indicates an underflow error. The value
- +1000000000 indicates an overflow error. The
- sensor-value-precision indicates how many fractional digits
- are represented in the associated sensor-value node.
- If the associated sensor-value-type node is equal to
- 'percentRH', then a node of this type MUST contain a number
- ranging from 0 to 100.
- If the associated sensor-value-type node is equal to 'rpm',
- then a node of this type MUST contain a number ranging from
- -999,999,999 to +999,999,999.
- If the associated sensor-value-type node is equal to
- 'truth-value', then a node of this type MUST contain either the
- value 1 (true) or the value 2 (false).
- If the associated sensor-value-type node is equal to 'other' or
- 'unknown', then a node of this type MUST contain a number
- ranging from -1000000000 to 1000000000.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- EntitySensorValue";
-}
-
-typedef sensor-status {
- type enumeration {
- enum ok {
- value 1;
- description
- "Indicates that the server can obtain the sensor value.";
- }
- enum unavailable {
- value 2;
- description
- "Indicates that the server presently cannot obtain the
- sensor value.";
- }
- enum nonoperational {
- value 3;
- description
- "Indicates that the server believes the sensor is broken.
- The sensor could have a hard failure (disconnected wire)
- or a soft failure such as out-of-range, jittery, or wildly
- fluctuating readings.";
- }
- }
- description
- "A node using this data type represents the operational status
- of a physical sensor.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- EntitySensorStatus";
-}
-
-/*
- * Data nodes
- */
-
-container hardware {
- description
- "Data nodes representing components.
- If the server supports configuration of hardware components,
- then this data model is instantiated in the configuration
- datastores supported by the server. The leaf-list 'datastore'
- for the module 'ietf-hardware' in the YANG library provides
- this information.";
-
- leaf last-change {
- type yang:date-and-time;
- config false;
- description
- "The time the '/hardware/component' list changed in the
- operational state.";
- }
-
- list component {
- key name;
- description
- "List of components.
- When the server detects a new hardware component, it
- initializes a list entry in the operational state.
- If the server does not support configuration of hardware
- components, list entries in the operational state are
- initialized with values for all nodes as detected by the
- implementation.
- Otherwise, this procedure is followed:
- 1. If there is an entry in the '/hardware/component' list
- in the intended configuration with values for the nodes
- 'class', 'parent', and 'parent-rel-pos' that are equal
- to the detected values, then the list entry in the
- operational state is initialized with the configured
- values, including the 'name'.
- 2. Otherwise (i.e., there is no matching configuration
- entry), the list entry in the operational state is
- initialized with values for all nodes as detected by
- the implementation.
- If the '/hardware/component' list in the intended
- configuration is modified, then the system MUST behave as if
- it re-initializes itself and follow the procedure in (1).";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalEntry";
-
- leaf name {
- type string;
- description
- "The name assigned to this component.
- This name is not required to be the same as
- entPhysicalName.";
- }
-
- leaf class {
- type identityref {
- base ianahw:hardware-class;
- }
- mandatory true;
- description
- "An indication of the general hardware type of the
- component.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalClass";
- }
-
- leaf physical-index {
- if-feature entity-mib;
- type int32 {
- range "1..2147483647";
- }
- config false;
- description
- "The entPhysicalIndex for the entPhysicalEntry represented
- by this list entry.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalIndex";
- }
-
- leaf description {
- type string;
- config false;
- description
- "A textual description of the component. This node should
- contain a string that identifies the manufacturer's name
- for the component and should be set to a distinct value
- for each version or model of the component.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalDescr";
- }
-
- leaf parent {
- type leafref {
- path "../../component/name";
- require-instance false;
- }
- description
- "The name of the component that physically contains this
- component.
- If this leaf is not instantiated, it indicates that this
- component is not contained in any other component.
- In the event that a physical component is contained by
- more than one physical component (e.g., double-wide
- modules), this node contains the name of one of these
- components. An implementation MUST use the same name
- every time this node is instantiated.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalContainedIn";
- }
-
- leaf parent-rel-pos {
- type int32 {
- range "0 .. 2147483647";
- }
- description
- "An indication of the relative position of this child
- component among all its sibling components. Sibling
- components are defined as components that:
- o share the same value of the 'parent' node and
- o share a common base identity for the 'class' node.
- Note that the last rule gives implementations flexibility
- in how components are numbered. For example, some
- implementations might have a single number series for all
- components derived from 'ianahw:port', while some others
- might have different number series for different
- components with identities derived from 'ianahw:port' (for
- example, one for registered jack 45 (RJ45) and one for
- small form-factor pluggable (SFP)).";
-
- reference
- "RFC 6933: Entity MIB (Version 4) -
- entPhysicalParentRelPos";
- }
-
- leaf-list contains-child {
- type leafref {
- path "../../component/name";
- }
- config false;
- description
- "The name of the contained component.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalChildIndex";
- }
-
- leaf hardware-rev {
- type string;
- config false;
- description
- "The vendor-specific hardware revision string for the
- component. The preferred value is the hardware revision
- identifier actually printed on the component itself (if
- present).";
- reference
- "RFC 6933: Entity MIB (Version 4) -
- entPhysicalHardwareRev";
- }
-
- leaf firmware-rev {
- type string;
- config false;
- description
- "The vendor-specific firmware revision string for the
- component.";
- reference
- "RFC 6933: Entity MIB (Version 4) -
- entPhysicalFirmwareRev";
- }
-
- leaf software-rev {
- type string;
- config false;
-
- description
- "The vendor-specific software revision string for the
- component.";
- reference
- "RFC 6933: Entity MIB (Version 4) -
- entPhysicalSoftwareRev";
- }
-
- leaf serial-num {
- type string;
- config false;
- description
- "The vendor-specific serial number string for the
- component. The preferred value is the serial number
- string actually printed on the component itself (if
- present).";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalSerialNum";
- }
-
- leaf mfg-name {
- type string;
- config false;
- description
- "The name of the manufacturer of this physical component.
- The preferred value is the manufacturer name string
- actually printed on the component itself (if present).
- Note that comparisons between instances of the
- 'model-name', 'firmware-rev', 'software-rev', and
- 'serial-num' nodes are only meaningful amongst components
- with the same value of 'mfg-name'.
- If the manufacturer name string associated with the
- physical component is unknown to the server, then this
- node is not instantiated.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgName";
- }
-
- leaf model-name {
- type string;
- config false;
- description
- "The vendor-specific model name identifier string
- associated with this physical component. The preferred
- value is the customer-visible part number, which may be
- printed on the component itself.
- If the model name string associated with the physical
- component is unknown to the server, then this node is not
- instantiated.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalModelName";
- }
-
- leaf alias {
- type string;
- description
- "An 'alias' name for the component, as specified by a
- network manager, that provides a non-volatile 'handle' for
- the component.
- If no configured value exists, the server MAY set the
- value of this node to a locally unique value in the
- operational state.
- A server implementation MAY map this leaf to the
- entPhysicalAlias MIB object. Such an implementation needs
- to use some mechanism to handle the differences in size
- and characters allowed between this leaf and
- entPhysicalAlias. The definition of such a mechanism is
- outside the scope of this document.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalAlias";
- }
-
- leaf asset-id {
- type string;
- description
- "This node is a user-assigned asset tracking identifier for
- the component.
- A server implementation MAY map this leaf to the
- entPhysicalAssetID MIB object. Such an implementation
- needs to use some mechanism to handle the differences in
- size and characters allowed between this leaf and
- entPhysicalAssetID. The definition of such a mechanism is
- outside the scope of this document.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalAssetID";
- }
-
- leaf is-fru {
- type boolean;
- config false;
-
- description
- "This node indicates whether or not this component is
- considered a 'field-replaceable unit' by the vendor. If
- this node contains the value 'true', then this component
- identifies a field-replaceable unit. For all components
- that are permanently contained within a field-replaceable
- unit, the value 'false' should be returned for this
- node.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalIsFRU";
- }
-
- leaf mfg-date {
- type yang:date-and-time;
- config false;
- description
- "The date of manufacturing of the managed component.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgDate";
- }
-
- leaf-list uri {
- type inet:uri;
- description
- "This node contains identification information about the
- component.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalUris";
- }
-
- leaf uuid {
- type yang:uuid;
- config false;
- description
- "A Universally Unique Identifier of the component.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalUUID";
- }
-
- container state {
- if-feature hardware-state;
- description
- "State-related nodes";
- reference
- "RFC 4268: Entity State MIB";
-
- leaf state-last-changed {
- type yang:date-and-time;
- config false;
- description
- "The date and time when the value of any of the
- admin-state, oper-state, usage-state, alarm-state, or
- standby-state changed for this component.
- If there has been no change since the last
- re-initialization of the local system, this node
- contains the date and time of local system
- initialization. If there has been no change since the
- component was added to the local system, this node
- contains the date and time of the insertion.";
- reference
- "RFC 4268: Entity State MIB - entStateLastChanged";
- }
-
- leaf admin-state {
- type admin-state;
- description
- "The administrative state for this component.
- This node refers to a component's administrative
- permission to service both other components within its
- containment hierarchy as well other users of its
- services defined by means outside the scope of this
- module.
- Some components exhibit only a subset of the remaining
- administrative state values. Some components cannot be
- locked; hence, this node exhibits only the 'unlocked'
- state. Other components cannot be shut down gracefully;
- hence, this node does not exhibit the 'shutting-down'
- state.";
- reference
- "RFC 4268: Entity State MIB - entStateAdmin";
- }
-
- leaf oper-state {
- type oper-state;
- config false;
- description
- "The operational state for this component.
- Note that this node does not follow the administrative
- state. An administrative state of 'down' does not
- predict an operational state of 'disabled'.
- Note that some implementations may not be able to
- accurately report oper-state while the admin-state node
- has a value other than 'unlocked'. In these cases, this
- node MUST have a value of 'unknown'.";
- reference
- "RFC 4268: Entity State MIB - entStateOper";
- }
-
- leaf usage-state {
- type usage-state;
- config false;
- description
- "The usage state for this component.
- This node refers to a component's ability to service
- more components in a containment hierarchy.
- Some components will exhibit only a subset of the usage
- state values. Components that are unable to ever
- service any components within a containment hierarchy
- will always have a usage state of 'busy'. In some
- cases, a component will be able to support only one
- other component within its containment hierarchy and
- will therefore only exhibit values of 'idle' and
- 'busy'.";
- reference
- "RFC 4268: Entity State MIB - entStateUsage";
- }
-
- leaf alarm-state {
- type alarm-state;
- config false;
- description
- "The alarm state for this component. It does not
- include the alarms raised on child components within its
- containment hierarchy.";
- reference
- "RFC 4268: Entity State MIB - entStateAlarm";
- }
-
- leaf standby-state {
- type standby-state;
- config false;
- description
- "The standby state for this component.
- Some components will exhibit only a subset of the
- remaining standby state values. If this component
- cannot operate in a standby role, the value of this node
- will always be 'providing-service'.";
- reference
- "RFC 4268: Entity State MIB - entStateStandby";
- }
- }
-
- container sensor-data {
- when 'derived-from-or-self(../class,
- "ianahw:sensor")' {
- description
- "Sensor data nodes present for any component of type
- 'sensor'";
- }
- if-feature hardware-sensor;
- config false;
-
- description
- "Sensor-related nodes.";
- reference
- "RFC 3433: Entity Sensor Management Information Base";
-
- leaf value {
- type sensor-value;
- description
- "The most recent measurement obtained by the server
- for this sensor.
- A client that periodically fetches this node should also
- fetch the nodes 'value-type', 'value-scale', and
- 'value-precision', since they may change when the value
- is changed.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorValue";
- }
-
- leaf value-type {
- type sensor-value-type;
- description
- "The type of data units associated with the
- sensor value";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorType";
- }
- leaf value-scale {
- type sensor-value-scale;
- description
- "The (power of 10) scaling factor associated
- with the sensor value";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorScale";
- }
-
- leaf value-precision {
- type sensor-value-precision;
- description
- "The number of decimal places of precision
- associated with the sensor value";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorPrecision";
- }
-
- leaf oper-status {
- type sensor-status;
- description
- "The operational status of the sensor.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorOperStatus";
- }
-
- leaf units-display {
- type string;
- description
- "A textual description of the data units that should be
- used in the display of the sensor value.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorUnitsDisplay";
- }
-
- leaf value-timestamp {
- type yang:date-and-time;
- description
- "The time the status and/or value of this sensor was last
- obtained by the server.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorValueTimeStamp";
- }
- leaf value-update-rate {
- type uint32;
- units "milliseconds";
- description
- "An indication of the frequency that the server updates
- the associated 'value' node, represented in
- milliseconds. The value zero indicates:
- - the sensor value is updated on demand (e.g.,
- when polled by the server for a get-request),
- - the sensor value is updated when the sensor
- value changes (event-driven), or
- - the server does not know the update rate.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorValueUpdateRate";
- }
- }
- }
-}
-
-/*
- * Notifications
- */
-
-notification hardware-state-change {
- description
- "A hardware-state-change notification is generated when the
- value of /hardware/last-change changes in the operational
- state.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entConfigChange";
-}
-
-notification hardware-state-oper-enabled {
- if-feature hardware-state;
- description
- "A hardware-state-oper-enabled notification signifies that a
- component has transitioned into the 'enabled' state.";
-
- leaf name {
- type leafref {
- path "/hardware/component/name";
- }
-
- description
- "The name of the component that has transitioned into the
- 'enabled' state.";
- }
- leaf admin-state {
- type leafref {
- path "/hardware/component/state/admin-state";
- }
- description
- "The administrative state for the component.";
- }
- leaf alarm-state {
- type leafref {
- path "/hardware/component/state/alarm-state";
- }
- description
- "The alarm state for the component.";
- }
- reference
- "RFC 4268: Entity State MIB - entStateOperEnabled";
-}
-
-notification hardware-state-oper-disabled {
- if-feature hardware-state;
- description
- "A hardware-state-oper-disabled notification signifies that a
- component has transitioned into the 'disabled' state.";
-
- leaf name {
- type leafref {
- path "/hardware/component/name";
- }
- description
- "The name of the component that has transitioned into the
- 'disabled' state.";
- }
- leaf admin-state {
- type leafref {
- path "/hardware/component/state/admin-state";
- }
- description
- "The administrative state for the component.";
- }
- leaf alarm-state {
- type leafref {
- path "/hardware/component/state/alarm-state";
- }
-
- description
- "The alarm state for the component.";
- }
- reference
- "RFC 4268: Entity State MIB - entStateOperDisabled";
-}
-
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/yang/ietf-interfaces.yang b/sdnr/wt/devicemanager-oran/provider/src/main/yang/ietf-interfaces.yang
deleted file mode 100644
index 8dae9d3e2..000000000
--- a/sdnr/wt/devicemanager-oran/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: <https://datatracker.ietf.org/wg/netmod/>
- WG List: <mailto:netmod@ietf.org>
- Editor: Martin Bjorklund
- <mailto:mbj@tail-f.com>";
-
- description
- "This module contains a collection of YANG definitions for
- managing network interfaces.
- Copyright (c) 2018 IETF Trust and the persons identified as
- authors of the code. All rights reserved.
- Redistribution and use in source and binary forms, with or
- without modification, is permitted pursuant to, and subject
- to the license terms contained in, the Simplified BSD License
- set forth in Section 4.c of the IETF Trust's Legal Provisions
- Relating to IETF Documents
- (https://trustee.ietf.org/license-info).
- This version of this YANG module is part of RFC 8343; see
- the RFC itself for full legal notices.";
-
- revision 2018-02-20 {
- description
- "Updated to support NMDA.";
- reference
- "RFC 8343: A YANG Data Model for Interface Management";
- }
-
- revision 2014-05-08 {
- description
- "Initial revision.";
- reference
- "RFC 7223: A YANG Data Model for Interface Management";
- }
-
- /*
- * Typedefs
- */
-
- typedef interface-ref {
- type leafref {
- path "/if:interfaces/if:interface/if:name";
- }
- description
- "This type is used by data models that need to reference
- interfaces.";
- }
-
- /*
- * Identities
- */
-
- identity interface-type {
- description
- "Base identity from which specific interface types are
- derived.";
- }
-
- /*
- * Features
- */
-
- feature arbitrary-names {
- description
- "This feature indicates that the device allows user-controlled
- interfaces to be named arbitrarily.";
- }
- feature pre-provisioning {
- description
- "This feature indicates that the device supports
- pre-provisioning of interface configuration, i.e., it is
- possible to configure an interface whose physical interface
- hardware is not present on the device.";
- }
- feature if-mib {
- description
- "This feature indicates that the device implements
- the IF-MIB.";
- reference
- "RFC 2863: The Interfaces Group MIB";
- }
-
- /*
- * Data nodes
- */
-
- container interfaces {
- description
- "Interface parameters.";
-
- list interface {
- key "name";
-
- description
- "The list of interfaces on the device.
- The status of an interface is available in this list in the
- operational state. If the configuration of a
- system-controlled interface cannot be used by the system
- (e.g., the interface hardware present does not match the
- interface type), then the configuration is not applied to
- the system-controlled interface shown in the operational
- state. If the configuration of a user-controlled interface
- cannot be used by the system, the configured interface is
- not instantiated in the operational state.
- System-controlled interfaces created by the system are
- always present in this list in the operational state,
- whether or not they are configured.";
-
- leaf name {
- type string;
- description
- "The name of the interface.
- A device MAY restrict the allowed values for this leaf,
- possibly depending on the type of the interface.
- For system-controlled interfaces, this leaf is the
- device-specific name of the interface.
- If a client tries to create configuration for a
- system-controlled interface that is not present in the
- operational state, the server MAY reject the request if
- the implementation does not support pre-provisioning of
- interfaces or if the name refers to an interface that can
- never exist in the system. A Network Configuration
- Protocol (NETCONF) server MUST reply with an rpc-error
- with the error-tag 'invalid-value' in this case.
- If the device supports pre-provisioning of interface
- configuration, the 'pre-provisioning' feature is
- advertised.
- If the device allows arbitrarily named user-controlled
- interfaces, the 'arbitrary-names' feature is advertised.
- When a configured user-controlled interface is created by
- the system, it is instantiated with the same name in the
- operational state.
- A server implementation MAY map this leaf to the ifName
- MIB object. Such an implementation needs to use some
- mechanism to handle the differences in size and characters
- allowed between this leaf and ifName. The definition of
- such a mechanism is outside the scope of this document.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifName";
- }
-
- leaf description {
- type string;
- description
- "A textual description of the interface.
- A server implementation MAY map this leaf to the ifAlias
- MIB object. Such an implementation needs to use some
- mechanism to handle the differences in size and characters
- allowed between this leaf and ifAlias. The definition of
- such a mechanism is outside the scope of this document.
- Since ifAlias is defined to be stored in non-volatile
- storage, the MIB implementation MUST map ifAlias to the
- value of 'description' in the persistently stored
- configuration.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifAlias";
- }
-
- leaf type {
- type identityref {
- base interface-type;
- }
- mandatory true;
- description
- "The type of the interface.
- When an interface entry is created, a server MAY
- initialize the type leaf with a valid value, e.g., if it
- is possible to derive the type from the name of the
- interface.
- If a client tries to set the type of an interface to a
- value that can never be used by the system, e.g., if the
- type is not supported or if the type does not match the
- name of the interface, the server MUST reject the request.
- A NETCONF server MUST reply with an rpc-error with the
- error-tag 'invalid-value' in this case.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifType";
- }
-
- leaf enabled {
- type boolean;
- default "true";
- description
- "This leaf contains the configured, desired state of the
- interface.
- Systems that implement the IF-MIB use the value of this
- leaf in the intended configuration to set
- IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
- has been initialized, as described in RFC 2863.
- Changes in this leaf in the intended configuration are
- reflected in ifAdminStatus.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
- }
-
- leaf link-up-down-trap-enable {
- if-feature if-mib;
- type enumeration {
- enum enabled {
- value 1;
- description
- "The device will generate linkUp/linkDown SNMP
- notifications for this interface.";
- }
- enum disabled {
- value 2;
- description
- "The device will not generate linkUp/linkDown SNMP
- notifications for this interface.";
- }
- }
- description
- "Controls whether linkUp/linkDown SNMP notifications
- should be generated for this interface.
- If this node is not configured, the value 'enabled' is
- operationally used by the server for interfaces that do
- not operate on top of any other interface (i.e., there are
- no 'lower-layer-if' entries), and 'disabled' otherwise.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifLinkUpDownTrapEnable";
- }
-
- leaf admin-status {
- if-feature if-mib;
- type enumeration {
- enum up {
- value 1;
- description
- "Ready to pass packets.";
- }
- enum down {
- value 2;
- description
- "Not ready to pass packets and not in some test mode.";
- }
- enum testing {
- value 3;
- description
- "In some test mode.";
- }
- }
- config false;
- mandatory true;
- description
- "The desired state of the interface.
- This leaf has the same read semantics as ifAdminStatus.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
- }
-
- leaf oper-status {
- type enumeration {
- enum up {
- value 1;
- description
- "Ready to pass packets.";
- }
- enum down {
- value 2;
-
- description
- "The interface does not pass any packets.";
- }
- enum testing {
- value 3;
- description
- "In some test mode. No operational packets can
- be passed.";
- }
- enum unknown {
- value 4;
- description
- "Status cannot be determined for some reason.";
- }
- enum dormant {
- value 5;
- description
- "Waiting for some external event.";
- }
- enum not-present {
- value 6;
- description
- "Some component (typically hardware) is missing.";
- }
- enum lower-layer-down {
- value 7;
- description
- "Down due to state of lower-layer interface(s).";
- }
- }
- config false;
- mandatory true;
- description
- "The current operational state of the interface.
- This leaf has the same semantics as ifOperStatus.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifOperStatus";
- }
-
- leaf last-change {
- type yang:date-and-time;
- config false;
- description
- "The time the interface entered its current operational
- state. If the current state was entered prior to the
- last re-initialization of the local network management
- subsystem, then this node is not present.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifLastChange";
- }
-
- leaf if-index {
- if-feature if-mib;
- type int32 {
- range "1..2147483647";
- }
- config false;
- mandatory true;
- description
- "The ifIndex value for the ifEntry represented by this
- interface.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifIndex";
- }
-
- leaf phys-address {
- type yang:phys-address;
- config false;
- description
- "The interface's address at its protocol sub-layer. For
- example, for an 802.x interface, this object normally
- contains a Media Access Control (MAC) address. The
- interface's media-specific modules must define the bit
- and byte ordering and the format of the value of this
- object. For interfaces that do not have such an address
- (e.g., a serial line), this node is not present.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
- }
-
- leaf-list higher-layer-if {
- type interface-ref;
- config false;
- description
- "A list of references to interfaces layered on top of this
- interface.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifStackTable";
- }
-
- leaf-list lower-layer-if {
- type interface-ref;
- config false;
-
- description
- "A list of references to interfaces layered underneath this
- interface.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifStackTable";
- }
-
- leaf speed {
- type yang:gauge64;
- units "bits/second";
- config false;
- description
- "An estimate of the interface's current bandwidth in bits
- per second. For interfaces that do not vary in
- bandwidth or for those where no accurate estimation can
- be made, this node should contain the nominal bandwidth.
- For interfaces that have no concept of bandwidth, this
- node is not present.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifSpeed, ifHighSpeed";
- }
-
- container statistics {
- config false;
- description
- "A collection of interface-related statistics objects.";
-
- leaf discontinuity-time {
- type yang:date-and-time;
- mandatory true;
- description
- "The time on the most recent occasion at which any one or
- more of this interface's counters suffered a
- discontinuity. If no such discontinuities have occurred
- since the last re-initialization of the local management
- subsystem, then this node contains the time the local
- management subsystem re-initialized itself.";
- }
-
- leaf in-octets {
- type yang:counter64;
- description
- "The total number of octets received on the interface,
- including framing characters.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
- }
-
- leaf in-unicast-pkts {
- type yang:counter64;
- description
- "The number of packets, delivered by this sub-layer to a
- higher (sub-)layer, that were not addressed to a
- multicast or broadcast address at this sub-layer.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
- }
-
- leaf in-broadcast-pkts {
- type yang:counter64;
- description
- "The number of packets, delivered by this sub-layer to a
- higher (sub-)layer, that were addressed to a broadcast
- address at this sub-layer.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCInBroadcastPkts";
- }
-
- leaf in-multicast-pkts {
- type yang:counter64;
- description
- "The number of packets, delivered by this sub-layer to a
- higher (sub-)layer, that were addressed to a multicast
- address at this sub-layer. For a MAC-layer protocol,
- this includes both Group and Functional addresses.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCInMulticastPkts";
- }
-
- leaf in-discards {
- type yang:counter32;
- description
- "The number of inbound packets that were chosen to be
- discarded even though no errors had been detected to
- prevent their being deliverable to a higher-layer
- protocol. One possible reason for discarding such a
- packet could be to free up buffer space.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifInDiscards";
- }
-
- leaf in-errors {
- type yang:counter32;
- description
- "For packet-oriented interfaces, the number of inbound
- packets that contained errors preventing them from being
- deliverable to a higher-layer protocol. For character-
- oriented or fixed-length interfaces, the number of
- inbound transmission units that contained errors
- preventing them from being deliverable to a higher-layer
- protocol.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifInErrors";
- }
-
- leaf in-unknown-protos {
- type yang:counter32;
-
- description
- "For packet-oriented interfaces, the number of packets
- received via the interface that were discarded because
- of an unknown or unsupported protocol. For
- character-oriented or fixed-length interfaces that
- support protocol multiplexing, the number of
- transmission units received via the interface that were
- discarded because of an unknown or unsupported protocol.
- For any interface that does not support protocol
- multiplexing, this counter is not present.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
- }
-
- leaf out-octets {
- type yang:counter64;
- description
- "The total number of octets transmitted out of the
- interface, including framing characters.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
- }
-
- leaf out-unicast-pkts {
- type yang:counter64;
- description
- "The total number of packets that higher-level protocols
- requested be transmitted and that were not addressed
- to a multicast or broadcast address at this sub-layer,
- including those that were discarded or not sent.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
- }
-
- leaf out-broadcast-pkts {
- type yang:counter64;
- description
- "The total number of packets that higher-level protocols
- requested be transmitted and that were addressed to a
- broadcast address at this sub-layer, including those
- that were discarded or not sent.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCOutBroadcastPkts";
- }
-
- leaf out-multicast-pkts {
- type yang:counter64;
- description
- "The total number of packets that higher-level protocols
- requested be transmitted and that were addressed to a
- multicast address at this sub-layer, including those
- that were discarded or not sent. For a MAC-layer
- protocol, this includes both Group and Functional
- addresses.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCOutMulticastPkts";
- }
-
- leaf out-discards {
- type yang:counter32;
- description
- "The number of outbound packets that were chosen to be
- discarded even though no errors had been detected to
- prevent their being transmitted. One possible reason
- for discarding such a packet could be to free up buffer
- space.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
- }
-
- leaf out-errors {
- type yang:counter32;
- description
- "For packet-oriented interfaces, the number of outbound
- packets that could not be transmitted because of errors.
- For character-oriented or fixed-length interfaces, the
- number of outbound transmission units that could not be
- transmitted because of errors.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifOutErrors";
- }
- }
-
- }
- }
-
- /*
- * Legacy typedefs
- */
-
- typedef interface-state-ref {
- type leafref {
- path "/if:interfaces-state/if:interface/if:name";
- }
- status deprecated;
- description
- "This type is used by data models that need to reference
- the operationally present interfaces.";
- }
-
- /*
- * Legacy operational state data nodes
- */
-
- container interfaces-state {
- config false;
- status deprecated;
- description
- "Data nodes for the operational state of interfaces.";
-
- list interface {
- key "name";
- status deprecated;
-
- description
- "The list of interfaces on the device.
- System-controlled interfaces created by the system are
- always present in this list, whether or not they are
- configured.";
-
- leaf name {
- type string;
- status deprecated;
- description
- "The name of the interface.
- A server implementation MAY map this leaf to the ifName
- MIB object. Such an implementation needs to use some
- mechanism to handle the differences in size and characters
- allowed between this leaf and ifName. The definition of
- such a mechanism is outside the scope of this document.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifName";
- }
-
- leaf type {
- type identityref {
- base interface-type;
- }
- mandatory true;
- status deprecated;
- description
- "The type of the interface.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifType";
- }
-
- leaf admin-status {
- if-feature if-mib;
- type enumeration {
- enum up {
- value 1;
- description
- "Ready to pass packets.";
- }
- enum down {
- value 2;
- description
- "Not ready to pass packets and not in some test mode.";
- }
- enum testing {
- value 3;
- description
- "In some test mode.";
- }
- }
- mandatory true;
- status deprecated;
- description
- "The desired state of the interface.
- This leaf has the same read semantics as ifAdminStatus.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
- }
-
- leaf oper-status {
- type enumeration {
- enum up {
- value 1;
- description
- "Ready to pass packets.";
- }
- enum down {
- value 2;
- description
- "The interface does not pass any packets.";
- }
- enum testing {
- value 3;
- description
- "In some test mode. No operational packets can
- be passed.";
- }
- enum unknown {
- value 4;
- description
- "Status cannot be determined for some reason.";
- }
- enum dormant {
- value 5;
- description
- "Waiting for some external event.";
- }
- enum not-present {
- value 6;
- description
- "Some component (typically hardware) is missing.";
- }
- enum lower-layer-down {
- value 7;
- description
- "Down due to state of lower-layer interface(s).";
- }
- }
- mandatory true;
- status deprecated;
- description
- "The current operational state of the interface.
- This leaf has the same semantics as ifOperStatus.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifOperStatus";
- }
-
- leaf last-change {
- type yang:date-and-time;
- status deprecated;
- description
- "The time the interface entered its current operational
- state. If the current state was entered prior to the
- last re-initialization of the local network management
- subsystem, then this node is not present.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifLastChange";
- }
-
- leaf if-index {
- if-feature if-mib;
- type int32 {
- range "1..2147483647";
- }
- mandatory true;
- status deprecated;
- description
- "The ifIndex value for the ifEntry represented by this
- interface.";
-
- reference
- "RFC 2863: The Interfaces Group MIB - ifIndex";
- }
-
- leaf phys-address {
- type yang:phys-address;
- status deprecated;
- description
- "The interface's address at its protocol sub-layer. For
- example, for an 802.x interface, this object normally
- contains a Media Access Control (MAC) address. The
- interface's media-specific modules must define the bit
- and byte ordering and the format of the value of this
- object. For interfaces that do not have such an address
- (e.g., a serial line), this node is not present.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
- }
-
- leaf-list higher-layer-if {
- type interface-state-ref;
- status deprecated;
- description
- "A list of references to interfaces layered on top of this
- interface.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifStackTable";
- }
-
- leaf-list lower-layer-if {
- type interface-state-ref;
- status deprecated;
- description
- "A list of references to interfaces layered underneath this
- interface.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifStackTable";
- }
-
- leaf speed {
- type yang:gauge64;
- units "bits/second";
- status deprecated;
- description
- "An estimate of the interface's current bandwidth in bits
- per second. For interfaces that do not vary in
- bandwidth or for those where no accurate estimation can
- be made, this node should contain the nominal bandwidth.
- For interfaces that have no concept of bandwidth, this
- node is not present.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifSpeed, ifHighSpeed";
- }
-
- container statistics {
- status deprecated;
- description
- "A collection of interface-related statistics objects.";
-
- leaf discontinuity-time {
- type yang:date-and-time;
- mandatory true;
- status deprecated;
- description
- "The time on the most recent occasion at which any one or
- more of this interface's counters suffered a
- discontinuity. If no such discontinuities have occurred
- since the last re-initialization of the local management
- subsystem, then this node contains the time the local
- management subsystem re-initialized itself.";
- }
-
- leaf in-octets {
- type yang:counter64;
- status deprecated;
- description
- "The total number of octets received on the interface,
- including framing characters.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
- }
-
- leaf in-unicast-pkts {
- type yang:counter64;
- status deprecated;
- description
- "The number of packets, delivered by this sub-layer to a
- higher (sub-)layer, that were not addressed to a
- multicast or broadcast address at this sub-layer.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
- }
-
- leaf in-broadcast-pkts {
- type yang:counter64;
- status deprecated;
- description
- "The number of packets, delivered by this sub-layer to a
- higher (sub-)layer, that were addressed to a broadcast
- address at this sub-layer.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCInBroadcastPkts";
- }
-
- leaf in-multicast-pkts {
- type yang:counter64;
- status deprecated;
- description
- "The number of packets, delivered by this sub-layer to a
- higher (sub-)layer, that were addressed to a multicast
- address at this sub-layer. For a MAC-layer protocol,
- this includes both Group and Functional addresses.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCInMulticastPkts";
- }
-
- leaf in-discards {
- type yang:counter32;
- status deprecated;
-
- description
- "The number of inbound packets that were chosen to be
- discarded even though no errors had been detected to
- prevent their being deliverable to a higher-layer
- protocol. One possible reason for discarding such a
- packet could be to free up buffer space.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifInDiscards";
- }
-
- leaf in-errors {
- type yang:counter32;
- status deprecated;
- description
- "For packet-oriented interfaces, the number of inbound
- packets that contained errors preventing them from being
- deliverable to a higher-layer protocol. For character-
- oriented or fixed-length interfaces, the number of
- inbound transmission units that contained errors
- preventing them from being deliverable to a higher-layer
- protocol.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifInErrors";
- }
-
- leaf in-unknown-protos {
- type yang:counter32;
- status deprecated;
- description
- "For packet-oriented interfaces, the number of packets
- received via the interface that were discarded because
- of an unknown or unsupported protocol. For
- character-oriented or fixed-length interfaces that
- support protocol multiplexing, the number of
- transmission units received via the interface that were
- discarded because of an unknown or unsupported protocol.
- For any interface that does not support protocol
- multiplexing, this counter is not present.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
- }
-
- leaf out-octets {
- type yang:counter64;
- status deprecated;
- description
- "The total number of octets transmitted out of the
- interface, including framing characters.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
- }
-
- leaf out-unicast-pkts {
- type yang:counter64;
- status deprecated;
- description
- "The total number of packets that higher-level protocols
- requested be transmitted and that were not addressed
- to a multicast or broadcast address at this sub-layer,
- including those that were discarded or not sent.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
- }
-
- leaf out-broadcast-pkts {
- type yang:counter64;
- status deprecated;
-
- description
- "The total number of packets that higher-level protocols
- requested be transmitted and that were addressed to a
- broadcast address at this sub-layer, including those
- that were discarded or not sent.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCOutBroadcastPkts";
- }
-
- leaf out-multicast-pkts {
- type yang:counter64;
- status deprecated;
- description
- "The total number of packets that higher-level protocols
- requested be transmitted and that were addressed to a
- multicast address at this sub-layer, including those
- that were discarded or not sent. For a MAC-layer
- protocol, this includes both Group and Functional
- addresses.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCOutMulticastPkts";
- }
-
- leaf out-discards {
- type yang:counter32;
- status deprecated;
- description
- "The number of outbound packets that were chosen to be
- discarded even though no errors had been detected to
- prevent their being transmitted. One possible reason
- for discarding such a packet could be to free up buffer
- space.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
- }
-
- leaf out-errors {
- type yang:counter32;
- status deprecated;
- description
- "For packet-oriented interfaces, the number of outbound
- packets that could not be transmitted because of errors.
- For character-oriented or fixed-length interfaces, the
- number of outbound transmission units that could not be
- transmitted because of errors.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifOutErrors";
- }
- }
- }
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/yang/nc-notifications@2008-07-14.yang b/sdnr/wt/devicemanager-oran/provider/src/main/yang/nc-notifications@2008-07-14.yang
deleted file mode 100644
index 9ef5ed088..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/yang/nc-notifications@2008-07-14.yang
+++ /dev/null
@@ -1,95 +0,0 @@
-module nc-notifications {
-
- namespace "urn:ietf:params:xml:ns:netmod:notification";
- prefix "manageEvent";
-
- import ietf-yang-types{ prefix yang; }
- import notifications { prefix ncEvent; }
-
- organization
- "IETF NETCONF WG";
-
- contact
- "netconf@ietf.org";
-
- description
- "Conversion of the 'manageEvent' XSD in the NETCONF
- Notifications RFC.";
-
- reference
- "RFC 5277";
-
- revision 2008-07-14 {
- description "RFC 5277 version.";
- }
-
- container netconf {
- description "Top-level element in the notification namespace";
-
- config false;
-
- container streams {
- description
- "The list of event streams supported by the system. When
- a query is issued, the returned set of streams is
- determined based on user privileges.";
-
- list stream {
- description
- "Stream name, description and other information.";
- key name;
- min-elements 1;
-
- leaf name {
- description
- "The name of the event stream. If this is the default
- NETCONF stream, this must have the value 'NETCONF'.";
- type ncEvent:streamNameType;
- }
-
- leaf description {
- description
- "A description of the event stream, including such
- information as the type of events that are sent over
- this stream.";
- type string;
- mandatory true;
- }
-
- leaf replaySupport {
- description
- "A description of the event stream, including such
- information as the type of events that are sent over
- this stream.";
- type boolean;
- mandatory true;
- }
-
- leaf replayLogCreationTime {
- description
- "The timestamp of the creation of the log used to support
- the replay function on this stream. Note that this might
- be earlier then the earliest available notification in
- the log. This object is updated if the log resets for
- some reason. This object MUST be present if replay is
- supported.";
- type yang:date-and-time; // xsd:dateTime is wrong!
- }
- }
- }
- }
-
- notification replayComplete {
- description
- "This notification is sent to signal the end of a replay
- portion of a subscription.";
- }
-
- notification notificationComplete {
- description
- "This notification is sent to signal the end of a notification
- subscription. It is sent in the case that stopTime was
- specified during the creation of the subscription..";
- }
-
-} \ No newline at end of file
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-ald-port@2019-07-03.yang b/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-ald-port@2019-07-03.yang
deleted file mode 100644
index 2cafb9ecc..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-ald-port@2019-07-03.yang
+++ /dev/null
@@ -1,238 +0,0 @@
-module o-ran-ald-port {
- yang-version 1.1;
- namespace "urn:o-ran:ald-port:1.0";
- prefix "o-ran-ald-port";
-
- organization "O-RAN Alliance";
-
- contact
- "www.o-ran.org";
-
- description
- "This module defines the input state and output configuration for
- the Antenna Line Device capability.
-
- Copyright 2019 the O-RAN Alliance.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the above disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the above disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the Members of the O-RAN Alliance nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2019-07-03" {
- description
- "version 1.1.0
-
- 1) backward compatible changes to introduce groupings.";
-
- reference "ORAN-WG4.M.0-v01.00";
- }
-
- revision "2019-02-04" {
- description
- "version 1.0.0
-
- 1) imported model from xRAN
- 2) changed namespace and reference from xran to o-ran";
-
- reference "ORAN-WG4.M.0-v01.00";
- }
-
-
- feature OVERCURRENT-SUPPORTED {
- description
- "This feature indicates that the equipment supports the over-current notification
- capability.";
- }
-
-// Groupings
-
- grouping aldport-group {
- leaf over-current-supported {
- type boolean;
- config false;
- description
- "Set to TRUE when the equipment supports over curent notifications";
- }
-
- list ald-port {
- key "name";
-
- config false;
-
- description
- "Leaf nodes describing ALD Port";
- leaf name {
- type string {
- length "1..255";
- }
- description
- "A name that is unique that identifies a ald port instance.
- This name may be used in fault management to refer to a fault source
- or affected object";
- }
-
- leaf port-id {
- type uint8;
- config false;
- mandatory true;
-
- description
- "A number which identifies an ALD Port.
- The number of the Physical ALD port connector in the module.
- If the module supports 2 ALD Port connectors, use 0 and 1.";
- }
-
- leaf dc-control-support{
- type boolean;
- config false;
- mandatory true;
-
- description
- "It is shown that on/off in the DC power supply is possible.
- In case of False, power supply is always on.";
- }
-
- leaf dc-enabled-status {
- when "../dc-control-support = 'true'";
- type boolean;
- default false;
- description
- "Status of DC voltage enabled on antenna line.
- Valid only in case dc-control-support is true.";
- }
-
- leaf supported-connector{
- type enumeration {
- enum ANTENNA_CONNECTOR {
- description
- "This ald port is related to antenna connector";
- }
- enum RS485_PORT {
- description
- "This ald port is related to RS485 port";
- }
- }
- config false;
- mandatory true;
-
- description
- "Informs about the connectors of Module which ALDs are connected to.
- This value is depending on HW design.";
- }
- }
-
- list ald-port-dc-control {
- key "name";
-
- description
- "Container needed to manage DC on ALD ports";
-
- leaf name {
- type leafref {
- path "/ald-ports-io/ald-port/name";
- require-instance false;
- }
- mandatory true;
-
- description
- "Name derived from unmodifiable list ald-port";
- }
-
- leaf dc-enabled{
- type boolean;
-
- description
- "If dc-control-support is true case, this leaf is effective.
- If dc-control-support is not true this leaf makes no action
- In case of true, the power supply shall be turned on.";
- }
- }
- }
-
- grouping overcurrent-group {
- container overload-condition {
- description
- "Container used in notification";
-
- leaf-list overloaded-ports {
- type leafref {
- path "/ald-ports-io/ald-port/name";
- }
- description
- "List of overloaded ports";
- }
- }
- }
-
- grouping dc-enabled-group {
- list ald-port {
- key name;
- description
- "list of ald-ports that has its dc-enabled-status changed";
- leaf name{
- type leafref {
- path "/ald-ports-io/ald-port/name";
- }
- description "Name of port which has changed";
- }
- leaf dc-enabled-status{
- type leafref {
- path "/ald-ports-io/ald-port/dc-enabled-status";
- }
- description "New staus of dc-enabled-status";
- }
- }
- }
-
-// Top Level Container
-
- container ald-ports-io {
- description
- "ALD port information.
- ALD port of the equipment that can be used to connect External Equipment (Antenna Line Devices).
- Communication uses AISG over HDLC.
- Physical connection depends on connector type offered by the port (RS-485 or antenna line)
- Note: Single instance of ALD Port can point to more than one antenna line devices.";
-
- uses aldport-group;
- }
-
- notification overcurrent-report {
- if-feature OVERCURRENT-SUPPORTED;
-
- description
- "The equipment is able to report overcurrent condition about Port.
- This function is depending on HW design.
- The notification depend on power consumption which connected ALD devices and module.";
-
- uses overcurrent-group;
- }
-
- notification dc-enabled-status-change {
- description
- "The equipment is able to report the change of 'dc-enabled-status' of the ald-port.
- This is applicable when the leaf 'dc-control-support' of the ald-pot is 'TRUE'.";
-
- uses dc-enabled-group;
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-fm.yang b/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-fm.yang
deleted file mode 100644
index 92238aade..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-fm.yang
+++ /dev/null
@@ -1,168 +0,0 @@
-module o-ran-fm {
- yang-version 1.1;
- namespace "urn:o-ran:fm:1.0";
- prefix "o-ran-fm";
-
- import ietf-yang-types {
- prefix yang;
- revision-date 2013-07-15;
- }
-
- organization "O-RAN Alliance";
-
- contact
- "www.o-ran.org";
-
- description
- "This module defines alarm reporting mechanism.
-
- Copyright 2019 the O-RAN Alliance.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the above disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the above disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the Members of the O-RAN Alliance nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2019-02-04" {
- description
- "version 1.0.0
-
- 1) imported model from xRAN
- 2) changed namespace and reference from xran to o-ran";
-
- reference "ORAN-WG4.M.0-v01.00";
- }
-
- grouping alarm {
- description
- "Gropuping which can uniquely identify alarm";
-
- leaf fault-id {
- type uint16;
- mandatory true;
-
- description
- "Fault specific Id that identifies the fault.";
- }
-
- leaf fault-source {
- type string {
- length "1..255";
- }
- mandatory true;
-
- description
- "Represents the Object or source that is suspected to be faulty.";
- }
-
- list affected-objects {
- key name;
- leaf name {
- type string {
- length "1..255";
- }
- mandatory true;
-
- description
- "Represents the Object or source that is suspected to be affected by this fault";
- }
- min-elements 1;
- max-elements 100;
-
- description
- "List of affected-objects";
- }
-
- leaf fault-severity {
- type enumeration {
- enum CRITICAL {
- description
- "Critical alarm means that this device is not able to perform any further service";
- }
- enum MAJOR {
- description
- "Major alarm appeared on the device";
- }
- enum MINOR {
- description
- "Minor alarm appeared on the device";
- }
- enum WARNING {
- description
- "Warning is being reported by the device";
- }
- }
- mandatory true;
-
- description
- "Fault severity defines the severity level of the fault. A notification, whose fault severity has the value 'warning',
- is a special type of an alarm notification. For these alarm notifications,
- the Master Agent does not expect to receive a clear alarm notification.";
- }
-
- leaf is-cleared {
- type boolean;
- mandatory true;
-
- description
- "Fault state determines the type of the event. Not used if faultSeverity is WARNING.";
- }
-
- leaf fault-text {
- type string {
- length "0..255";
- }
-
- description
- "Textual description of the fault.";
- }
-
- leaf event-time {
- type yang:date-and-time;
- mandatory true;
-
- description
- "Timestamp to indicate the time when the fault is detected/cleared.";
- }
- }
-
- container active-alarm-list {
- list active-alarms {
- key fault-id;
- uses alarm;
-
- description
- "List of currenty active alarms";
- }
- config false;
-
- description
- "List of currently active alarms. An alarm is removed from this table when the state transitions to clear.";
- }
-
- notification alarm-notif {
- uses alarm;
-
- description
- "Notification sent on initial alarm creation, as well as any time the alarm changes state, including clear";
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-hardware.yang b/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-hardware.yang
deleted file mode 100644
index 34cdadaca..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-hardware.yang
+++ /dev/null
@@ -1,271 +0,0 @@
-module o-ran-hardware {
- yang-version 1.1;
- namespace "urn:o-ran:hardware:1.0";
- prefix "o-ran-hw";
-
- import ietf-hardware {
- prefix hw;
- }
- import iana-hardware {
- prefix ianahw;
- }
-
- organization "O-RAN Alliance";
-
- contact
- "www.o-ran.org";
-
- description
- "This module defines the YANG definitions for managng the O-RAN hardware.
-
- Copyright 2019 the O-RAN Alliance.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the above disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the above disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the Members of the O-RAN Alliance nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2019-03-28" {
- description
- "version 1.0.1
-
- 1) added new identities to accommodate cross working group use of
- o-ran-hardware and assoicated set of augmentations that are backwards
- compatible to version 1.0.0";
-
- reference "ORAN-WG4.M.0-v01.00";
- }
-
- revision "2019-02-04" {
- description
- "version 1.0.0
-
- 1) imported model from xRAN
- 2) changed namespace and reference from xran to o-ran";
-
- reference "ORAN-WG4.M.0-v01.00";
- }
-
- feature ENERGYSAVING {
- description
- "Indicates that the Radio Unit supports energy saving state.";
- }
-
- // identity statements
- identity O-RAN-RADIO {
- base ianahw:module;
- description
- "Module used as it represents a self-contained sub-system
- used in /hw:/hardware/hw:component/hw:class to represent
- an O-RAN RU";
- }
-
- identity O-RAN-HW-COMPONENT {
- base ianahw:module;
- description
- "Module used as it represents a self-contained sub-system
- used in /hw:/hardware/hw:component/hw:class to represent
- any O-RAN hardware component";
- }
-
- identity O-DU-COMPONENT {
- base O-RAN-HW-COMPONENT;
- description
- "Used in /hw:/hardware/hw:component/hw:class to represent
- any O-RAN defined O-DU hardware component";
- }
-
- identity O-RU-COMPONENT {
- base O-RAN-HW-COMPONENT;
- description
- "Used in /hw:/hardware/hw:component/hw:class to represent
- any O-RAN defined O-RU hardware component, including a stand-alone
- O-RU or an O-RU component integrated into a multi-module system.";
- }
-
- // typedef statements
- typedef energysaving-state {
- type enumeration {
- enum UNKNOWN {
- description "The Radio Unit is unable to report energy saving state.";
- }
- enum SLEEPING {
- description
- "The Radio Unit is in a sleep state. The NETCONF management plane
- connection is functioning. Other functions and hardware which are
- not needed for management plane may be in energy saving mode.";
- }
- enum AWAKE {
- description
- "The Radio Unit is not in an energy saving state.";
- }
- }
- description
- "new typedef since ietf-hardware only covers pwer-state
- for redundancy purposes and not power saving operations.";
- }
-
- typedef availability-type {
- type enumeration {
- enum UNKNOWN {
- description "The Radio Unit is unable to report its availability state.";
- }
- enum NORMAL {
- description
- "The equipment is functioning correctly.";
- }
- enum DEGRADED {
- description
- "The equipment may be reporting a major alarm or may be reporting a critical
- alarm that is only impacting one or more subcomponent, but where the
- equipment's implementation permit it to continue operation (server traffic)
- in a degraded state.
-
- Used for example, when the equipment has M identical sub-components and
- when a critical alarm is imapcting only N subcomponents, where N<M.";
- }
- enum FAULTY {
- description
- "The (sub-)components impacted by the critical alarm(s) impact the
- ability of the equipment to continue operation (serve traffic).";
- }
- }
- description
- "Equipment's availability-state is derived by matching active faults
- and their impact to module's operation and enables an equipment to indicate
- that even though it may have one or more critical alarms, it can continue
- to serve traffic.";
- }
-
- // common WG4 and croos-WG augmentations using O-RAN-RADIO identity
-
- augment "/hw:hardware/hw:component" {
- when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-RADIO')) or
- (derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
- description "New O-RAN parameters for o-ran hardware";
-
- container label-content {
- config false;
- description
- "Which set of attributes are printed on the Radio Unit's label";
- leaf model-name {
- type boolean;
- description
- "indicates whether model-name is included on the equipment's label";
- }
- leaf serial-number {
- type boolean;
- description
- "indicates whether serial number is included on the equipment's label";
- }
- }
- leaf product-code {
- type string;
- config false;
- mandatory true;
- description
- "O-RAN term that is distinct from model-name in ietf-hardware.";
- }
- leaf energy-saving-enabled {
- if-feature "ENERGYSAVING";
- type boolean;
- config true;
- default false;
- description
- "This parameter can enable O-RAN unit to be switched to energy
- saving mode.
- TRUE indicates to switch the energy saving mode.
- FALSE indicates to cancel the energy saving mode.
- At the energy saving mode, all power of whole O-RAN unit becomes
- lowest level whereas M-plane is still available";
- }
- }
-
- augment "/hw:hardware/hw:component" {
- when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-RADIO')) or
- (derived-from-or-self(hw:class, 'ianahw:port')) or
- (derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
- description "New O-RAN parameters for o-ran naming";
- leaf o-ran-name {
- type leafref {
- path "/hw:hardware/hw:component/hw:name";
- }
- must "re-match(current(),'[a-zA-Z0-9][a-zA-Z0-9\\.\\-_]{0,253}[a-zA-Z0-9]')" {
- error-message "Name must match pattern and length.";
- }
- mandatory true;
- description
- "O-RAN name needed to bind and match with the name of hw element,
- to be compliant with O-RAN naming convention.";
- }
- }
-
- augment "/hw:hardware/hw:component/hw:state" {
- when "(derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-RADIO')) or
- (derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
- description
- "new O-RAN defined state";
- leaf power-state {
- if-feature "ENERGYSAVING";
- type energysaving-state;
- config false;
- description
- "The current power saving state for this component.
- Note - hw:/hardware/compnent/state/standby-state defined in RFC 4268 is
- used for redundancy purposes and not power saving operations.";
- }
- leaf availability-state {
- type availability-type;
- config false;
- description
- "Equipment's availability-state is derived by matching active faults
- and their impact to module's operation and enables an equipment to indicate
- that even though it may have one or more critical alarms, it can continue
- to serve traffic.";
- }
- }
-
-
-// augmentations to Notifications
-
- augment "/hw:hardware-state-oper-enabled" {
- description "new availability state";
- leaf availability-state {
- type leafref {
- path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
- }
- description
- "The availability-state of the O-RU.";
- }
- }
-
- augment "/hw:hardware-state-oper-disabled" {
- description "new availability state";
- leaf availability-state {
- type leafref {
- path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
- }
- description
- "The availability-state of the O-RU.";
- }
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-hardware@2019-07-03.yang b/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-hardware@2019-07-03.yang
deleted file mode 100644
index ec6b359c1..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-hardware@2019-07-03.yang
+++ /dev/null
@@ -1,271 +0,0 @@
-module o-ran-hardware {
- yang-version 1.1;
- namespace "urn:o-ran:hardware:1.0";
- prefix "o-ran-hw";
-
- import ietf-hardware {
- prefix hw;
- }
- import iana-hardware {
- prefix ianahw;
- }
-
- organization "O-RAN Alliance";
-
- contact
- "www.o-ran.org";
-
- description
- "This module defines the YANG definitions for managng the O-RAN hardware.
-
- Copyright 2019 the O-RAN Alliance.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the above disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the above disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the Members of the O-RAN Alliance nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2019-07-03" {
- description
- "version 1.1.0
-
- 1) added new identities to accommodate cross working group use of
- o-ran-hardware and assoicated set of augmentations that are backwards
- compatible to version 1.0.0";
-
- reference "ORAN-WG4.M.0-v01.00";
- }
-
- revision "2019-02-04" {
- description
- "version 1.0.0
-
- 1) imported model from xRAN
- 2) changed namespace and reference from xran to o-ran";
-
- reference "ORAN-WG4.M.0-v01.00";
- }
-
- feature ENERGYSAVING {
- description
- "Indicates that the Radio Unit supports energy saving state.";
- }
-
- // identity statements
- identity O-RAN-RADIO {
- base ianahw:module;
- description
- "Module used as it represents a self-contained sub-system
- used in /hw:/hardware/hw:component/hw:class to represent
- an O-RAN RU";
- }
-
- identity O-RAN-HW-COMPONENT {
- base ianahw:module;
- description
- "Module used as it represents a self-contained sub-system
- used in /hw:/hardware/hw:component/hw:class to represent
- any O-RAN hardware component";
- }
-
- identity O-DU-COMPONENT {
- base O-RAN-HW-COMPONENT;
- description
- "Used in /hw:/hardware/hw:component/hw:class to represent
- any O-RAN defined O-DU hardware component";
- }
-
- identity O-RU-COMPONENT {
- base O-RAN-HW-COMPONENT;
- description
- "Used in /hw:/hardware/hw:component/hw:class to represent
- any O-RAN defined O-RU hardware component, including a stand-alone
- O-RU or an O-RU component integrated into a multi-module system.";
- }
-
- // typedef statements
- typedef energysaving-state {
- type enumeration {
- enum UNKNOWN {
- description "The Radio Unit is unable to report energy saving state.";
- }
- enum SLEEPING {
- description
- "The Radio Unit is in a sleep state. The NETCONF management plane
- connection is functioning. Other functions and hardware which are
- not needed for management plane may be in energy saving mode.";
- }
- enum AWAKE {
- description
- "The Radio Unit is not in an energy saving state.";
- }
- }
- description
- "new typedef since ietf-hardware only covers pwer-state
- for redundancy purposes and not power saving operations.";
- }
-
- typedef availability-type {
- type enumeration {
- enum UNKNOWN {
- description "The Radio Unit is unable to report its availability state.";
- }
- enum NORMAL {
- description
- "The equipment is functioning correctly.";
- }
- enum DEGRADED {
- description
- "The equipment may be reporting a major alarm or may be reporting a critical
- alarm that is only impacting one or more subcomponent, but where the
- equipment's implementation permit it to continue operation (server traffic)
- in a degraded state.
-
- Used for example, when the equipment has M identical sub-components and
- when a critical alarm is imapcting only N subcomponents, where N<M.";
- }
- enum FAULTY {
- description
- "The (sub-)components impacted by the critical alarm(s) impact the
- ability of the equipment to continue operation (serve traffic).";
- }
- }
- description
- "Equipment's availability-state is derived by matching active faults
- and their impact to module's operation and enables an equipment to indicate
- that even though it may have one or more critical alarms, it can continue
- to serve traffic.";
- }
-
- // common WG4 and croos-WG augmentations using O-RAN-RADIO identity
-
- augment "/hw:hardware/hw:component" {
- when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-RADIO')) or
- (derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
- description "New O-RAN parameters for o-ran hardware";
-
- container label-content {
- config false;
- description
- "Which set of attributes are printed on the Radio Unit's label";
- leaf model-name {
- type boolean;
- description
- "indicates whether model-name is included on the equipment's label";
- }
- leaf serial-number {
- type boolean;
- description
- "indicates whether serial number is included on the equipment's label";
- }
- }
- leaf product-code {
- type string;
- config false;
- mandatory true;
- description
- "O-RAN term that is distinct from model-name in ietf-hardware.";
- }
- leaf energy-saving-enabled {
- if-feature "ENERGYSAVING";
- type boolean;
- config true;
- default false;
- description
- "This parameter can enable O-RAN unit to be switched to energy
- saving mode.
- TRUE indicates to switch the energy saving mode.
- FALSE indicates to cancel the energy saving mode.
- At the energy saving mode, all power of whole O-RAN unit becomes
- lowest level whereas M-plane is still available";
- }
- }
-
- augment "/hw:hardware/hw:component" {
- when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-RADIO')) or
- (derived-from-or-self(hw:class, 'ianahw:port')) or
- (derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
- description "New O-RAN parameters for o-ran naming";
- leaf o-ran-name {
- type leafref {
- path "/hw:hardware/hw:component/hw:name";
- }
- must "re-match(current(),'[a-zA-Z0-9][a-zA-Z0-9\\.\\-_]{0,253}[a-zA-Z0-9]')" {
- error-message "Name must match pattern and length.";
- }
- mandatory true;
- description
- "O-RAN name needed to bind and match with the name of hw element,
- to be compliant with O-RAN naming convention.";
- }
- }
-
- augment "/hw:hardware/hw:component/hw:state" {
- when "(derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-RADIO')) or
- (derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
- description
- "new O-RAN defined state";
- leaf power-state {
- if-feature "ENERGYSAVING";
- type energysaving-state;
- config false;
- description
- "The current power saving state for this component.
- Note - hw:/hardware/compnent/state/standby-state defined in RFC 4268 is
- used for redundancy purposes and not power saving operations.";
- }
- leaf availability-state {
- type availability-type;
- config false;
- description
- "Equipment's availability-state is derived by matching active faults
- and their impact to module's operation and enables an equipment to indicate
- that even though it may have one or more critical alarms, it can continue
- to serve traffic.";
- }
- }
-
-
-// augmentations to Notifications
-
- augment "/hw:hardware-state-oper-enabled" {
- description "new availability state";
- leaf availability-state {
- type leafref {
- path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
- }
- description
- "The availability-state of the O-RU.";
- }
- }
-
- augment "/hw:hardware-state-oper-disabled" {
- description "new availability state";
- leaf availability-state {
- type leafref {
- path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
- }
- description
- "The availability-state of the O-RU.";
- }
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-common-alarms-v1.yang b/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-common-alarms-v1.yang
deleted file mode 100644
index 930bba32f..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-common-alarms-v1.yang
+++ /dev/null
@@ -1,56 +0,0 @@
-module o-ran-sc-common-alarms-v1 {
- yang-version 1.1;
- namespace "urn:o-ran-sc:alarms:1.0";
- prefix osc-al;
-
- import ietf-alarms {
- prefix al;
- }
-
- organization
- "O-RAN Software Community";
- contact
- "www.o-ran-sc.org";
- description
- "This module defines the alarm identities for the O-RAN-SC Components.
-
- Copyright 2020 the O-RAN Software Community.
-
- Licensed under the Apache License, Version 2.0 (the 'License');
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an 'AS IS' BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.";
-
- revision 2020-01-18 {
- description
- "initial revision";
- reference
- "O-RAN-OAM-Interface-Specification (O1)";
- }
-
- identity alarm-type-id {
- base al:alarm-type-id;
- description
- "An abstract alarm type use for all O-RAN-SC alarm types which are
- common across the O-RAN managed functions.";
- }
-
- identity smo-o1-ves-collector-not-reachable {
- base alarm-type-id;
- description
- "The configured VES end-point for asynchron messages is not reachable.
- Instructions:
- 1) Verify the VES configuration on the O-RAN component.
- 2) Verify the connectivity between the O-RAN component and the
- SMO in terms of routing and firewall settings along the path.
- 3) Check the credentials of the O-RAN component (user, password,
- certificate). Did changes happen on SMO level recently?";
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-cu-cp-alarms-v1.yang b/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-cu-cp-alarms-v1.yang
deleted file mode 100644
index e29ff2d21..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-cu-cp-alarms-v1.yang
+++ /dev/null
@@ -1,57 +0,0 @@
-module o-ran-sc-cu-cp-alarms-v1 {
- yang-version 1.1;
- namespace "urn:o-ran-sc:cu:cp:alarms:1.0";
- prefix osc-cu-cp-al;
-
- import ietf-alarms {
- prefix al;
- }
-
- organization
- "O-RAN Software Community";
- contact
- "www.o-ran-sc.org";
- description
- "This module defines the alarm identities for the O-RAN-SC Central Unit
- Control Plane.
-
- Copyright 2020 the O-RAN Software Community.
-
- Licensed under the Apache License, Version 2.0 (the 'License');
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an 'AS IS' BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.";
-
- revision 2020-01-18 {
- description
- "initial revision";
- reference
- "O-RAN-OAM-Interface-Specification (O1)";
- }
-
- identity alarm-type-id {
- base al:alarm-type-id;
- description
- "An abstract alarm type used for all O-RAN-SC specific alarm types for
- Managed Function O-CU-CP.";
- }
-
- identity huston-we-have-a-problem {
- base alarm-type-id;
- description
- "A generic alarm which is under development and analysis,
- must not happen in production environment.
- Instructions:
- Create an JIRA issue and provide the following intormation:
- - SMO version, build number or git hash
- - O-CU-CP version, build number or git hash
- - A procedure to reproduce the alarm.";
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-cu-up-alarms-v1.yang b/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-cu-up-alarms-v1.yang
deleted file mode 100644
index 020103f4f..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-cu-up-alarms-v1.yang
+++ /dev/null
@@ -1,57 +0,0 @@
-module o-ran-sc-cu-up-alarms-v1 {
- yang-version 1.1;
- namespace "urn:o-ran-sc:cu:up:alarms:1.0";
- prefix osc-cu-up-al;
-
- import ietf-alarms {
- prefix al;
- }
-
- organization
- "O-RAN Software Community";
- contact
- "www.o-ran-sc.org";
- description
- "This module defines the alarm identities for the O-RAN-SC Central Unit
- User Plane.
-
- Copyright 2020 the O-RAN Software Community.
-
- Licensed under the Apache License, Version 2.0 (the 'License');
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an 'AS IS' BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.";
-
- revision 2020-01-18 {
- description
- "initial revision";
- reference
- "O-RAN-OAM-Interface-Specification (O1)";
- }
-
- identity alarm-type-id {
- base al:alarm-type-id;
- description
- "An abstract alarm type used for all O-RAN-SC specific alarm types for
- Managed Function O-CU-UP.";
- }
-
- identity huston-we-have-a-problem {
- base alarm-type-id;
- description
- "A generic alarm which is under development and analysis,
- must not happen in production environment.
- Instructions:
- Create an JIRA issue and provide the following intormation:
- - SMO version, build number or git hash
- - O-CU-UP version, build number or git hash
- - A procedure to reproduce the alarm.";
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-du-alarms-v1.yang b/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-du-alarms-v1.yang
deleted file mode 100644
index e7d3b45f0..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-du-alarms-v1.yang
+++ /dev/null
@@ -1,56 +0,0 @@
-module o-ran-sc-du-alarms-v1 {
- yang-version 1.1;
- namespace "urn:o-ran-sc:du:alarms:1.0";
- prefix osc-du-al;
-
- import ietf-alarms {
- prefix al;
- }
-
- organization
- "O-RAN Software Community";
- contact
- "www.o-ran-sc.org";
- description
- "This module defines the alarm identities for the O-RAN-SC Distributed Unit.
-
- Copyright 2020 the O-RAN Software Community.
-
- Licensed under the Apache License, Version 2.0 (the 'License');
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an 'AS IS' BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.";
-
- revision 2020-01-18 {
- description
- "initial revision";
- reference
- "O-RAN-OAM-Interface-Specification (O1)";
- }
-
- identity alarm-type-id {
- base al:alarm-type-id;
- description
- "An abstract alarm type used for all O-RAN-SC specific alarm types for
- Managed Function O-DU.";
- }
-
- identity huston-we-have-a-problem {
- base alarm-type-id;
- description
- "A generic alarm which is under development and analysis,
- must not happen in production environment.
- Instructions:
- Create an JIRA issue and provide the following intormation:
- - SMO version, build number or git hash
- - O-DU version, build number or git hash
- - A procedure to reproduce the alarm.";
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-ric-alarms-v1.yang b/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-ric-alarms-v1.yang
deleted file mode 100644
index ace2a78b0..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-ric-alarms-v1.yang
+++ /dev/null
@@ -1,56 +0,0 @@
-module o-ran-sc-ric-alarms-v1 {
- yang-version 1.1;
- namespace "urn:o-ran:ric:alarms:1.0";
- prefix osc-ric-al;
-
- import ietf-alarms {
- prefix al;
- }
-
- organization
- "O-RAN Software Community";
- contact
- "www.o-ran.org";
- description
- "This module defines the alarm identities for the O-RAN-SC Near realtime RAN Intelligent Controller.
-
- Copyright 2019 the O-RAN Alliance.
-
- Licensed under the Apache License, Version 2.0 (the 'License');
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an 'AS IS' BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.";
-
- revision 2020-01-18 {
- description
- "initial revision";
- reference
- "O-RAN-OAM-Interface-Specification (O1)";
- }
-
- identity alarm-type-id {
- base al:alarm-type-id;
- description
- "An abstract alarm type used for all O-RAN-SC specific alarm types for
- Managed Function Non-RT-RIC.";
- }
-
- identity huston-we-have-a-problem {
- base alarm-type-id;
- description
- "A generic alarm which is under development and analysis,
- must not happen in production environment.
- Instructions:
- Create an JIRA issue and provide the following intormation:
- - SMO version, build number or git hash
- - O-DU-low version, build number or git hash
- - A procedure to reproduce the alarm.";
- }
-}
diff --git a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-ru-alarms-v1.yang b/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-ru-alarms-v1.yang
deleted file mode 100644
index c52414d75..000000000
--- a/sdnr/wt/devicemanager-oran/provider/src/main/yang/o-ran-sc-ru-alarms-v1.yang
+++ /dev/null
@@ -1,56 +0,0 @@
-module o-ran-sc-ru-alarms-v1 {
- yang-version 1.1;
- namespace "urn:o-ran-sc:ru:alarms:1.0";
- prefix osc-ru-al;
-
- import ietf-alarms {
- prefix al;
- }
-
- organization
- "O-RAN Software Community";
- contact
- "www.o-ran-sc.org";
- description
- "This module defines the alarm identities for the O-RAN-SC Components.
-
- Copyright 2020 the O-RAN Software Community.
-
- Licensed under the Apache License, Version 2.0 (the 'License');
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an 'AS IS' BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.";
-
- revision 2020-01-18 {
- description
- "initial revision";
- reference
- "O-RAN-OAM-Interface-Specification (O1)";
- }
-
- identity alarm-type-id {
- base al:alarm-type-id;
- description
- "An abstract alarm type used for all O-RAN-SC specific alarm types for
- Managed Function O-RU.";
- }
-
- identity huston-we-have-a-problem {
- base alarm-type-id;
- description
- "A generic alarm which is under development and analysis,
- must not happen in production environment.
- Instructions:
- Create an JIRA issue and provide the following intormation:
- - SMO version, build number or git hash
- - O-RU version, build number or git hash
- - A procedure to reproduce the alarm.";
- }
-}