mirror of
https://github.com/opennetworkinglab/onos.git
synced 2026-05-05 04:06:49 +02:00
Initial check-in Open ROADM app v1.2.1 (ONOS-5354).
Change-Id: I077b40c308efe257af0e23f0d87de1215c3789ad
This commit is contained in:
parent
a4d5a49917
commit
f20c7fb751
26
apps/openroadm/BUCK
Normal file
26
apps/openroadm/BUCK
Normal file
@ -0,0 +1,26 @@
|
||||
APPS = [
|
||||
'org.onosproject.yang',
|
||||
'org.onosproject.yang-gui',
|
||||
'org.onosproject.config',
|
||||
'org.onosproject.restconf',
|
||||
'org.onosproject.yms',
|
||||
'org.onosproject.protocols.restconfserver',
|
||||
'org.onosproject.netconf',
|
||||
'org.onosproject.netconfsb',
|
||||
]
|
||||
|
||||
BUNDLES = [
|
||||
'//apps/openroadm/yangmodel:onos-apps-openroadm-yangmodel',
|
||||
'//apps/openroadm/service:onos-apps-openroadm-service',
|
||||
'//apps/openroadm/network:onos-apps-openroadm-network',
|
||||
]
|
||||
|
||||
onos_app(
|
||||
app_name = 'org.onosproject.openroadm',
|
||||
title = 'Open ROADM App',
|
||||
category = 'Utility',
|
||||
url = 'http://onosproject.org',
|
||||
included_bundles = BUNDLES,
|
||||
description = 'Open ROADM Application',
|
||||
required_apps = APPS,
|
||||
)
|
||||
72
apps/openroadm/README.md
Normal file
72
apps/openroadm/README.md
Normal file
@ -0,0 +1,72 @@
|
||||
ONOS Open ROADM Application
|
||||
====================================
|
||||
Welcome to the ONOS Open ROADM application. Please refer to the ONOS
|
||||
wiki for the latest documentation:
|
||||
|
||||
[wiki](https://wiki.onosproject.org/display/ONOS/Open+ROADM+MSA)
|
||||
|
||||
This ONOS app consists of the Open ROADM YANG data models compiled to
|
||||
Java, and loads the schema into the YANG runtime where it becomes
|
||||
available to the dynamic config subsystem and the NETCONF/RESTCONF
|
||||
serializers.
|
||||
|
||||
Service implementers have access to the complete data model in Java.
|
||||
Alternatively, one can interact with the different data models using
|
||||
RESTCONF / NETCONF northbound APIs.
|
||||
A distributed store for dynamic configuration data is automatically
|
||||
maintained by ONOS.
|
||||
All of this functionality is available for the device, network and
|
||||
service models defined by Open ROADM.
|
||||
|
||||
This application supports the latest available version of Open ROADM,
|
||||
Version 1.2.1 (released Feb 6th, 2017).
|
||||
|
||||
### What is Open ROADM MSA?
|
||||
The Open ROADM Multi-Source Agreement (MSA) defines interoperability
|
||||
specifications for Reconfigurable Optical Add/Drop Multiplexers (ROADM).
|
||||
Included are the ROADM switch as well as transponders and pluggable optics.
|
||||
Specifications consist of both Optical interoperability as well as YANG data models.
|
||||
|
||||
### How to run
|
||||
After compilation, load the following applications:
|
||||
|
||||
* org.onosproject.openroadm (this will load all the dependencies below)
|
||||
* org.onosproject.yang
|
||||
* org.onosproject.yms
|
||||
* org.onosproject.config
|
||||
* org.onosproject.restconf
|
||||
* org.onosproject.protocols.restconfserver
|
||||
* org.onosproject.netconf
|
||||
* org.onosproject.netconfsb
|
||||
* org.onosproject.yang-gui if you want to visualize the model in the ONOS UI
|
||||
|
||||
### Notes
|
||||
In order to successfully compile the YANG models, standard models were
|
||||
added to the tree, as well as a few changes were introduced.
|
||||
|
||||
The standard models that were included are:
|
||||
|
||||
* [ietf-yang-types](http://dld.netconfcentral.org/src/ietf-yang-types@2013-07-15.yang) (revision 2013-07-15)
|
||||
* [ietf-inet-types](http://dld.netconfcentral.org/src/ietf-inet-types@2013-07-15.yang) (revision 2013-07-15)
|
||||
* [ietf-netconf](http://dld.netconfcentral.org/src/ietf-netconf@2011-06-01.yang) (revision 2011-06-01)
|
||||
* [ietf-netconf-acm](http://dld.netconfcentral.org/src/ietf-netconf-acm@2012-02-22.yang) (revision 2012-02-22)
|
||||
* [iana-afn-safi](http://dld.netconfcentral.org/src/iana-afn-safi@2013-07-04.yang) (revision 2013-07-04)
|
||||
|
||||
We deleted the following YANG model because the YANG parser was not able to deal
|
||||
with the augment block.
|
||||
* org-openroadm-optical-multiplex-interfaces.yang
|
||||
|
||||
We commented out the following extension definitions,
|
||||
as well as any reference to these extension.
|
||||
* nc:get-filter-element-attributes
|
||||
* nacm:default-deny-all
|
||||
* nacm:default-deny-write
|
||||
|
||||
Finally, we used ONOS YANG tools version 1.12.0-b7.
|
||||
|
||||
### Useful links
|
||||
To learn more about the ONOS project, check out our [website](http://www.onosproject.org)
|
||||
and our [wiki](https://wiki.onosproject.org/).
|
||||
|
||||
To learn more about the Open ROADM MSA, check out the [website](http://www.openroadm.org)
|
||||
and the [GitHub page](https://github.com/OpenROADM/OpenROADM_MSA_Public).
|
||||
9
apps/openroadm/network/BUCK
Normal file
9
apps/openroadm/network/BUCK
Normal file
@ -0,0 +1,9 @@
|
||||
COMPILE_DEPS = [
|
||||
'//lib:CORE_DEPS',
|
||||
'//apps/openroadm/yangmodel:onos-apps-openroadm-yangmodel',
|
||||
'//core/store/serializers:onos-core-serializers',
|
||||
] + YANG_TOOLS
|
||||
|
||||
osgi_jar_with_tests (
|
||||
deps = COMPILE_DEPS,
|
||||
)
|
||||
41
apps/openroadm/network/pom.xml
Normal file
41
apps/openroadm/network/pom.xml
Normal file
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2017-present Open Networking Laboratory
|
||||
~
|
||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||
~ you may not use this file except in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing, software
|
||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
~ See the License for the specific language governing permissions and
|
||||
~ limitations under the License.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<artifactId>onos-apps-openroadm</artifactId>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<version>1.2.1-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>onos-apps-openroadm-network</artifactId>
|
||||
<version>1.2.1-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<description>Open ROADM Network Model</description>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-app-yang</artifactId>
|
||||
<version>1.10.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* Copyright 2017-present Open Networking Laboratory
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.onosproject.openroadm.network;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import org.apache.felix.scr.annotations.Component;
|
||||
import org.onosproject.yang.AbstractYangModelRegistrator;
|
||||
import org.onosproject.yang.gen.v1.http.org.openroadm.common.types.rev20161014.OrgOpenroadmCommonTypes;
|
||||
import org.onosproject.yang.gen.v1.http.org.openroadm.degree.rev20161014.OrgOpenroadmDegree;
|
||||
import org.onosproject.yang.gen.v1.http.org.openroadm.equipment.states.types.rev20161014.OrgOpenroadmEquipmentStatesTypes;
|
||||
import org.onosproject.yang.gen.v1.http.org.openroadm.external.pluggable.rev20161014.OrgOpenroadmExternalPluggable;
|
||||
import org.onosproject.yang.gen.v1.http.org.openroadm.network.rev20161014.OrgOpenroadmNetwork;
|
||||
import org.onosproject.yang.gen.v1.http.org.openroadm.roadm.rev20161014.OrgOpenroadmRoadm;
|
||||
import org.onosproject.yang.gen.v1.http.org.openroadm.srg.rev20161014.OrgOpenroadmSrg;
|
||||
import org.onosproject.yang.gen.v1.http.org.openroadm.xponder.rev20161014.OrgOpenroadmXponder;
|
||||
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev20130715.IetfInetTypes;
|
||||
import org.onosproject.yang.model.DefaultYangModuleId;
|
||||
import org.onosproject.yang.model.YangModuleId;
|
||||
import org.onosproject.yang.runtime.AppModuleInfo;
|
||||
import org.onosproject.yang.runtime.DefaultAppModuleInfo;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Component to register the Open ROADM network model and its dependencies.
|
||||
*/
|
||||
@Component(immediate = true)
|
||||
public class OpenRoadmNetworkModelRegistrator extends AbstractYangModelRegistrator {
|
||||
public OpenRoadmNetworkModelRegistrator() {
|
||||
super(OrgOpenroadmNetwork.class, getAppInfo());
|
||||
}
|
||||
|
||||
private static Map<YangModuleId, AppModuleInfo> getAppInfo() {
|
||||
Map<YangModuleId, AppModuleInfo> appInfo = new HashMap<>();
|
||||
// Dependencies for org-openroadm-network
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-roadm", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmRoadm.class, null));
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-external-pluggable", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmExternalPluggable.class, null));
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-xponder", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmXponder.class, null));
|
||||
|
||||
// Dependencies for org-openroadm-roadm
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-srg", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmSrg.class, null));
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-degree", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmDegree.class, null));
|
||||
appInfo.put(new DefaultYangModuleId("ietf-inet-types", "2013-07-15"),
|
||||
new DefaultAppModuleInfo(IetfInetTypes.class, null));
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-common-types", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmCommonTypes.class, null));
|
||||
|
||||
// Dependencies for org-openroadm-external-pluggable
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-equipment-states-types", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmEquipmentStatesTypes.class, null));
|
||||
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-network", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmNetwork.class, null));
|
||||
return ImmutableMap.copyOf(appInfo);
|
||||
}
|
||||
}
|
||||
39
apps/openroadm/pom.xml
Normal file
39
apps/openroadm/pom.xml
Normal file
@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2017-present Open Networking Laboratory
|
||||
~
|
||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||
~ you may not use this file except in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing, software
|
||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
~ See the License for the specific language governing permissions and
|
||||
~ limitations under the License.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-apps</artifactId>
|
||||
<version>1.10.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>onos-apps-openroadm</artifactId>
|
||||
<version>1.2.1-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<description>Open ROADM Application</description>
|
||||
|
||||
<modules>
|
||||
<module>yangmodel</module>
|
||||
<module>service</module>
|
||||
<module>network</module>
|
||||
</modules>
|
||||
</project>
|
||||
9
apps/openroadm/service/BUCK
Normal file
9
apps/openroadm/service/BUCK
Normal file
@ -0,0 +1,9 @@
|
||||
COMPILE_DEPS = [
|
||||
'//lib:CORE_DEPS',
|
||||
'//apps/openroadm/yangmodel:onos-apps-openroadm-yangmodel',
|
||||
'//core/store/serializers:onos-core-serializers',
|
||||
] + YANG_TOOLS
|
||||
|
||||
osgi_jar_with_tests (
|
||||
deps = COMPILE_DEPS,
|
||||
)
|
||||
41
apps/openroadm/service/pom.xml
Normal file
41
apps/openroadm/service/pom.xml
Normal file
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2017-present Open Networking Laboratory
|
||||
~
|
||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||
~ you may not use this file except in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing, software
|
||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
~ See the License for the specific language governing permissions and
|
||||
~ limitations under the License.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<artifactId>onos-apps-openroadm</artifactId>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<version>1.2.1-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>onos-apps-openroadm-service</artifactId>
|
||||
<version>1.2.1-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<description>Open ROADM Service Model</description>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-app-yang</artifactId>
|
||||
<version>1.10.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@ -0,0 +1,78 @@
|
||||
/*
|
||||
* Copyright 2017-present Open Networking Laboratory
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.onosproject.openroadm.service;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import org.apache.felix.scr.annotations.Component;
|
||||
import org.onosproject.yang.AbstractYangModelRegistrator;
|
||||
import org.onosproject.yang.gen.v1.http.org.openroadm.common.service.types.rev20161014.OrgOpenroadmCommonServiceTypes;
|
||||
import org.onosproject.yang.gen.v1.http.org.openroadm.common.types.rev20161014.OrgOpenroadmCommonTypes;
|
||||
import org.onosproject.yang.gen.v1.http.org.openroadm.resource.rev20161014.OrgOpenroadmResource;
|
||||
import org.onosproject.yang.gen.v1.http.org.openroadm.resource.types.rev20161014.OrgOpenroadmResourceTypes;
|
||||
import org.onosproject.yang.gen.v1.http.org.openroadm.routing.constrains.rev20161014.OrgOpenroadmRoutingConstraints;
|
||||
import org.onosproject.yang.gen.v1.http.org.openroadm.service.rev20161014.OrgOpenroadmService;
|
||||
import org.onosproject.yang.gen.v1.http.org.openroadm.topology.rev20161014.OrgOpenroadmTopology;
|
||||
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev20130715.IetfInetTypes;
|
||||
import org.onosproject.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev20130715.IetfYangTypes;
|
||||
import org.onosproject.yang.model.DefaultYangModuleId;
|
||||
import org.onosproject.yang.model.YangModuleId;
|
||||
import org.onosproject.yang.runtime.AppModuleInfo;
|
||||
import org.onosproject.yang.runtime.DefaultAppModuleInfo;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Component to register the Open ROADM service model and its dependencies.
|
||||
*/
|
||||
@Component(immediate = true)
|
||||
public class OpenRoadmServiceModelRegistrator extends AbstractYangModelRegistrator {
|
||||
public OpenRoadmServiceModelRegistrator() {
|
||||
super(OrgOpenroadmService.class, getAppInfo());
|
||||
}
|
||||
|
||||
private static Map<YangModuleId, AppModuleInfo> getAppInfo() {
|
||||
Map<YangModuleId, AppModuleInfo> appInfo = new HashMap<>();
|
||||
// Dependencies for org-openroadm-service
|
||||
appInfo.put(new DefaultYangModuleId("ietf-yang-types", "2013-07-15"),
|
||||
new DefaultAppModuleInfo(IetfYangTypes.class, null));
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-routing-constraints", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmRoutingConstraints.class, null));
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-common-types", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmCommonTypes.class, null));
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-resource-types", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmResourceTypes.class, null));
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-common-service-types", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmCommonServiceTypes.class, null));
|
||||
|
||||
// Dependencies for org-openroadm-common-service-types
|
||||
appInfo.put(new DefaultYangModuleId("ietf-inet-types", "2013-07-15"),
|
||||
new DefaultAppModuleInfo(IetfInetTypes.class, null));
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-topology", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmTopology.class, null));
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-topology", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmTopology.class, null));
|
||||
|
||||
// Dependency for org-openroadm-topology
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-resource", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmResource.class, null));
|
||||
|
||||
|
||||
appInfo.put(new DefaultYangModuleId("org-openroadm-service", "2016-10-14"),
|
||||
new DefaultAppModuleInfo(OrgOpenroadmService.class, null));
|
||||
return ImmutableMap.copyOf(appInfo);
|
||||
}
|
||||
}
|
||||
8
apps/openroadm/yangmodel/BUCK
Normal file
8
apps/openroadm/yangmodel/BUCK
Normal file
@ -0,0 +1,8 @@
|
||||
yang_osgi_jar(
|
||||
deps = YANG_TOOLS,
|
||||
name = 'onos-apps-openroadm-yangmodel',
|
||||
srcs = glob(['src/main/**/*.yang']),
|
||||
visibility = [
|
||||
'PUBLIC'
|
||||
],
|
||||
)
|
||||
33
apps/openroadm/yangmodel/pom.xml
Normal file
33
apps/openroadm/yangmodel/pom.xml
Normal file
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2017-present Open Networking Laboratory
|
||||
~
|
||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||
~ you may not use this file except in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing, software
|
||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
~ See the License for the specific language governing permissions and
|
||||
~ limitations under the License.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<artifactId>onos-apps-openroadm</artifactId>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<version>1.2.1-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>onos-apps-openroadm-yangmodel</artifactId>
|
||||
<version>1.2.1-SNAPSHOT</version>
|
||||
<packaging>bundle</packaging>
|
||||
<description>Open ROADM YANG models</description>
|
||||
</project>
|
||||
@ -0,0 +1,526 @@
|
||||
module iana-afn-safi {
|
||||
namespace "urn:ietf:params:xml:ns:yang:iana-afn-safi";
|
||||
prefix "ianaaf";
|
||||
|
||||
organization
|
||||
"IANA";
|
||||
contact
|
||||
" Internet Assigned Numbers Authority
|
||||
|
||||
Postal: ICANN
|
||||
4676 Admiralty Way, Suite 330
|
||||
Marina del Rey, CA 90292
|
||||
|
||||
Tel: +1 310 823 9358
|
||||
E-Mail: iana&iana.org";
|
||||
description
|
||||
"This YANG module provides two typedefs containing YANG
|
||||
definitions for the following IANA-registered enumerations:
|
||||
|
||||
- Address Family Numbers (AFN)
|
||||
|
||||
- Subsequent Address Family Identifiers (SAFI)
|
||||
|
||||
The latest revision of this YANG module can be obtained from the
|
||||
IANA web site.
|
||||
|
||||
Copyright (c) 2012 IETF Trust and the persons identified as
|
||||
authors of the code. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or
|
||||
without modification, is permitted pursuant to, and subject to
|
||||
the license terms contained in, the Simplified BSD License set
|
||||
forth in Section 4.c of the IETF Trust's Legal Provisions
|
||||
Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info).
|
||||
|
||||
This version of this YANG module is part of RFC XXXX; see the
|
||||
RFC itself for full legal notices.";
|
||||
// RFC Ed.: replace XXXX with actual RFC number and remove this
|
||||
// note.
|
||||
|
||||
// RFC Ed.: update the date below with the date of RFC publication
|
||||
// and remove this note.
|
||||
revision 2013-07-04 {
|
||||
description
|
||||
"Initial revision.";
|
||||
reference
|
||||
"RFC XXXX: IANA Address Family Numbers and
|
||||
Subsequent Address Family Identifiers YANG Module";
|
||||
}
|
||||
|
||||
typedef address-family {
|
||||
type enumeration {
|
||||
// value 0 is reserved by IANA
|
||||
enum ipV4 {
|
||||
value "1";
|
||||
description
|
||||
"IP version 4";
|
||||
}
|
||||
enum ipV6 {
|
||||
value "2";
|
||||
description
|
||||
"IP version 6";
|
||||
}
|
||||
enum nsap {
|
||||
value "3";
|
||||
description
|
||||
"NSAP";
|
||||
}
|
||||
enum hdlc {
|
||||
value "4";
|
||||
description
|
||||
"HDLC (8-bit multidrop)";
|
||||
}
|
||||
enum bbn1822 {
|
||||
value "5";
|
||||
description
|
||||
"BBN 1822";
|
||||
}
|
||||
enum all802 {
|
||||
value "6";
|
||||
description
|
||||
"802 (includes all 802 media plus Ethernet 'canonical
|
||||
format')";
|
||||
}
|
||||
enum e163 {
|
||||
value "7";
|
||||
description
|
||||
"E.163";
|
||||
}
|
||||
enum e164 {
|
||||
value "8";
|
||||
description
|
||||
"E.164 (SMDS, FrameRelay, ATM)";
|
||||
}
|
||||
enum f69 {
|
||||
value "9";
|
||||
description
|
||||
"F.69 (Telex)";
|
||||
}
|
||||
enum x121 {
|
||||
value "10";
|
||||
description
|
||||
"X.121 (X.25, Frame Relay)";
|
||||
}
|
||||
enum ipx {
|
||||
value "11";
|
||||
description
|
||||
"IPX (Internetwork Packet Exchange)";
|
||||
}
|
||||
enum appletalk {
|
||||
value "12";
|
||||
description
|
||||
"Appletalk";
|
||||
}
|
||||
enum decnetIV {
|
||||
value "13";
|
||||
description
|
||||
"DECnet IV";
|
||||
}
|
||||
enum banyanVines {
|
||||
value "14";
|
||||
description
|
||||
"Banyan Vines";
|
||||
}
|
||||
enum e164withNsap {
|
||||
value "15";
|
||||
description
|
||||
"E.164 with NSAP format subaddress";
|
||||
reference
|
||||
"ATM Forum UNI 3.1";
|
||||
}
|
||||
enum dns {
|
||||
value "16";
|
||||
description
|
||||
"DNS (Domain Name System)";
|
||||
}
|
||||
enum distinguishedName {
|
||||
value "17";
|
||||
description
|
||||
"Distinguished Name (per X.500)";
|
||||
}
|
||||
enum asNumber {
|
||||
value "18";
|
||||
description
|
||||
"Autonomous System Number";
|
||||
}
|
||||
enum xtpOverIpv4 {
|
||||
value "19";
|
||||
description
|
||||
"XTP over IP version 4";
|
||||
}
|
||||
enum xtpOverIpv6 {
|
||||
value "20";
|
||||
description
|
||||
"XTP over IP version 6";
|
||||
}
|
||||
enum xtpNativeModeXTP {
|
||||
value "21";
|
||||
description
|
||||
"XTP native mode XTP";
|
||||
}
|
||||
enum fibreChannelWWPN {
|
||||
value "22";
|
||||
description
|
||||
"Fibre Channel World-Wide Port Name";
|
||||
}
|
||||
enum fibreChannelWWNN {
|
||||
value "23";
|
||||
description
|
||||
"Fibre Channel World-Wide Node Name";
|
||||
}
|
||||
enum gwid {
|
||||
value "24";
|
||||
description
|
||||
"Gateway Identifier";
|
||||
}
|
||||
// FIXME: This one is actually called "afi" in the MIB, but
|
||||
// that must be a mistake.
|
||||
enum l2vpn {
|
||||
value "25";
|
||||
description
|
||||
"AFI for L2VPN information";
|
||||
reference
|
||||
"RFC 4761: Virtual Private LAN Service (VPLS): Using BGP
|
||||
for Auto-Discovery and Signaling
|
||||
|
||||
RFC 6074: Provisioning, Auto-Discovery, and Signaling in
|
||||
Layer 2 Virtual Private Networks (L2VPNs)";
|
||||
}
|
||||
enum mplsTpSectionEndpointIdentifier {
|
||||
value "26";
|
||||
description
|
||||
"MPLS-TP Section Endpoint Identifier";
|
||||
reference
|
||||
"draft-ietf-mpls-gach-adv";
|
||||
}
|
||||
enum mplsTpLspEndpointIdentifier {
|
||||
value "27";
|
||||
description
|
||||
"MPLS-TP LSP Endpoint Identifier";
|
||||
reference
|
||||
"draft-ietf-mpls-gach-adv";
|
||||
}
|
||||
enum mplsTpPseudowireEndpointIdentifier {
|
||||
value "28";
|
||||
description
|
||||
"MPLS-TP Pseudowire Endpoint Identifier";
|
||||
reference
|
||||
"draft-ietf-mpls-gach-adv";
|
||||
}
|
||||
enum eigrpCommonServiceFamily {
|
||||
value "16384";
|
||||
description
|
||||
"EIGRP Common Service Family";
|
||||
}
|
||||
enum eigrpIpv4ServiceFamily {
|
||||
value "16385";
|
||||
description
|
||||
"EIGRP IPv4 Service Family";
|
||||
}
|
||||
enum eigrpIpv6ServiceFamily {
|
||||
value "16386";
|
||||
description
|
||||
"EIGRP IPv6 Service Family";
|
||||
}
|
||||
enum lispCanonicalAddressFormat {
|
||||
value "16387";
|
||||
description
|
||||
"LISP Canonical Address Format (LCAF)";
|
||||
}
|
||||
enum bgpLs {
|
||||
value "16388";
|
||||
description
|
||||
"BGP-LS";
|
||||
reference
|
||||
"draft-ietf-idr-ls-distribution";
|
||||
}
|
||||
enum 48BitMac {
|
||||
value "16389";
|
||||
description
|
||||
"48-bit MAC";
|
||||
reference
|
||||
"draft-eastlake-rfc5342bis";
|
||||
}
|
||||
enum 64BitMac {
|
||||
value "16390";
|
||||
description
|
||||
"64-bit MAC";
|
||||
reference
|
||||
"draft-eastlake-rfc5342bis";
|
||||
}
|
||||
// value 65535 is reserved by IANA
|
||||
}
|
||||
description
|
||||
"This typedef is a YANG enumeration of IANA-registered address
|
||||
family numbers (AFN).";
|
||||
reference
|
||||
"IANA Address Family Numbers registry.
|
||||
<http://www.iana.org/assignments/address-family-numbers>";
|
||||
}
|
||||
|
||||
typedef subsequent-address-family {
|
||||
type enumeration {
|
||||
// value 0 is reserved by IANA
|
||||
enum nlriUnicast {
|
||||
value "1";
|
||||
description
|
||||
"Network Layer Reachability Information used for unicast
|
||||
forwarding";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
enum nlriMulticast {
|
||||
value "2";
|
||||
description
|
||||
"Network Layer Reachability Information used for multicast
|
||||
forwarding";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
// value 3 is reserved by IANA
|
||||
enum nlriMpls {
|
||||
value "4";
|
||||
description
|
||||
"Network Layer Reachability Information (NLRI) with MPLS
|
||||
Labels";
|
||||
reference
|
||||
"RFC 3107: Carrying Label Information in BGP-4";
|
||||
}
|
||||
enum mcastVpn {
|
||||
value "5";
|
||||
description
|
||||
"MCAST-VPN";
|
||||
reference
|
||||
"RFC 6514: BGP Encodings and Procedures for Multicast in
|
||||
MPLS/BGP IP VPNs";
|
||||
}
|
||||
enum nlriDynamicMsPw {
|
||||
value "6";
|
||||
status "obsolete";
|
||||
description
|
||||
"Network Layer Reachability Information used for Dynamic
|
||||
Placement of Multi-Segment Pseudowires (TEMPORARY -
|
||||
Expires 2008-08-23)";
|
||||
reference
|
||||
"draft-ietf-pwe3-dynamic-ms-pw: Dynamic Placement of Multi
|
||||
Segment Pseudowires";
|
||||
}
|
||||
enum encapsulation {
|
||||
value "7";
|
||||
description
|
||||
"Encapsulation SAFI";
|
||||
reference
|
||||
"RFC 5512: The BGP Encapsulation Subsequent Address Family
|
||||
Identifier (SAFI) and the BGP Tunnel Encapsulation
|
||||
Attribute";
|
||||
}
|
||||
enum tunnel {
|
||||
value "64";
|
||||
status "obsolete";
|
||||
description
|
||||
"Tunnel SAFI";
|
||||
reference
|
||||
"draft-nalawade-kapoor-tunnel-safi: BGP Tunnel SAFI";
|
||||
}
|
||||
enum vpls {
|
||||
value "65";
|
||||
description
|
||||
"Virtual Private LAN Service (VPLS)";
|
||||
reference
|
||||
"RFC 4761: Virtual Private LAN Service (VPLS): Using BGP
|
||||
for Auto-Discovery and Signaling
|
||||
|
||||
RFC 6074: Provisioning, Auto-Discovery, and Signaling in
|
||||
Layer 2 Virtual Private Networks (L2VPNs)";
|
||||
}
|
||||
enum bgpMdt {
|
||||
value "66";
|
||||
description
|
||||
"BGP MDT SAFI";
|
||||
reference
|
||||
"RFC 6037: Cisco Systems' Solution for Multicast in
|
||||
BGP/MPLS IP VPNs";
|
||||
}
|
||||
enum bgp4over6 {
|
||||
value "67";
|
||||
description
|
||||
"BGP 4over6 SAFI";
|
||||
reference
|
||||
"RFC 5747: 4over6 Transit Solution Using IP Encapsulation
|
||||
and MP-BGP Extensions";
|
||||
}
|
||||
enum bgp6over4 {
|
||||
value "68";
|
||||
description
|
||||
"BGP 6over4 SAFI";
|
||||
}
|
||||
enum l1VpnAutoDiscovery {
|
||||
value "69";
|
||||
description
|
||||
"Layer-1 VPN auto-discovery information";
|
||||
reference
|
||||
"RFC 5195: BGP-Based Auto-Discovery for Layer-1 VPNs";
|
||||
}
|
||||
enum mplsVpn {
|
||||
value "128";
|
||||
description
|
||||
"MPLS-labeled VPN address";
|
||||
reference
|
||||
"RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs)";
|
||||
}
|
||||
enum multicastBgpMplsVpn {
|
||||
value "129";
|
||||
description
|
||||
"Multicast for BGP/MPLS IP Virtual Private Networks
|
||||
(VPNs)";
|
||||
reference
|
||||
"RFC 6513: Multicast in MPLS/BGP IP VPNs
|
||||
|
||||
RFC 6514: BGP Encodings and Procedures for Multicast in
|
||||
MPLS/BGP IP VPNs";
|
||||
}
|
||||
// values 130-131 are reserved by IANA
|
||||
enum routeTargetConstraints {
|
||||
value "132";
|
||||
description
|
||||
"Route Target constraints";
|
||||
reference
|
||||
"RFC 4684: Constrained Route Distribution for Border
|
||||
Gateway Protocol/MultiProtocol Label Switching (BGP/MPLS)
|
||||
Internet Protocol (IP) Virtual Private Networks (VPNs)";
|
||||
}
|
||||
enum ipv4DissFlow {
|
||||
value "133";
|
||||
description
|
||||
"IPv4 dissemination of flow specification rules";
|
||||
reference
|
||||
"RFC 5575: Dissemination of Flow Specification Rules";
|
||||
}
|
||||
enum vpnv4DissFlow {
|
||||
value "134";
|
||||
description
|
||||
"VPNv4 dissemination of flow specification rules";
|
||||
reference
|
||||
"RFC 5575: Dissemination of Flow Specification Rules";
|
||||
}
|
||||
// values 135-139 are reserved by IANA
|
||||
enum vpnAutoDiscovery {
|
||||
value "140";
|
||||
status "obsolete";
|
||||
description
|
||||
"VPN auto-discovery";
|
||||
reference
|
||||
"draft-ietf-l3vpn-bgpvpn-auto: Using BGP as an
|
||||
Auto-Discovery Mechanism for VR-based Layer-3 VPNs";
|
||||
}
|
||||
// values 141-240 are reserved by IANA
|
||||
enum private241 {
|
||||
value "241";
|
||||
description
|
||||
"Reserved for Private Use";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
enum private242 {
|
||||
value "242";
|
||||
description
|
||||
"Reserved for Private Use";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
enum private243 {
|
||||
value "243";
|
||||
description
|
||||
"Reserved for Private Use";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
enum private244 {
|
||||
value "244";
|
||||
description
|
||||
"Reserved for Private Use";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
enum private245 {
|
||||
value "245";
|
||||
description
|
||||
"Reserved for Private Use";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
enum private246 {
|
||||
value "246";
|
||||
description
|
||||
"Reserved for Private Use";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
enum private247 {
|
||||
value "247";
|
||||
description
|
||||
"Reserved for Private Use";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
enum private248 {
|
||||
value "248";
|
||||
description
|
||||
"Reserved for Private Use";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
enum private249 {
|
||||
value "249";
|
||||
description
|
||||
"Reserved for Private Use";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
enum private250 {
|
||||
value "250";
|
||||
description
|
||||
"Reserved for Private Use";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
enum private251 {
|
||||
value "251";
|
||||
description
|
||||
"Reserved for Private Use";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
enum private252 {
|
||||
value "252";
|
||||
description
|
||||
"Reserved for Private Use";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
enum private253 {
|
||||
value "253";
|
||||
description
|
||||
"Reserved for Private Use";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
enum private254 {
|
||||
value "254";
|
||||
description
|
||||
"Reserved for Private Use";
|
||||
reference
|
||||
"RFC 4760: Multiprotocol Extensions for BGP-4";
|
||||
}
|
||||
// value 255 is reserved by IANA
|
||||
}
|
||||
description
|
||||
"This typedef is a YANG enumeration of IANA-registered
|
||||
subsequent address family identifiers (SAFI).";
|
||||
reference
|
||||
"IANA SAFI Values registry.
|
||||
<http://www.iana.org/assignments/safi-namespace>";
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,461 @@
|
||||
module ietf-inet-types {
|
||||
|
||||
namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types";
|
||||
prefix "inet";
|
||||
|
||||
organization
|
||||
"IETF NETMOD (NETCONF Data Modeling Language) Working Group";
|
||||
|
||||
contact
|
||||
"WG Web: <http://tools.ietf.org/wg/netmod/>
|
||||
WG List: <mailto:netmod@ietf.org>
|
||||
|
||||
WG Chair: David Kessens
|
||||
<mailto:david.kessens@nsn.com>
|
||||
|
||||
WG Chair: Juergen Schoenwaelder
|
||||
<mailto:j.schoenwaelder@jacobs-university.de>
|
||||
|
||||
Editor: Juergen Schoenwaelder
|
||||
<mailto:j.schoenwaelder@jacobs-university.de>";
|
||||
|
||||
description
|
||||
"This module contains a collection of generally useful derived
|
||||
YANG data types for Internet addresses and related things.
|
||||
|
||||
Copyright (c) 2013 IETF Trust and the persons identified as
|
||||
authors of the code. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or
|
||||
without modification, is permitted pursuant to, and subject
|
||||
to the license terms contained in, the Simplified BSD License
|
||||
set forth in Section 4.c of the IETF Trust's Legal Provisions
|
||||
Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info).
|
||||
|
||||
This version of this YANG module is part of RFC 6991; see
|
||||
the RFC itself for full legal notices.";
|
||||
|
||||
revision 2013-07-15 {
|
||||
description
|
||||
"This revision adds the following new data types:
|
||||
- ip-address-no-zone
|
||||
- ipv4-address-no-zone
|
||||
- ipv6-address-no-zone";
|
||||
reference
|
||||
"RFC 6991: Common YANG Data Types";
|
||||
}
|
||||
|
||||
revision 2010-09-24 {
|
||||
description
|
||||
"Initial revision.";
|
||||
reference
|
||||
"RFC 6021: Common YANG Data Types";
|
||||
}
|
||||
|
||||
/*** collection of types related to protocol fields ***/
|
||||
|
||||
typedef ip-version {
|
||||
type enumeration {
|
||||
enum unknown {
|
||||
value "0";
|
||||
description
|
||||
"An unknown or unspecified version of the Internet
|
||||
protocol.";
|
||||
}
|
||||
enum ipv4 {
|
||||
value "1";
|
||||
description
|
||||
"The IPv4 protocol as defined in RFC 791.";
|
||||
}
|
||||
enum ipv6 {
|
||||
value "2";
|
||||
description
|
||||
"The IPv6 protocol as defined in RFC 2460.";
|
||||
}
|
||||
}
|
||||
description
|
||||
"This value represents the version of the IP protocol.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the InetVersion textual convention of the SMIv2.";
|
||||
reference
|
||||
"RFC 791: Internet Protocol
|
||||
RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
|
||||
RFC 4001: Textual Conventions for Internet Network Addresses";
|
||||
}
|
||||
|
||||
typedef dscp {
|
||||
type uint8 {
|
||||
range "0..63";
|
||||
}
|
||||
description
|
||||
"The dscp type represents a Differentiated Services Code Point
|
||||
that may be used for marking packets in a traffic stream.
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the Dscp textual convention of the SMIv2.";
|
||||
reference
|
||||
"RFC 3289: Management Information Base for the Differentiated
|
||||
Services Architecture
|
||||
RFC 2474: Definition of the Differentiated Services Field
|
||||
(DS Field) in the IPv4 and IPv6 Headers
|
||||
RFC 2780: IANA Allocation Guidelines For Values In
|
||||
the Internet Protocol and Related Headers";
|
||||
}
|
||||
|
||||
typedef ipv6-flow-label {
|
||||
type uint32 {
|
||||
range "0..1048575";
|
||||
}
|
||||
description
|
||||
"The ipv6-flow-label type represents the flow identifier or Flow
|
||||
Label in an IPv6 packet header that may be used to
|
||||
discriminate traffic flows.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the IPv6FlowLabel textual convention of the SMIv2.";
|
||||
reference
|
||||
"RFC 3595: Textual Conventions for IPv6 Flow Label
|
||||
RFC 2460: Internet Protocol, Version 6 (IPv6) Specification";
|
||||
}
|
||||
|
||||
typedef port-number {
|
||||
type uint16 {
|
||||
range "0..65535";
|
||||
}
|
||||
description
|
||||
"The port-number type represents a 16-bit port number of an
|
||||
Internet transport-layer protocol such as UDP, TCP, DCCP, or
|
||||
SCTP. Port numbers are assigned by IANA. A current list of
|
||||
all assignments is available from <http://www.iana.org/>.
|
||||
|
||||
Note that the port number value zero is reserved by IANA. In
|
||||
situations where the value zero does not make sense, it can
|
||||
be excluded by subtyping the port-number type.
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the InetPortNumber textual convention of the SMIv2.";
|
||||
reference
|
||||
"RFC 768: User Datagram Protocol
|
||||
RFC 793: Transmission Control Protocol
|
||||
RFC 4960: Stream Control Transmission Protocol
|
||||
RFC 4340: Datagram Congestion Control Protocol (DCCP)
|
||||
RFC 4001: Textual Conventions for Internet Network Addresses";
|
||||
}
|
||||
|
||||
/*** collection of types related to autonomous systems ***/
|
||||
|
||||
typedef as-number {
|
||||
type uint32;
|
||||
description
|
||||
"The as-number type represents autonomous system numbers
|
||||
which identify an Autonomous System (AS). An AS is a set
|
||||
of routers under a single technical administration, using
|
||||
an interior gateway protocol and common metrics to route
|
||||
packets within the AS, and using an exterior gateway
|
||||
protocol to route packets to other ASes. IANA maintains
|
||||
the AS number space and has delegated large parts to the
|
||||
regional registries.
|
||||
|
||||
Autonomous system numbers were originally limited to 16
|
||||
bits. BGP extensions have enlarged the autonomous system
|
||||
number space to 32 bits. This type therefore uses an uint32
|
||||
base type without a range restriction in order to support
|
||||
a larger autonomous system number space.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the InetAutonomousSystemNumber textual convention of
|
||||
the SMIv2.";
|
||||
reference
|
||||
"RFC 1930: Guidelines for creation, selection, and registration
|
||||
of an Autonomous System (AS)
|
||||
RFC 4271: A Border Gateway Protocol 4 (BGP-4)
|
||||
RFC 4001: Textual Conventions for Internet Network Addresses
|
||||
RFC 6793: BGP Support for Four-Octet Autonomous System (AS)
|
||||
Number Space";
|
||||
}
|
||||
|
||||
/*** collection of types related to IP addresses and hostnames ***/
|
||||
|
||||
typedef ip-address {
|
||||
type union {
|
||||
type inet:ipv4-address;
|
||||
type inet:ipv6-address;
|
||||
}
|
||||
description
|
||||
"The ip-address type represents an IP address and is IP
|
||||
version neutral. The format of the textual representation
|
||||
implies the IP version. This type supports scoped addresses
|
||||
by allowing zone identifiers in the address format.";
|
||||
reference
|
||||
"RFC 4007: IPv6 Scoped Address Architecture";
|
||||
}
|
||||
|
||||
typedef ipv4-address {
|
||||
type string {
|
||||
pattern
|
||||
'(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
|
||||
+ '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
|
||||
+ '(%[\p{N}\p{L}]+)?';
|
||||
}
|
||||
description
|
||||
"The ipv4-address type represents an IPv4 address in
|
||||
dotted-quad notation. The IPv4 address may include a zone
|
||||
index, separated by a % sign.
|
||||
|
||||
The zone index is used to disambiguate identical address
|
||||
values. For link-local addresses, the zone index will
|
||||
typically be the interface index number or the name of an
|
||||
interface. If the zone index is not present, the default
|
||||
zone of the device will be used.
|
||||
|
||||
The canonical format for the zone index is the numerical
|
||||
format";
|
||||
}
|
||||
|
||||
typedef ipv6-address {
|
||||
type string {
|
||||
pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
|
||||
+ '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
|
||||
+ '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
|
||||
+ '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
|
||||
+ '(%[\p{N}\p{L}]+)?';
|
||||
pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
|
||||
+ '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
|
||||
+ '(%.+)?';
|
||||
}
|
||||
description
|
||||
"The ipv6-address type represents an IPv6 address in full,
|
||||
mixed, shortened, and shortened-mixed notation. The IPv6
|
||||
address may include a zone index, separated by a % sign.
|
||||
|
||||
The zone index is used to disambiguate identical address
|
||||
values. For link-local addresses, the zone index will
|
||||
typically be the interface index number or the name of an
|
||||
interface. If the zone index is not present, the default
|
||||
zone of the device will be used.
|
||||
|
||||
|
||||
|
||||
The canonical format of IPv6 addresses uses the textual
|
||||
representation defined in Section 4 of RFC 5952. The
|
||||
canonical format for the zone index is the numerical
|
||||
format as described in Section 11.2 of RFC 4007.";
|
||||
reference
|
||||
"RFC 4291: IP Version 6 Addressing Architecture
|
||||
RFC 4007: IPv6 Scoped Address Architecture
|
||||
RFC 5952: A Recommendation for IPv6 Address Text
|
||||
Representation";
|
||||
}
|
||||
|
||||
typedef ip-address-no-zone {
|
||||
type union {
|
||||
type inet:ipv4-address-no-zone;
|
||||
type inet:ipv6-address-no-zone;
|
||||
}
|
||||
description
|
||||
"The ip-address-no-zone type represents an IP address and is
|
||||
IP version neutral. The format of the textual representation
|
||||
implies the IP version. This type does not support scoped
|
||||
addresses since it does not allow zone identifiers in the
|
||||
address format.";
|
||||
reference
|
||||
"RFC 4007: IPv6 Scoped Address Architecture";
|
||||
}
|
||||
|
||||
typedef ipv4-address-no-zone {
|
||||
type inet:ipv4-address {
|
||||
pattern '[0-9\.]*';
|
||||
}
|
||||
description
|
||||
"An IPv4 address without a zone index. This type, derived from
|
||||
ipv4-address, may be used in situations where the zone is
|
||||
known from the context and hence no zone index is needed.";
|
||||
}
|
||||
|
||||
typedef ipv6-address-no-zone {
|
||||
type inet:ipv6-address {
|
||||
pattern '[0-9a-fA-F:\.]*';
|
||||
}
|
||||
description
|
||||
"An IPv6 address without a zone index. This type, derived from
|
||||
ipv6-address, may be used in situations where the zone is
|
||||
known from the context and hence no zone index is needed.";
|
||||
reference
|
||||
"RFC 4291: IP Version 6 Addressing Architecture
|
||||
RFC 4007: IPv6 Scoped Address Architecture
|
||||
RFC 5952: A Recommendation for IPv6 Address Text
|
||||
Representation";
|
||||
}
|
||||
|
||||
typedef ip-prefix {
|
||||
type union {
|
||||
type inet:ipv4-prefix;
|
||||
type inet:ipv6-prefix;
|
||||
}
|
||||
description
|
||||
"The ip-prefix type represents an IP prefix and is IP
|
||||
version neutral. The format of the textual representations
|
||||
implies the IP version.";
|
||||
}
|
||||
|
||||
typedef ipv4-prefix {
|
||||
type string {
|
||||
pattern
|
||||
'(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
|
||||
+ '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
|
||||
+ '/(([0-9])|([1-2][0-9])|(3[0-2]))';
|
||||
}
|
||||
description
|
||||
"The ipv4-prefix type represents an IPv4 address prefix.
|
||||
The prefix length is given by the number following the
|
||||
slash character and must be less than or equal to 32.
|
||||
|
||||
A prefix length value of n corresponds to an IP address
|
||||
mask that has n contiguous 1-bits from the most
|
||||
significant bit (MSB) and all other bits set to 0.
|
||||
|
||||
The canonical format of an IPv4 prefix has all bits of
|
||||
the IPv4 address set to zero that are not part of the
|
||||
IPv4 prefix.";
|
||||
}
|
||||
|
||||
typedef ipv6-prefix {
|
||||
type string {
|
||||
pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
|
||||
+ '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
|
||||
+ '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
|
||||
+ '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
|
||||
+ '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))';
|
||||
pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
|
||||
+ '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
|
||||
+ '(/.+)';
|
||||
}
|
||||
|
||||
|
||||
description
|
||||
"The ipv6-prefix type represents an IPv6 address prefix.
|
||||
The prefix length is given by the number following the
|
||||
slash character and must be less than or equal to 128.
|
||||
|
||||
A prefix length value of n corresponds to an IP address
|
||||
mask that has n contiguous 1-bits from the most
|
||||
significant bit (MSB) and all other bits set to 0.
|
||||
|
||||
The IPv6 address should have all bits that do not belong
|
||||
to the prefix set to zero.
|
||||
|
||||
The canonical format of an IPv6 prefix has all bits of
|
||||
the IPv6 address set to zero that are not part of the
|
||||
IPv6 prefix. Furthermore, the IPv6 address is represented
|
||||
as defined in Section 4 of RFC 5952.";
|
||||
reference
|
||||
"RFC 5952: A Recommendation for IPv6 Address Text
|
||||
Representation";
|
||||
}
|
||||
|
||||
/*** collection of domain name and URI types ***/
|
||||
|
||||
typedef domain-name {
|
||||
type string {
|
||||
pattern
|
||||
'((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
|
||||
+ '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
|
||||
+ '|\.';
|
||||
length "1..253";
|
||||
}
|
||||
description
|
||||
"The domain-name type represents a DNS domain name. The
|
||||
name SHOULD be fully qualified whenever possible.
|
||||
|
||||
Internet domain names are only loosely specified. Section
|
||||
3.5 of RFC 1034 recommends a syntax (modified in Section
|
||||
2.1 of RFC 1123). The pattern above is intended to allow
|
||||
for current practice in domain name use, and some possible
|
||||
future expansion. It is designed to hold various types of
|
||||
domain names, including names used for A or AAAA records
|
||||
(host names) and other records, such as SRV records. Note
|
||||
that Internet host names have a stricter syntax (described
|
||||
in RFC 952) than the DNS recommendations in RFCs 1034 and
|
||||
1123, and that systems that want to store host names in
|
||||
schema nodes using the domain-name type are recommended to
|
||||
adhere to this stricter standard to ensure interoperability.
|
||||
|
||||
The encoding of DNS names in the DNS protocol is limited
|
||||
to 255 characters. Since the encoding consists of labels
|
||||
prefixed by a length bytes and there is a trailing NULL
|
||||
byte, only 253 characters can appear in the textual dotted
|
||||
notation.
|
||||
|
||||
The description clause of schema nodes using the domain-name
|
||||
type MUST describe when and how these names are resolved to
|
||||
IP addresses. Note that the resolution of a domain-name value
|
||||
may require to query multiple DNS records (e.g., A for IPv4
|
||||
and AAAA for IPv6). The order of the resolution process and
|
||||
which DNS record takes precedence can either be defined
|
||||
explicitly or may depend on the configuration of the
|
||||
resolver.
|
||||
|
||||
Domain-name values use the US-ASCII encoding. Their canonical
|
||||
format uses lowercase US-ASCII characters. Internationalized
|
||||
domain names MUST be A-labels as per RFC 5890.";
|
||||
reference
|
||||
"RFC 952: DoD Internet Host Table Specification
|
||||
RFC 1034: Domain Names - Concepts and Facilities
|
||||
RFC 1123: Requirements for Internet Hosts -- Application
|
||||
and Support
|
||||
RFC 2782: A DNS RR for specifying the location of services
|
||||
(DNS SRV)
|
||||
RFC 5890: Internationalized Domain Names in Applications
|
||||
(IDNA): Definitions and Document Framework";
|
||||
}
|
||||
|
||||
typedef host {
|
||||
type union {
|
||||
type inet:ip-address;
|
||||
type inet:domain-name;
|
||||
}
|
||||
description
|
||||
"The host type represents either an IP address or a DNS
|
||||
domain name.";
|
||||
}
|
||||
|
||||
typedef uri {
|
||||
type string;
|
||||
description
|
||||
"The uri type represents a Uniform Resource Identifier
|
||||
(URI) as defined by STD 66.
|
||||
|
||||
Objects using the uri type MUST be in US-ASCII encoding,
|
||||
and MUST be normalized as described by RFC 3986 Sections
|
||||
6.2.1, 6.2.2.1, and 6.2.2.2. All unnecessary
|
||||
percent-encoding is removed, and all case-insensitive
|
||||
characters are set to lowercase except for hexadecimal
|
||||
digits, which are normalized to uppercase as described in
|
||||
Section 6.2.2.1.
|
||||
|
||||
The purpose of this normalization is to help provide
|
||||
unique URIs. Note that this normalization is not
|
||||
sufficient to provide uniqueness. Two URIs that are
|
||||
textually distinct after this normalization may still be
|
||||
equivalent.
|
||||
|
||||
Objects using the uri type may restrict the schemes that
|
||||
they permit. For example, 'data:' and 'urn:' schemes
|
||||
might not be appropriate.
|
||||
|
||||
A zero-length URI is not a valid URI. This can be used to
|
||||
express 'URI absent' where required.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the Uri SMIv2 textual convention defined in RFC 5017.";
|
||||
reference
|
||||
"RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
|
||||
RFC 3305: Report from the Joint W3C/IETF URI Planning Interest
|
||||
Group: Uniform Resource Identifiers (URIs), URLs,
|
||||
and Uniform Resource Names (URNs): Clarifications
|
||||
and Recommendations
|
||||
RFC 5017: MIB Textual Conventions for Uniform Resource
|
||||
Identifiers (URIs)";
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,450 @@
|
||||
module ietf-netconf-acm {
|
||||
|
||||
namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-acm";
|
||||
|
||||
prefix "nacm";
|
||||
|
||||
import ietf-yang-types {
|
||||
prefix yang;
|
||||
}
|
||||
|
||||
organization
|
||||
"IETF NETCONF (Network Configuration) Working Group";
|
||||
|
||||
contact
|
||||
"WG Web: <http://tools.ietf.org/wg/netconf/>
|
||||
WG List: <mailto:netconf@ietf.org>
|
||||
|
||||
WG Chair: Mehmet Ersue
|
||||
<mailto:mehmet.ersue@nsn.com>
|
||||
|
||||
WG Chair: Bert Wijnen
|
||||
<mailto:bertietf@bwijnen.net>
|
||||
|
||||
Editor: Andy Bierman
|
||||
<mailto:andy@yumaworks.com>
|
||||
|
||||
Editor: Martin Bjorklund
|
||||
<mailto:mbj@tail-f.com>";
|
||||
|
||||
description
|
||||
"NETCONF Access Control Model.
|
||||
|
||||
Copyright (c) 2012 IETF Trust and the persons identified as
|
||||
authors of the code. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or
|
||||
without modification, is permitted pursuant to, and subject
|
||||
to the license terms contained in, the Simplified BSD
|
||||
License set forth in Section 4.c of the IETF Trust's
|
||||
Legal Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info).
|
||||
|
||||
This version of this YANG module is part of RFC 6536; see
|
||||
the RFC itself for full legal notices.";
|
||||
|
||||
revision "2012-02-22" {
|
||||
description
|
||||
"Initial version;
|
||||
Errata ID: 3862 and 3863";
|
||||
reference
|
||||
"RFC 6536: Network Configuration Protocol (NETCONF)
|
||||
Access Control Model";
|
||||
}
|
||||
|
||||
// /*
|
||||
// * Extension statements
|
||||
// */
|
||||
|
||||
// extension default-deny-write {
|
||||
// description
|
||||
// "Used to indicate that the data model node
|
||||
// represents a sensitive security system parameter.
|
||||
|
||||
// If present, and the NACM module is enabled (i.e.,
|
||||
// /nacm/enable-nacm object equals 'true'), the NETCONF server
|
||||
// will only allow the designated 'recovery session' to have
|
||||
// write access to the node. An explicit access control rule is
|
||||
// required for all other users.
|
||||
|
||||
// The 'default-deny-write' extension MAY appear within a data
|
||||
// definition statement. It is ignored otherwise.";
|
||||
// }
|
||||
|
||||
// extension default-deny-all {
|
||||
// description
|
||||
// "Used to indicate that the data model node
|
||||
// controls a very sensitive security system parameter.
|
||||
|
||||
// If present, and the NACM module is enabled (i.e.,
|
||||
// /nacm/enable-nacm object equals 'true'), the NETCONF server
|
||||
// will only allow the designated 'recovery session' to have
|
||||
// read, write, or execute access to the node. An explicit
|
||||
// access control rule is required for all other users.
|
||||
|
||||
// The 'default-deny-all' extension MAY appear within a data
|
||||
// definition statement, 'rpc' statement, or 'notification'
|
||||
// statement. It is ignored otherwise.";
|
||||
// }
|
||||
|
||||
/*
|
||||
* Derived types
|
||||
*/
|
||||
|
||||
typedef user-name-type {
|
||||
type string {
|
||||
length "1..max";
|
||||
}
|
||||
description
|
||||
"General Purpose Username string.";
|
||||
}
|
||||
|
||||
typedef matchall-string-type {
|
||||
type string {
|
||||
pattern '\*';
|
||||
}
|
||||
description
|
||||
"The string containing a single asterisk '*' is used
|
||||
to conceptually represent all possible values
|
||||
for the particular leaf using this data type.";
|
||||
}
|
||||
|
||||
typedef access-operations-type {
|
||||
type bits {
|
||||
bit create {
|
||||
description
|
||||
"Any protocol operation that creates a
|
||||
new data node.";
|
||||
}
|
||||
bit read {
|
||||
description
|
||||
"Any protocol operation or notification that
|
||||
returns the value of a data node.";
|
||||
}
|
||||
bit update {
|
||||
description
|
||||
"Any protocol operation that alters an existing
|
||||
data node.";
|
||||
}
|
||||
bit delete {
|
||||
description
|
||||
"Any protocol operation that removes a data node.";
|
||||
}
|
||||
bit exec {
|
||||
description
|
||||
"Execution access to the specified protocol operation.";
|
||||
}
|
||||
}
|
||||
description
|
||||
"NETCONF Access Operation.";
|
||||
}
|
||||
|
||||
typedef group-name-type {
|
||||
type string {
|
||||
length "1..max";
|
||||
pattern '[^\*].*';
|
||||
}
|
||||
description
|
||||
"Name of administrative group to which
|
||||
users can be assigned.";
|
||||
}
|
||||
|
||||
typedef action-type {
|
||||
type enumeration {
|
||||
enum permit {
|
||||
description
|
||||
"Requested action is permitted.";
|
||||
}
|
||||
enum deny {
|
||||
description
|
||||
"Requested action is denied.";
|
||||
}
|
||||
}
|
||||
description
|
||||
"Action taken by the server when a particular
|
||||
rule matches.";
|
||||
}
|
||||
|
||||
typedef node-instance-identifier {
|
||||
type yang:xpath1.0;
|
||||
description
|
||||
"Path expression used to represent a special
|
||||
data node instance identifier string.
|
||||
|
||||
A node-instance-identifier value is an
|
||||
unrestricted YANG instance-identifier expression.
|
||||
All the same rules as an instance-identifier apply
|
||||
except predicates for keys are optional. If a key
|
||||
predicate is missing, then the node-instance-identifier
|
||||
represents all possible server instances for that key.
|
||||
|
||||
This XPath expression is evaluated in the following context:
|
||||
|
||||
o The set of namespace declarations are those in scope on
|
||||
the leaf element where this type is used.
|
||||
|
||||
o The set of variable bindings contains one variable,
|
||||
'USER', which contains the name of the user of the current
|
||||
session.
|
||||
|
||||
o The function library is the core function library, but
|
||||
note that due to the syntax restrictions of an
|
||||
instance-identifier, no functions are allowed.
|
||||
|
||||
o The context node is the root node in the data tree.";
|
||||
}
|
||||
|
||||
/*
|
||||
* Data definition statements
|
||||
*/
|
||||
|
||||
container nacm {
|
||||
// nacm:default-deny-all;
|
||||
|
||||
description
|
||||
"Parameters for NETCONF Access Control Model.";
|
||||
|
||||
leaf enable-nacm {
|
||||
type boolean;
|
||||
default true;
|
||||
description
|
||||
"Enables or disables all NETCONF access control
|
||||
enforcement. If 'true', then enforcement
|
||||
is enabled. If 'false', then enforcement
|
||||
is disabled.";
|
||||
}
|
||||
|
||||
leaf read-default {
|
||||
type action-type;
|
||||
default "permit";
|
||||
description
|
||||
"Controls whether read access is granted if
|
||||
no appropriate rule is found for a
|
||||
particular read request.";
|
||||
}
|
||||
|
||||
leaf write-default {
|
||||
type action-type;
|
||||
default "deny";
|
||||
description
|
||||
"Controls whether create, update, or delete access
|
||||
is granted if no appropriate rule is found for a
|
||||
particular write request.";
|
||||
}
|
||||
|
||||
leaf exec-default {
|
||||
type action-type;
|
||||
default "permit";
|
||||
description
|
||||
"Controls whether exec access is granted if no appropriate
|
||||
rule is found for a particular protocol operation request.";
|
||||
}
|
||||
|
||||
leaf enable-external-groups {
|
||||
type boolean;
|
||||
default true;
|
||||
description
|
||||
"Controls whether the server uses the groups reported by the
|
||||
NETCONF transport layer when it assigns the user to a set of
|
||||
NACM groups. If this leaf has the value 'false', any group
|
||||
names reported by the transport layer are ignored by the
|
||||
server.";
|
||||
}
|
||||
|
||||
leaf denied-operations {
|
||||
type yang:zero-based-counter32;
|
||||
config false;
|
||||
mandatory true;
|
||||
description
|
||||
"Number of times since the server last restarted that a
|
||||
protocol operation request was denied.";
|
||||
}
|
||||
|
||||
leaf denied-data-writes {
|
||||
type yang:zero-based-counter32;
|
||||
config false;
|
||||
mandatory true;
|
||||
description
|
||||
"Number of times since the server last restarted that a
|
||||
protocol operation request to alter
|
||||
a configuration datastore was denied.";
|
||||
}
|
||||
|
||||
leaf denied-notifications {
|
||||
type yang:zero-based-counter32;
|
||||
config false;
|
||||
mandatory true;
|
||||
description
|
||||
"Number of times since the server last restarted that
|
||||
a notification was dropped for a subscription because
|
||||
access to the event type was denied.";
|
||||
}
|
||||
|
||||
container groups {
|
||||
description
|
||||
"NETCONF Access Control Groups.";
|
||||
|
||||
list group {
|
||||
key name;
|
||||
|
||||
description
|
||||
"One NACM Group Entry. This list will only contain
|
||||
configured entries, not any entries learned from
|
||||
any transport protocols.";
|
||||
|
||||
leaf name {
|
||||
type group-name-type;
|
||||
description
|
||||
"Group name associated with this entry.";
|
||||
}
|
||||
|
||||
leaf-list user-name {
|
||||
type user-name-type;
|
||||
description
|
||||
"Each entry identifies the username of
|
||||
a member of the group associated with
|
||||
this entry.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
list rule-list {
|
||||
key "name";
|
||||
ordered-by user;
|
||||
description
|
||||
"An ordered collection of access control rules.";
|
||||
|
||||
leaf name {
|
||||
type string {
|
||||
length "1..max";
|
||||
}
|
||||
description
|
||||
"Arbitrary name assigned to the rule-list.";
|
||||
}
|
||||
leaf-list group {
|
||||
type union {
|
||||
type matchall-string-type;
|
||||
type group-name-type;
|
||||
}
|
||||
description
|
||||
"List of administrative groups that will be
|
||||
assigned the associated access rights
|
||||
defined by the 'rule' list.
|
||||
|
||||
The string '*' indicates that all groups apply to the
|
||||
entry.";
|
||||
}
|
||||
|
||||
list rule {
|
||||
key "name";
|
||||
ordered-by user;
|
||||
description
|
||||
"One access control rule.
|
||||
|
||||
Rules are processed in user-defined order until a match is
|
||||
found. A rule matches if 'module-name', 'rule-type', and
|
||||
'access-operations' match the request. If a rule
|
||||
matches, the 'action' leaf determines if access is granted
|
||||
or not.";
|
||||
|
||||
leaf name {
|
||||
type string {
|
||||
length "1..max";
|
||||
}
|
||||
description
|
||||
"Arbitrary name assigned to the rule.";
|
||||
}
|
||||
|
||||
leaf module-name {
|
||||
type union {
|
||||
type matchall-string-type;
|
||||
type string;
|
||||
}
|
||||
default "*";
|
||||
description
|
||||
"Name of the module associated with this rule.
|
||||
|
||||
This leaf matches if it has the value '*' or if the
|
||||
object being accessed is defined in the module with the
|
||||
specified module name.";
|
||||
}
|
||||
choice rule-type {
|
||||
description
|
||||
"This choice matches if all leafs present in the rule
|
||||
match the request. If no leafs are present, the
|
||||
choice matches all requests.";
|
||||
case protocol-operation {
|
||||
leaf rpc-name {
|
||||
type union {
|
||||
type matchall-string-type;
|
||||
type string;
|
||||
}
|
||||
description
|
||||
"This leaf matches if it has the value '*' or if
|
||||
its value equals the requested protocol operation
|
||||
name.";
|
||||
}
|
||||
}
|
||||
case notification {
|
||||
leaf notification-name {
|
||||
type union {
|
||||
type matchall-string-type;
|
||||
type string;
|
||||
}
|
||||
description
|
||||
"This leaf matches if it has the value '*' or if its
|
||||
value equals the requested notification name.";
|
||||
}
|
||||
}
|
||||
case data-node {
|
||||
leaf path {
|
||||
type node-instance-identifier;
|
||||
mandatory true;
|
||||
description
|
||||
"Data Node Instance Identifier associated with the
|
||||
data node controlled by this rule.
|
||||
|
||||
Configuration data or state data instance
|
||||
identifiers start with a top-level data node. A
|
||||
complete instance identifier is required for this
|
||||
type of path value.
|
||||
|
||||
The special value '/' refers to all possible
|
||||
datastore contents.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
leaf access-operations {
|
||||
type union {
|
||||
type matchall-string-type;
|
||||
type access-operations-type;
|
||||
}
|
||||
default "*";
|
||||
description
|
||||
"Access operations associated with this rule.
|
||||
|
||||
This leaf matches if it has the value '*' or if the
|
||||
bit corresponding to the requested operation is set.";
|
||||
}
|
||||
|
||||
leaf action {
|
||||
type action-type;
|
||||
mandatory true;
|
||||
description
|
||||
"The access control action associated with the
|
||||
rule. If a rule is determined to match a
|
||||
particular request, then this object is used
|
||||
to determine whether to permit or deny the
|
||||
request.";
|
||||
}
|
||||
|
||||
leaf comment {
|
||||
type string;
|
||||
description
|
||||
"A textual description of the access rule.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,934 @@
|
||||
module ietf-netconf {
|
||||
|
||||
// the namespace for NETCONF XML definitions is unchanged
|
||||
// from RFC 4741, which this document replaces
|
||||
namespace "urn:ietf:params:xml:ns:netconf:base:1.0";
|
||||
|
||||
prefix nc;
|
||||
|
||||
import ietf-inet-types {
|
||||
prefix inet;
|
||||
}
|
||||
|
||||
import ietf-netconf-acm { prefix nacm; }
|
||||
|
||||
organization
|
||||
"IETF NETCONF (Network Configuration) Working Group";
|
||||
|
||||
contact
|
||||
"WG Web: <http://tools.ietf.org/wg/netconf/>
|
||||
WG List: <netconf@ietf.org>
|
||||
|
||||
WG Chair: Bert Wijnen
|
||||
<bertietf@bwijnen.net>
|
||||
|
||||
WG Chair: Mehmet Ersue
|
||||
<mehmet.ersue@nsn.com>
|
||||
|
||||
Editor: Martin Bjorklund
|
||||
<mbj@tail-f.com>
|
||||
|
||||
Editor: Juergen Schoenwaelder
|
||||
<j.schoenwaelder@jacobs-university.de>
|
||||
|
||||
Editor: Andy Bierman
|
||||
<andy.bierman@brocade.com>";
|
||||
description
|
||||
"NETCONF Protocol Data Types and Protocol Operations.
|
||||
|
||||
Copyright (c) 2011 IETF Trust and the persons identified as
|
||||
the document authors. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or
|
||||
without modification, is permitted pursuant to, and subject
|
||||
to the license terms contained in, the Simplified BSD License
|
||||
set forth in Section 4.c of the IETF Trust's Legal Provisions
|
||||
Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info).
|
||||
|
||||
This version of this YANG module is part of RFC 6241; see
|
||||
the RFC itself for full legal notices.";
|
||||
|
||||
revision 2011-06-01 {
|
||||
description
|
||||
"Initial revision;
|
||||
2013-09-29: Updated to include NACM attributes,
|
||||
as specified in RFC 6536: sec 3.2.5 and 3.2.8";
|
||||
reference
|
||||
"RFC 6241: Network Configuration Protocol";
|
||||
}
|
||||
|
||||
// extension get-filter-element-attributes {
|
||||
// description
|
||||
// "If this extension is present within an 'anyxml'
|
||||
// statement named 'filter', which must be conceptually
|
||||
// defined within the RPC input section for the <get>
|
||||
// and <get-config> protocol operations, then the
|
||||
// following unqualified XML attribute is supported
|
||||
// within the <filter> element, within a <get> or
|
||||
// <get-config> protocol operation:
|
||||
|
||||
// type : optional attribute with allowed
|
||||
// value strings 'subtree' and 'xpath'.
|
||||
// If missing, the default value is 'subtree'.
|
||||
|
||||
// If the 'xpath' feature is supported, then the
|
||||
// following unqualified XML attribute is
|
||||
// also supported:
|
||||
|
||||
// select: optional attribute containing a
|
||||
// string representing an XPath expression.
|
||||
// The 'type' attribute must be equal to 'xpath'
|
||||
// if this attribute is present.";
|
||||
// }
|
||||
|
||||
// NETCONF capabilities defined as features
|
||||
feature writable-running {
|
||||
description
|
||||
"NETCONF :writable-running capability;
|
||||
If the server advertises the :writable-running
|
||||
capability for a session, then this feature must
|
||||
also be enabled for that session. Otherwise,
|
||||
this feature must not be enabled.";
|
||||
reference "RFC 6241, Section 8.2";
|
||||
}
|
||||
|
||||
feature candidate {
|
||||
description
|
||||
"NETCONF :candidate capability;
|
||||
If the server advertises the :candidate
|
||||
capability for a session, then this feature must
|
||||
also be enabled for that session. Otherwise,
|
||||
this feature must not be enabled.";
|
||||
reference "RFC 6241, Section 8.3";
|
||||
}
|
||||
|
||||
feature confirmed-commit {
|
||||
if-feature candidate;
|
||||
description
|
||||
"NETCONF :confirmed-commit:1.1 capability;
|
||||
If the server advertises the :confirmed-commit:1.1
|
||||
capability for a session, then this feature must
|
||||
also be enabled for that session. Otherwise,
|
||||
this feature must not be enabled.";
|
||||
|
||||
reference "RFC 6241, Section 8.4";
|
||||
}
|
||||
|
||||
feature rollback-on-error {
|
||||
description
|
||||
"NETCONF :rollback-on-error capability;
|
||||
If the server advertises the :rollback-on-error
|
||||
capability for a session, then this feature must
|
||||
also be enabled for that session. Otherwise,
|
||||
this feature must not be enabled.";
|
||||
reference "RFC 6241, Section 8.5";
|
||||
}
|
||||
|
||||
feature validate {
|
||||
description
|
||||
"NETCONF :validate:1.1 capability;
|
||||
If the server advertises the :validate:1.1
|
||||
capability for a session, then this feature must
|
||||
also be enabled for that session. Otherwise,
|
||||
this feature must not be enabled.";
|
||||
reference "RFC 6241, Section 8.6";
|
||||
}
|
||||
|
||||
feature startup {
|
||||
description
|
||||
"NETCONF :startup capability;
|
||||
If the server advertises the :startup
|
||||
capability for a session, then this feature must
|
||||
also be enabled for that session. Otherwise,
|
||||
this feature must not be enabled.";
|
||||
reference "RFC 6241, Section 8.7";
|
||||
}
|
||||
|
||||
feature url {
|
||||
description
|
||||
"NETCONF :url capability;
|
||||
If the server advertises the :url
|
||||
capability for a session, then this feature must
|
||||
also be enabled for that session. Otherwise,
|
||||
this feature must not be enabled.";
|
||||
reference "RFC 6241, Section 8.8";
|
||||
}
|
||||
|
||||
feature xpath {
|
||||
description
|
||||
"NETCONF :xpath capability;
|
||||
If the server advertises the :xpath
|
||||
capability for a session, then this feature must
|
||||
also be enabled for that session. Otherwise,
|
||||
this feature must not be enabled.";
|
||||
reference "RFC 6241, Section 8.9";
|
||||
}
|
||||
|
||||
// NETCONF Simple Types
|
||||
|
||||
typedef session-id-type {
|
||||
type uint32 {
|
||||
range "1..max";
|
||||
}
|
||||
description
|
||||
"NETCONF Session Id";
|
||||
}
|
||||
|
||||
typedef session-id-or-zero-type {
|
||||
type uint32;
|
||||
description
|
||||
"NETCONF Session Id or Zero to indicate none";
|
||||
}
|
||||
typedef error-tag-type {
|
||||
type enumeration {
|
||||
enum in-use {
|
||||
description
|
||||
"The request requires a resource that
|
||||
already is in use.";
|
||||
}
|
||||
enum invalid-value {
|
||||
description
|
||||
"The request specifies an unacceptable value for one
|
||||
or more parameters.";
|
||||
}
|
||||
enum too-big {
|
||||
description
|
||||
"The request or response (that would be generated) is
|
||||
too large for the implementation to handle.";
|
||||
}
|
||||
enum missing-attribute {
|
||||
description
|
||||
"An expected attribute is missing.";
|
||||
}
|
||||
enum bad-attribute {
|
||||
description
|
||||
"An attribute value is not correct; e.g., wrong type,
|
||||
out of range, pattern mismatch.";
|
||||
}
|
||||
enum unknown-attribute {
|
||||
description
|
||||
"An unexpected attribute is present.";
|
||||
}
|
||||
enum missing-element {
|
||||
description
|
||||
"An expected element is missing.";
|
||||
}
|
||||
enum bad-element {
|
||||
description
|
||||
"An element value is not correct; e.g., wrong type,
|
||||
out of range, pattern mismatch.";
|
||||
}
|
||||
enum unknown-element {
|
||||
description
|
||||
"An unexpected element is present.";
|
||||
}
|
||||
enum unknown-namespace {
|
||||
description
|
||||
"An unexpected namespace is present.";
|
||||
}
|
||||
enum access-denied {
|
||||
description
|
||||
"Access to the requested protocol operation or
|
||||
data model is denied because authorization failed.";
|
||||
}
|
||||
enum lock-denied {
|
||||
description
|
||||
"Access to the requested lock is denied because the
|
||||
lock is currently held by another entity.";
|
||||
}
|
||||
enum resource-denied {
|
||||
description
|
||||
"Request could not be completed because of
|
||||
insufficient resources.";
|
||||
}
|
||||
enum rollback-failed {
|
||||
description
|
||||
"Request to roll back some configuration change (via
|
||||
rollback-on-error or <discard-changes> operations)
|
||||
was not completed for some reason.";
|
||||
|
||||
}
|
||||
enum data-exists {
|
||||
description
|
||||
"Request could not be completed because the relevant
|
||||
data model content already exists. For example,
|
||||
a 'create' operation was attempted on data that
|
||||
already exists.";
|
||||
}
|
||||
enum data-missing {
|
||||
description
|
||||
"Request could not be completed because the relevant
|
||||
data model content does not exist. For example,
|
||||
a 'delete' operation was attempted on
|
||||
data that does not exist.";
|
||||
}
|
||||
enum operation-not-supported {
|
||||
description
|
||||
"Request could not be completed because the requested
|
||||
operation is not supported by this implementation.";
|
||||
}
|
||||
enum operation-failed {
|
||||
description
|
||||
"Request could not be completed because the requested
|
||||
operation failed for some reason not covered by
|
||||
any other error condition.";
|
||||
}
|
||||
enum partial-operation {
|
||||
description
|
||||
"This error-tag is obsolete, and SHOULD NOT be sent
|
||||
by servers conforming to this document.";
|
||||
}
|
||||
enum malformed-message {
|
||||
description
|
||||
"A message could not be handled because it failed to
|
||||
be parsed correctly. For example, the message is not
|
||||
well-formed XML or it uses an invalid character set.";
|
||||
}
|
||||
}
|
||||
description "NETCONF Error Tag";
|
||||
reference "RFC 6241, Appendix A";
|
||||
}
|
||||
|
||||
typedef error-severity-type {
|
||||
type enumeration {
|
||||
enum error {
|
||||
description "Error severity";
|
||||
}
|
||||
enum warning {
|
||||
description "Warning severity";
|
||||
}
|
||||
}
|
||||
description "NETCONF Error Severity";
|
||||
reference "RFC 6241, Section 4.3";
|
||||
}
|
||||
|
||||
typedef edit-operation-type {
|
||||
type enumeration {
|
||||
enum merge {
|
||||
description
|
||||
"The configuration data identified by the
|
||||
element containing this attribute is merged
|
||||
with the configuration at the corresponding
|
||||
level in the configuration datastore identified
|
||||
by the target parameter.";
|
||||
}
|
||||
enum replace {
|
||||
description
|
||||
"The configuration data identified by the element
|
||||
containing this attribute replaces any related
|
||||
configuration in the configuration datastore
|
||||
identified by the target parameter. If no such
|
||||
configuration data exists in the configuration
|
||||
datastore, it is created. Unlike a
|
||||
<copy-config> operation, which replaces the
|
||||
entire target configuration, only the configuration
|
||||
actually present in the config parameter is affected.";
|
||||
}
|
||||
enum create {
|
||||
description
|
||||
"The configuration data identified by the element
|
||||
containing this attribute is added to the
|
||||
configuration if and only if the configuration
|
||||
data does not already exist in the configuration
|
||||
datastore. If the configuration data exists, an
|
||||
<rpc-error> element is returned with an
|
||||
<error-tag> value of 'data-exists'.";
|
||||
}
|
||||
enum delete {
|
||||
description
|
||||
"The configuration data identified by the element
|
||||
containing this attribute is deleted from the
|
||||
configuration if and only if the configuration
|
||||
data currently exists in the configuration
|
||||
datastore. If the configuration data does not
|
||||
exist, an <rpc-error> element is returned with
|
||||
an <error-tag> value of 'data-missing'.";
|
||||
}
|
||||
enum remove {
|
||||
description
|
||||
"The configuration data identified by the element
|
||||
containing this attribute is deleted from the
|
||||
configuration if the configuration
|
||||
data currently exists in the configuration
|
||||
datastore. If the configuration data does not
|
||||
exist, the 'remove' operation is silently ignored
|
||||
by the server.";
|
||||
}
|
||||
}
|
||||
default "merge";
|
||||
description "NETCONF 'operation' attribute values";
|
||||
reference "RFC 6241, Section 7.2";
|
||||
}
|
||||
|
||||
// NETCONF Standard Protocol Operations
|
||||
|
||||
rpc get-config {
|
||||
description
|
||||
"Retrieve all or part of a specified configuration.";
|
||||
|
||||
reference "RFC 6241, Section 7.1";
|
||||
|
||||
input {
|
||||
container source {
|
||||
description
|
||||
"Particular configuration to retrieve.";
|
||||
|
||||
choice config-source {
|
||||
mandatory true;
|
||||
description
|
||||
"The configuration to retrieve.";
|
||||
leaf candidate {
|
||||
if-feature candidate;
|
||||
type empty;
|
||||
description
|
||||
"The candidate configuration is the config source.";
|
||||
}
|
||||
leaf running {
|
||||
type empty;
|
||||
description
|
||||
"The running configuration is the config source.";
|
||||
}
|
||||
leaf startup {
|
||||
if-feature startup;
|
||||
type empty;
|
||||
description
|
||||
"The startup configuration is the config source.
|
||||
This is optional-to-implement on the server because
|
||||
not all servers will support filtering for this
|
||||
datastore.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
anyxml filter {
|
||||
description
|
||||
"Subtree or XPath filter to use.";
|
||||
// nc:get-filter-element-attributes;
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
anyxml data {
|
||||
description
|
||||
"Copy of the source datastore subset that matched
|
||||
the filter criteria (if any). An empty data container
|
||||
indicates that the request did not produce any results.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rpc edit-config {
|
||||
description
|
||||
"The <edit-config> operation loads all or part of a specified
|
||||
configuration to the specified target configuration.";
|
||||
|
||||
reference "RFC 6241, Section 7.2";
|
||||
|
||||
input {
|
||||
container target {
|
||||
description
|
||||
"Particular configuration to edit.";
|
||||
|
||||
choice config-target {
|
||||
mandatory true;
|
||||
description
|
||||
"The configuration target.";
|
||||
|
||||
leaf candidate {
|
||||
if-feature candidate;
|
||||
type empty;
|
||||
description
|
||||
"The candidate configuration is the config target.";
|
||||
}
|
||||
leaf running {
|
||||
if-feature writable-running;
|
||||
type empty;
|
||||
description
|
||||
"The running configuration is the config source.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
leaf default-operation {
|
||||
type enumeration {
|
||||
enum merge {
|
||||
description
|
||||
"The default operation is merge.";
|
||||
}
|
||||
enum replace {
|
||||
description
|
||||
"The default operation is replace.";
|
||||
}
|
||||
enum none {
|
||||
description
|
||||
"There is no default operation.";
|
||||
}
|
||||
}
|
||||
default "merge";
|
||||
description
|
||||
"The default operation to use.";
|
||||
}
|
||||
|
||||
leaf test-option {
|
||||
if-feature validate;
|
||||
type enumeration {
|
||||
enum test-then-set {
|
||||
description
|
||||
"The server will test and then set if no errors.";
|
||||
}
|
||||
enum set {
|
||||
description
|
||||
"The server will set without a test first.";
|
||||
}
|
||||
|
||||
enum test-only {
|
||||
description
|
||||
"The server will only test and not set, even
|
||||
if there are no errors.";
|
||||
}
|
||||
}
|
||||
default "test-then-set";
|
||||
description
|
||||
"The test option to use.";
|
||||
}
|
||||
|
||||
leaf error-option {
|
||||
type enumeration {
|
||||
enum stop-on-error {
|
||||
description
|
||||
"The server will stop on errors.";
|
||||
}
|
||||
enum continue-on-error {
|
||||
description
|
||||
"The server may continue on errors.";
|
||||
}
|
||||
enum rollback-on-error {
|
||||
description
|
||||
"The server will roll back on errors.
|
||||
This value can only be used if the 'rollback-on-error'
|
||||
feature is supported.";
|
||||
}
|
||||
}
|
||||
default "stop-on-error";
|
||||
description
|
||||
"The error option to use.";
|
||||
}
|
||||
|
||||
choice edit-content {
|
||||
mandatory true;
|
||||
description
|
||||
"The content for the edit operation.";
|
||||
|
||||
anyxml config {
|
||||
description
|
||||
"Inline Config content.";
|
||||
}
|
||||
leaf url {
|
||||
if-feature url;
|
||||
type inet:uri;
|
||||
description
|
||||
"URL-based config content.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rpc copy-config {
|
||||
description
|
||||
"Create or replace an entire configuration datastore with the
|
||||
contents of another complete configuration datastore.";
|
||||
|
||||
reference "RFC 6241, Section 7.3";
|
||||
|
||||
input {
|
||||
container target {
|
||||
description
|
||||
"Particular configuration to copy to.";
|
||||
|
||||
choice config-target {
|
||||
mandatory true;
|
||||
description
|
||||
"The configuration target of the copy operation.";
|
||||
|
||||
leaf candidate {
|
||||
if-feature candidate;
|
||||
type empty;
|
||||
description
|
||||
"The candidate configuration is the config target.";
|
||||
}
|
||||
leaf running {
|
||||
if-feature writable-running;
|
||||
type empty;
|
||||
description
|
||||
"The running configuration is the config target.
|
||||
This is optional-to-implement on the server.";
|
||||
}
|
||||
leaf startup {
|
||||
if-feature startup;
|
||||
type empty;
|
||||
description
|
||||
"The startup configuration is the config target.";
|
||||
}
|
||||
leaf url {
|
||||
if-feature url;
|
||||
type inet:uri;
|
||||
description
|
||||
"The URL-based configuration is the config target.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
container source {
|
||||
description
|
||||
"Particular configuration to copy from.";
|
||||
|
||||
choice config-source {
|
||||
mandatory true;
|
||||
description
|
||||
"The configuration source for the copy operation.";
|
||||
|
||||
leaf candidate {
|
||||
if-feature candidate;
|
||||
type empty;
|
||||
description
|
||||
"The candidate configuration is the config source.";
|
||||
}
|
||||
leaf running {
|
||||
type empty;
|
||||
description
|
||||
"The running configuration is the config source.";
|
||||
}
|
||||
leaf startup {
|
||||
if-feature startup;
|
||||
type empty;
|
||||
description
|
||||
"The startup configuration is the config source.";
|
||||
}
|
||||
leaf url {
|
||||
if-feature url;
|
||||
type inet:uri;
|
||||
description
|
||||
"The URL-based configuration is the config source.";
|
||||
}
|
||||
anyxml config {
|
||||
description
|
||||
"Inline Config content: <config> element. Represents
|
||||
an entire configuration datastore, not
|
||||
a subset of the running datastore.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rpc delete-config {
|
||||
// nacm:default-deny-all;
|
||||
description
|
||||
"Delete a configuration datastore.";
|
||||
|
||||
reference "RFC 6241, Section 7.4";
|
||||
|
||||
input {
|
||||
container target {
|
||||
description
|
||||
"Particular configuration to delete.";
|
||||
|
||||
choice config-target {
|
||||
mandatory true;
|
||||
description
|
||||
"The configuration target to delete.";
|
||||
|
||||
leaf startup {
|
||||
if-feature startup;
|
||||
type empty;
|
||||
description
|
||||
"The startup configuration is the config target.";
|
||||
}
|
||||
leaf url {
|
||||
if-feature url;
|
||||
type inet:uri;
|
||||
description
|
||||
"The URL-based configuration is the config target.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rpc lock {
|
||||
description
|
||||
"The lock operation allows the client to lock the configuration
|
||||
system of a device.";
|
||||
|
||||
reference "RFC 6241, Section 7.5";
|
||||
|
||||
input {
|
||||
container target {
|
||||
description
|
||||
"Particular configuration to lock.";
|
||||
|
||||
choice config-target {
|
||||
mandatory true;
|
||||
description
|
||||
"The configuration target to lock.";
|
||||
|
||||
leaf candidate {
|
||||
if-feature candidate;
|
||||
type empty;
|
||||
description
|
||||
"The candidate configuration is the config target.";
|
||||
}
|
||||
leaf running {
|
||||
type empty;
|
||||
description
|
||||
"The running configuration is the config target.";
|
||||
}
|
||||
leaf startup {
|
||||
if-feature startup;
|
||||
type empty;
|
||||
description
|
||||
"The startup configuration is the config target.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rpc unlock {
|
||||
description
|
||||
"The unlock operation is used to release a configuration lock,
|
||||
previously obtained with the 'lock' operation.";
|
||||
|
||||
reference "RFC 6241, Section 7.6";
|
||||
|
||||
input {
|
||||
container target {
|
||||
description
|
||||
"Particular configuration to unlock.";
|
||||
|
||||
choice config-target {
|
||||
mandatory true;
|
||||
description
|
||||
"The configuration target to unlock.";
|
||||
|
||||
leaf candidate {
|
||||
if-feature candidate;
|
||||
type empty;
|
||||
description
|
||||
"The candidate configuration is the config target.";
|
||||
}
|
||||
leaf running {
|
||||
type empty;
|
||||
description
|
||||
"The running configuration is the config target.";
|
||||
}
|
||||
leaf startup {
|
||||
if-feature startup;
|
||||
type empty;
|
||||
description
|
||||
"The startup configuration is the config target.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rpc get {
|
||||
description
|
||||
"Retrieve running configuration and device state information.";
|
||||
|
||||
reference "RFC 6241, Section 7.7";
|
||||
|
||||
input {
|
||||
anyxml filter {
|
||||
description
|
||||
"This parameter specifies the portion of the system
|
||||
configuration and state data to retrieve.";
|
||||
// nc:get-filter-element-attributes;
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
anyxml data {
|
||||
description
|
||||
"Copy of the running datastore subset and/or state
|
||||
data that matched the filter criteria (if any).
|
||||
An empty data container indicates that the request did not
|
||||
produce any results.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rpc close-session {
|
||||
description
|
||||
"Request graceful termination of a NETCONF session.";
|
||||
|
||||
reference "RFC 6241, Section 7.8";
|
||||
}
|
||||
|
||||
rpc kill-session {
|
||||
// nacm:default-deny-all;
|
||||
description
|
||||
"Force the termination of a NETCONF session.";
|
||||
|
||||
reference "RFC 6241, Section 7.9";
|
||||
|
||||
input {
|
||||
leaf session-id {
|
||||
type session-id-type;
|
||||
mandatory true;
|
||||
description
|
||||
"Particular session to kill.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rpc commit {
|
||||
if-feature candidate;
|
||||
|
||||
description
|
||||
"Commit the candidate configuration as the device's new
|
||||
current configuration.";
|
||||
|
||||
reference "RFC 6241, Section 8.3.4.1";
|
||||
|
||||
input {
|
||||
leaf confirmed {
|
||||
if-feature confirmed-commit;
|
||||
type empty;
|
||||
description
|
||||
"Requests a confirmed commit.";
|
||||
reference "RFC 6241, Section 8.3.4.1";
|
||||
}
|
||||
|
||||
leaf confirm-timeout {
|
||||
if-feature confirmed-commit;
|
||||
type uint32 {
|
||||
range "1..max";
|
||||
}
|
||||
units "seconds";
|
||||
default "600"; // 10 minutes
|
||||
description
|
||||
"The timeout interval for a confirmed commit.";
|
||||
reference "RFC 6241, Section 8.3.4.1";
|
||||
}
|
||||
|
||||
leaf persist {
|
||||
if-feature confirmed-commit;
|
||||
type string;
|
||||
description
|
||||
"This parameter is used to make a confirmed commit
|
||||
persistent. A persistent confirmed commit is not aborted
|
||||
if the NETCONF session terminates. The only way to abort
|
||||
a persistent confirmed commit is to let the timer expire,
|
||||
or to use the <cancel-commit> operation.
|
||||
|
||||
The value of this parameter is a token that must be given
|
||||
in the 'persist-id' parameter of <commit> or
|
||||
<cancel-commit> operations in order to confirm or cancel
|
||||
the persistent confirmed commit.
|
||||
|
||||
The token should be a random string.";
|
||||
reference "RFC 6241, Section 8.3.4.1";
|
||||
}
|
||||
|
||||
leaf persist-id {
|
||||
if-feature confirmed-commit;
|
||||
type string;
|
||||
description
|
||||
"This parameter is given in order to commit a persistent
|
||||
confirmed commit. The value must be equal to the value
|
||||
given in the 'persist' parameter to the <commit> operation.
|
||||
If it does not match, the operation fails with an
|
||||
'invalid-value' error.";
|
||||
reference "RFC 6241, Section 8.3.4.1";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
rpc discard-changes {
|
||||
if-feature candidate;
|
||||
|
||||
description
|
||||
"Revert the candidate configuration to the current
|
||||
running configuration.";
|
||||
reference "RFC 6241, Section 8.3.4.2";
|
||||
}
|
||||
|
||||
rpc cancel-commit {
|
||||
if-feature confirmed-commit;
|
||||
description
|
||||
"This operation is used to cancel an ongoing confirmed commit.
|
||||
If the confirmed commit is persistent, the parameter
|
||||
'persist-id' must be given, and it must match the value of the
|
||||
'persist' parameter.";
|
||||
reference "RFC 6241, Section 8.4.4.1";
|
||||
|
||||
input {
|
||||
leaf persist-id {
|
||||
type string;
|
||||
description
|
||||
"This parameter is given in order to cancel a persistent
|
||||
confirmed commit. The value must be equal to the value
|
||||
given in the 'persist' parameter to the <commit> operation.
|
||||
If it does not match, the operation fails with an
|
||||
'invalid-value' error.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rpc validate {
|
||||
if-feature validate;
|
||||
|
||||
description
|
||||
"Validates the contents of the specified configuration.";
|
||||
|
||||
reference "RFC 6241, Section 8.6.4.1";
|
||||
|
||||
input {
|
||||
container source {
|
||||
description
|
||||
"Particular configuration to validate.";
|
||||
|
||||
choice config-source {
|
||||
mandatory true;
|
||||
description
|
||||
"The configuration source to validate.";
|
||||
|
||||
leaf candidate {
|
||||
if-feature candidate;
|
||||
type empty;
|
||||
description
|
||||
"The candidate configuration is the config source.";
|
||||
}
|
||||
leaf running {
|
||||
type empty;
|
||||
description
|
||||
"The running configuration is the config source.";
|
||||
}
|
||||
leaf startup {
|
||||
if-feature startup;
|
||||
type empty;
|
||||
description
|
||||
"The startup configuration is the config source.";
|
||||
}
|
||||
leaf url {
|
||||
if-feature url;
|
||||
type inet:uri;
|
||||
description
|
||||
"The URL-based configuration is the config source.";
|
||||
}
|
||||
anyxml config {
|
||||
description
|
||||
"Inline Config content: <config> element. Represents
|
||||
an entire configuration datastore, not
|
||||
a subset of the running datastore.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,480 @@
|
||||
module ietf-yang-types {
|
||||
|
||||
namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types";
|
||||
prefix "yang";
|
||||
|
||||
organization
|
||||
"IETF NETMOD (NETCONF Data Modeling Language) Working Group";
|
||||
|
||||
contact
|
||||
"WG Web: <http://tools.ietf.org/wg/netmod/>
|
||||
WG List: <mailto:netmod@ietf.org>
|
||||
|
||||
WG Chair: David Kessens
|
||||
<mailto:david.kessens@nsn.com>
|
||||
|
||||
WG Chair: Juergen Schoenwaelder
|
||||
<mailto:j.schoenwaelder@jacobs-university.de>
|
||||
|
||||
Editor: Juergen Schoenwaelder
|
||||
<mailto:j.schoenwaelder@jacobs-university.de>";
|
||||
|
||||
description
|
||||
"This module contains a collection of generally useful derived
|
||||
YANG data types.
|
||||
|
||||
Copyright (c) 2013 IETF Trust and the persons identified as
|
||||
authors of the code. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or
|
||||
without modification, is permitted pursuant to, and subject
|
||||
to the license terms contained in, the Simplified BSD License
|
||||
set forth in Section 4.c of the IETF Trust's Legal Provisions
|
||||
Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info).
|
||||
|
||||
This version of this YANG module is part of RFC 6991; see
|
||||
the RFC itself for full legal notices.";
|
||||
|
||||
revision 2013-07-15 {
|
||||
description
|
||||
"This revision adds the following new data types:
|
||||
- yang-identifier
|
||||
- hex-string
|
||||
- uuid
|
||||
- dotted-quad";
|
||||
reference
|
||||
"RFC 6991: Common YANG Data Types";
|
||||
}
|
||||
|
||||
revision 2010-09-24 {
|
||||
description
|
||||
"Initial revision.";
|
||||
reference
|
||||
"RFC 6021: Common YANG Data Types";
|
||||
}
|
||||
|
||||
/*** collection of counter and gauge types ***/
|
||||
|
||||
typedef counter32 {
|
||||
type uint32;
|
||||
description
|
||||
"The counter32 type represents a non-negative integer
|
||||
that monotonically increases until it reaches a
|
||||
maximum value of 2^32-1 (4294967295 decimal), when it
|
||||
wraps around and starts increasing again from zero.
|
||||
|
||||
Counters have no defined 'initial' value, and thus, a
|
||||
single value of a counter has (in general) no information
|
||||
content. Discontinuities in the monotonically increasing
|
||||
value normally occur at re-initialization of the
|
||||
management system, and at other times as specified in the
|
||||
description of a schema node using this type. If such
|
||||
other times can occur, for example, the creation of
|
||||
a schema node of type counter32 at times other than
|
||||
re-initialization, then a corresponding schema node
|
||||
should be defined, with an appropriate type, to indicate
|
||||
the last discontinuity.
|
||||
|
||||
The counter32 type should not be used for configuration
|
||||
schema nodes. A default statement SHOULD NOT be used in
|
||||
combination with the type counter32.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the Counter32 type of the SMIv2.";
|
||||
reference
|
||||
"RFC 2578: Structure of Management Information Version 2
|
||||
(SMIv2)";
|
||||
}
|
||||
|
||||
typedef zero-based-counter32 {
|
||||
type yang:counter32;
|
||||
default "0";
|
||||
description
|
||||
"The zero-based-counter32 type represents a counter32
|
||||
that has the defined 'initial' value zero.
|
||||
|
||||
A schema node of this type will be set to zero (0) on creation
|
||||
and will thereafter increase monotonically until it reaches
|
||||
a maximum value of 2^32-1 (4294967295 decimal), when it
|
||||
wraps around and starts increasing again from zero.
|
||||
|
||||
Provided that an application discovers a new schema node
|
||||
of this type within the minimum time to wrap, it can use the
|
||||
'initial' value as a delta. It is important for a management
|
||||
station to be aware of this minimum time and the actual time
|
||||
between polls, and to discard data if the actual time is too
|
||||
long or there is no defined minimum time.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the ZeroBasedCounter32 textual convention of the SMIv2.";
|
||||
reference
|
||||
"RFC 4502: Remote Network Monitoring Management Information
|
||||
Base Version 2";
|
||||
}
|
||||
|
||||
typedef counter64 {
|
||||
type uint64;
|
||||
description
|
||||
"The counter64 type represents a non-negative integer
|
||||
that monotonically increases until it reaches a
|
||||
maximum value of 2^64-1 (18446744073709551615 decimal),
|
||||
when it wraps around and starts increasing again from zero.
|
||||
|
||||
Counters have no defined 'initial' value, and thus, a
|
||||
single value of a counter has (in general) no information
|
||||
content. Discontinuities in the monotonically increasing
|
||||
value normally occur at re-initialization of the
|
||||
management system, and at other times as specified in the
|
||||
description of a schema node using this type. If such
|
||||
other times can occur, for example, the creation of
|
||||
a schema node of type counter64 at times other than
|
||||
re-initialization, then a corresponding schema node
|
||||
should be defined, with an appropriate type, to indicate
|
||||
the last discontinuity.
|
||||
|
||||
The counter64 type should not be used for configuration
|
||||
schema nodes. A default statement SHOULD NOT be used in
|
||||
combination with the type counter64.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the Counter64 type of the SMIv2.";
|
||||
reference
|
||||
"RFC 2578: Structure of Management Information Version 2
|
||||
(SMIv2)";
|
||||
}
|
||||
|
||||
typedef zero-based-counter64 {
|
||||
type yang:counter64;
|
||||
default "0";
|
||||
description
|
||||
"The zero-based-counter64 type represents a counter64 that
|
||||
has the defined 'initial' value zero.
|
||||
|
||||
|
||||
|
||||
|
||||
A schema node of this type will be set to zero (0) on creation
|
||||
and will thereafter increase monotonically until it reaches
|
||||
a maximum value of 2^64-1 (18446744073709551615 decimal),
|
||||
when it wraps around and starts increasing again from zero.
|
||||
|
||||
Provided that an application discovers a new schema node
|
||||
of this type within the minimum time to wrap, it can use the
|
||||
'initial' value as a delta. It is important for a management
|
||||
station to be aware of this minimum time and the actual time
|
||||
between polls, and to discard data if the actual time is too
|
||||
long or there is no defined minimum time.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the ZeroBasedCounter64 textual convention of the SMIv2.";
|
||||
reference
|
||||
"RFC 2856: Textual Conventions for Additional High Capacity
|
||||
Data Types";
|
||||
}
|
||||
|
||||
typedef gauge32 {
|
||||
type uint32;
|
||||
description
|
||||
"The gauge32 type represents a non-negative integer, which
|
||||
may increase or decrease, but shall never exceed a maximum
|
||||
value, nor fall below a minimum value. The maximum value
|
||||
cannot be greater than 2^32-1 (4294967295 decimal), and
|
||||
the minimum value cannot be smaller than 0. The value of
|
||||
a gauge32 has its maximum value whenever the information
|
||||
being modeled is greater than or equal to its maximum
|
||||
value, and has its minimum value whenever the information
|
||||
being modeled is smaller than or equal to its minimum value.
|
||||
If the information being modeled subsequently decreases
|
||||
below (increases above) the maximum (minimum) value, the
|
||||
gauge32 also decreases (increases).
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the Gauge32 type of the SMIv2.";
|
||||
reference
|
||||
"RFC 2578: Structure of Management Information Version 2
|
||||
(SMIv2)";
|
||||
}
|
||||
|
||||
typedef gauge64 {
|
||||
type uint64;
|
||||
description
|
||||
"The gauge64 type represents a non-negative integer, which
|
||||
may increase or decrease, but shall never exceed a maximum
|
||||
value, nor fall below a minimum value. The maximum value
|
||||
cannot be greater than 2^64-1 (18446744073709551615), and
|
||||
the minimum value cannot be smaller than 0. The value of
|
||||
a gauge64 has its maximum value whenever the information
|
||||
being modeled is greater than or equal to its maximum
|
||||
value, and has its minimum value whenever the information
|
||||
being modeled is smaller than or equal to its minimum value.
|
||||
If the information being modeled subsequently decreases
|
||||
below (increases above) the maximum (minimum) value, the
|
||||
gauge64 also decreases (increases).
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the CounterBasedGauge64 SMIv2 textual convention defined
|
||||
in RFC 2856";
|
||||
reference
|
||||
"RFC 2856: Textual Conventions for Additional High Capacity
|
||||
Data Types";
|
||||
}
|
||||
|
||||
/*** collection of identifier-related types ***/
|
||||
|
||||
typedef object-identifier {
|
||||
type string {
|
||||
pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))'
|
||||
+ '(\.(0|([1-9]\d*)))*';
|
||||
}
|
||||
description
|
||||
"The object-identifier type represents administratively
|
||||
assigned names in a registration-hierarchical-name tree.
|
||||
|
||||
Values of this type are denoted as a sequence of numerical
|
||||
non-negative sub-identifier values. Each sub-identifier
|
||||
value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers
|
||||
are separated by single dots and without any intermediate
|
||||
whitespace.
|
||||
|
||||
The ASN.1 standard restricts the value space of the first
|
||||
sub-identifier to 0, 1, or 2. Furthermore, the value space
|
||||
of the second sub-identifier is restricted to the range
|
||||
0 to 39 if the first sub-identifier is 0 or 1. Finally,
|
||||
the ASN.1 standard requires that an object identifier
|
||||
has always at least two sub-identifiers. The pattern
|
||||
captures these restrictions.
|
||||
|
||||
Although the number of sub-identifiers is not limited,
|
||||
module designers should realize that there may be
|
||||
implementations that stick with the SMIv2 limit of 128
|
||||
sub-identifiers.
|
||||
|
||||
This type is a superset of the SMIv2 OBJECT IDENTIFIER type
|
||||
since it is not restricted to 128 sub-identifiers. Hence,
|
||||
this type SHOULD NOT be used to represent the SMIv2 OBJECT
|
||||
IDENTIFIER type; the object-identifier-128 type SHOULD be
|
||||
used instead.";
|
||||
reference
|
||||
"ISO9834-1: Information technology -- Open Systems
|
||||
Interconnection -- Procedures for the operation of OSI
|
||||
Registration Authorities: General procedures and top
|
||||
arcs of the ASN.1 Object Identifier tree";
|
||||
}
|
||||
|
||||
typedef object-identifier-128 {
|
||||
type object-identifier {
|
||||
pattern '\d*(\.\d*){1,127}';
|
||||
}
|
||||
description
|
||||
"This type represents object-identifiers restricted to 128
|
||||
sub-identifiers.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the OBJECT IDENTIFIER type of the SMIv2.";
|
||||
reference
|
||||
"RFC 2578: Structure of Management Information Version 2
|
||||
(SMIv2)";
|
||||
}
|
||||
|
||||
typedef yang-identifier {
|
||||
type string {
|
||||
length "1..max";
|
||||
pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*';
|
||||
pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*';
|
||||
}
|
||||
description
|
||||
"A YANG identifier string as defined by the 'identifier'
|
||||
rule in Section 12 of RFC 6020. An identifier must
|
||||
start with an alphabetic character or an underscore
|
||||
followed by an arbitrary sequence of alphabetic or
|
||||
numeric characters, underscores, hyphens, or dots.
|
||||
|
||||
A YANG identifier MUST NOT start with any possible
|
||||
combination of the lowercase or uppercase character
|
||||
sequence 'xml'.";
|
||||
reference
|
||||
"RFC 6020: YANG - A Data Modeling Language for the Network
|
||||
Configuration Protocol (NETCONF)";
|
||||
}
|
||||
|
||||
/*** collection of types related to date and time***/
|
||||
|
||||
typedef date-and-time {
|
||||
type string {
|
||||
pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?'
|
||||
+ '(Z|[\+\-]\d{2}:\d{2})';
|
||||
}
|
||||
description
|
||||
"The date-and-time type is a profile of the ISO 8601
|
||||
standard for representation of dates and times using the
|
||||
Gregorian calendar. The profile is defined by the
|
||||
date-time production in Section 5.6 of RFC 3339.
|
||||
|
||||
The date-and-time type is compatible with the dateTime XML
|
||||
schema type with the following notable exceptions:
|
||||
|
||||
(a) The date-and-time type does not allow negative years.
|
||||
|
||||
(b) The date-and-time time-offset -00:00 indicates an unknown
|
||||
time zone (see RFC 3339) while -00:00 and +00:00 and Z
|
||||
all represent the same time zone in dateTime.
|
||||
|
||||
(c) The canonical format (see below) of data-and-time values
|
||||
differs from the canonical format used by the dateTime XML
|
||||
schema type, which requires all times to be in UTC using
|
||||
the time-offset 'Z'.
|
||||
|
||||
This type is not equivalent to the DateAndTime textual
|
||||
convention of the SMIv2 since RFC 3339 uses a different
|
||||
separator between full-date and full-time and provides
|
||||
higher resolution of time-secfrac.
|
||||
|
||||
The canonical format for date-and-time values with a known time
|
||||
zone uses a numeric time zone offset that is calculated using
|
||||
the device's configured known offset to UTC time. A change of
|
||||
the device's offset to UTC time will cause date-and-time values
|
||||
to change accordingly. Such changes might happen periodically
|
||||
in case a server follows automatically daylight saving time
|
||||
(DST) time zone offset changes. The canonical format for
|
||||
date-and-time values with an unknown time zone (usually
|
||||
referring to the notion of local time) uses the time-offset
|
||||
-00:00.";
|
||||
reference
|
||||
"RFC 3339: Date and Time on the Internet: Timestamps
|
||||
RFC 2579: Textual Conventions for SMIv2
|
||||
XSD-TYPES: XML Schema Part 2: Datatypes Second Edition";
|
||||
}
|
||||
|
||||
typedef timeticks {
|
||||
type uint32;
|
||||
description
|
||||
"The timeticks type represents a non-negative integer that
|
||||
represents the time, modulo 2^32 (4294967296 decimal), in
|
||||
hundredths of a second between two epochs. When a schema
|
||||
node is defined that uses this type, the description of
|
||||
the schema node identifies both of the reference epochs.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the TimeTicks type of the SMIv2.";
|
||||
reference
|
||||
"RFC 2578: Structure of Management Information Version 2
|
||||
(SMIv2)";
|
||||
}
|
||||
|
||||
typedef timestamp {
|
||||
type yang:timeticks;
|
||||
description
|
||||
"The timestamp type represents the value of an associated
|
||||
timeticks schema node at which a specific occurrence
|
||||
happened. The specific occurrence must be defined in the
|
||||
description of any schema node defined using this type. When
|
||||
the specific occurrence occurred prior to the last time the
|
||||
associated timeticks attribute was zero, then the timestamp
|
||||
value is zero. Note that this requires all timestamp values
|
||||
to be reset to zero when the value of the associated timeticks
|
||||
attribute reaches 497+ days and wraps around to zero.
|
||||
|
||||
The associated timeticks schema node must be specified
|
||||
in the description of any schema node using this type.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the TimeStamp textual convention of the SMIv2.";
|
||||
reference
|
||||
"RFC 2579: Textual Conventions for SMIv2";
|
||||
}
|
||||
|
||||
/*** collection of generic address types ***/
|
||||
|
||||
typedef phys-address {
|
||||
type string {
|
||||
pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
description
|
||||
"Represents media- or physical-level addresses represented
|
||||
as a sequence octets, each octet represented by two hexadecimal
|
||||
numbers. Octets are separated by colons. The canonical
|
||||
representation uses lowercase characters.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the PhysAddress textual convention of the SMIv2.";
|
||||
reference
|
||||
"RFC 2579: Textual Conventions for SMIv2";
|
||||
}
|
||||
|
||||
typedef mac-address {
|
||||
type string {
|
||||
pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}';
|
||||
}
|
||||
description
|
||||
"The mac-address type represents an IEEE 802 MAC address.
|
||||
The canonical representation uses lowercase characters.
|
||||
|
||||
In the value set and its semantics, this type is equivalent
|
||||
to the MacAddress textual convention of the SMIv2.";
|
||||
reference
|
||||
"IEEE 802: IEEE Standard for Local and Metropolitan Area
|
||||
Networks: Overview and Architecture
|
||||
RFC 2579: Textual Conventions for SMIv2";
|
||||
}
|
||||
|
||||
/*** collection of XML-specific types ***/
|
||||
|
||||
typedef xpath1.0 {
|
||||
type string;
|
||||
description
|
||||
"This type represents an XPATH 1.0 expression.
|
||||
|
||||
When a schema node is defined that uses this type, the
|
||||
description of the schema node MUST specify the XPath
|
||||
context in which the XPath expression is evaluated.";
|
||||
reference
|
||||
"XPATH: XML Path Language (XPath) Version 1.0";
|
||||
}
|
||||
|
||||
/*** collection of string types ***/
|
||||
|
||||
typedef hex-string {
|
||||
type string {
|
||||
pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
|
||||
}
|
||||
description
|
||||
"A hexadecimal string with octets represented as hex digits
|
||||
separated by colons. The canonical representation uses
|
||||
lowercase characters.";
|
||||
}
|
||||
|
||||
typedef uuid {
|
||||
type string {
|
||||
pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'
|
||||
+ '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}';
|
||||
}
|
||||
description
|
||||
"A Universally Unique IDentifier in the string representation
|
||||
defined in RFC 4122. The canonical representation uses
|
||||
lowercase characters.
|
||||
|
||||
The following is an example of a UUID in string representation:
|
||||
f81d4fae-7dec-11d0-a765-00a0c91e6bf6
|
||||
";
|
||||
reference
|
||||
"RFC 4122: A Universally Unique IDentifier (UUID) URN
|
||||
Namespace";
|
||||
}
|
||||
|
||||
typedef dotted-quad {
|
||||
type string {
|
||||
pattern
|
||||
'(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
|
||||
+ '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
|
||||
}
|
||||
description
|
||||
"An unsigned 32-bit number expressed in the dotted-quad
|
||||
notation, i.e., four octets written as decimal numbers
|
||||
and separated with the '.' (full stop) character.";
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,508 @@
|
||||
module org-openroadm-common-service-types {
|
||||
namespace "http://org/openroadm/common/service/types";
|
||||
prefix org-openroadm-common-service-types;
|
||||
|
||||
import ietf-yang-types {
|
||||
prefix yang;
|
||||
}
|
||||
import ietf-inet-types {
|
||||
prefix inet;
|
||||
}
|
||||
import org-openroadm-routing-constraints {
|
||||
prefix org-openroadm-routing-constraints;
|
||||
}
|
||||
import org-openroadm-topology {
|
||||
prefix org-openroadm-topology;
|
||||
}
|
||||
import org-openroadm-common-types {
|
||||
prefix org-openroadm-common-types;
|
||||
}
|
||||
import org-openroadm-resource-types {
|
||||
prefix org-openroadm-resource-types;
|
||||
}
|
||||
|
||||
organization
|
||||
"Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions of common service types.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping configuration-response-common {
|
||||
container configuration-response-common {
|
||||
leaf request-id {
|
||||
type string;
|
||||
mandatory true;
|
||||
}
|
||||
leaf response-code {
|
||||
type string;
|
||||
mandatory true;
|
||||
}
|
||||
leaf response-message {
|
||||
type string;
|
||||
}
|
||||
leaf ack-final-indicator {
|
||||
type string;
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping response-parameters {
|
||||
container response-parameters {
|
||||
uses org-openroadm-routing-constraints:routing-constraints;
|
||||
}
|
||||
}
|
||||
|
||||
grouping service-endpoint {
|
||||
leaf service-format {
|
||||
type service-format;
|
||||
mandatory true;
|
||||
description
|
||||
"Format of the requested service: Ethernet, OTU, etc.";
|
||||
}
|
||||
leaf service-rate {
|
||||
when "../service-format!='OMS'"{
|
||||
description "service rate not applicable when service
|
||||
format is roadmline";
|
||||
}
|
||||
type uint32;
|
||||
mandatory true;
|
||||
description
|
||||
"Rate of the requested service in GBps";
|
||||
}
|
||||
leaf clli {
|
||||
type string;
|
||||
mandatory true;
|
||||
description
|
||||
"CLLI";
|
||||
}
|
||||
uses org-openroadm-resource-types:device-id;
|
||||
container site;
|
||||
container tx-direction {
|
||||
uses service-port;
|
||||
uses service-lgx;
|
||||
uses service-tail;
|
||||
}
|
||||
container rx-direction {
|
||||
uses service-port;
|
||||
uses service-lgx;
|
||||
uses service-tail;
|
||||
}
|
||||
leaf optic-type {
|
||||
type org-openroadm-common-types:optic-types;
|
||||
}
|
||||
container router {
|
||||
description
|
||||
"Needed for communication with DWDM pluggable";
|
||||
leaf node-id {
|
||||
type string;
|
||||
description
|
||||
"Node id. This is reported against the service, but may not get reflected in the service in the network.";
|
||||
}
|
||||
leaf ip-address {
|
||||
type inet:ip-address;
|
||||
description
|
||||
"Router IP Address. This is reported against the service, but may not get reflected in the service in the network.";
|
||||
}
|
||||
leaf url {
|
||||
type string;
|
||||
description
|
||||
"URL needed for communication with DWDM pluggable. This is reported against the service, but may not get reflected in the service in the network.";
|
||||
}
|
||||
}
|
||||
leaf user-label {
|
||||
type string;
|
||||
mandatory false;
|
||||
description
|
||||
"Label for service endpoint, defined by the user";
|
||||
}
|
||||
}
|
||||
|
||||
typedef rpc-actions {
|
||||
description "rpc-actions include all the rpc methods";
|
||||
type enumeration {
|
||||
enum service-create {
|
||||
value "1";
|
||||
}
|
||||
enum service-feasibility-check {
|
||||
value "2";
|
||||
}
|
||||
enum service-delete {
|
||||
value "3";
|
||||
}
|
||||
enum equipment-notification {
|
||||
value "4";
|
||||
}
|
||||
enum temp-service-create {
|
||||
value "5";
|
||||
}
|
||||
enum temp-service-delete {
|
||||
value "6";
|
||||
}
|
||||
enum service-roll {
|
||||
value "7";
|
||||
}
|
||||
enum service-reconfigure {
|
||||
value "8";
|
||||
}
|
||||
enum service-restoration {
|
||||
value "9";
|
||||
}
|
||||
enum service-reversion {
|
||||
value "10";
|
||||
}
|
||||
enum service-reroute {
|
||||
value "11";
|
||||
}
|
||||
enum service-reroute-confirm {
|
||||
value "12";
|
||||
}
|
||||
enum network-re-optimization {
|
||||
value "13";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping sdnc-request-header {
|
||||
container sdnc-request-header {
|
||||
leaf request-id {
|
||||
type string;
|
||||
}
|
||||
leaf rpc-action {
|
||||
type rpc-actions;
|
||||
}
|
||||
leaf notification-url {
|
||||
type string;
|
||||
}
|
||||
leaf request-system-id{
|
||||
type string;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping service-port {
|
||||
container port {
|
||||
leaf port-device-name {
|
||||
type string;
|
||||
}
|
||||
leaf port-type {
|
||||
type string;
|
||||
}
|
||||
leaf port-name {
|
||||
type string;
|
||||
}
|
||||
leaf port-rack {
|
||||
type string;
|
||||
}
|
||||
leaf port-shelf {
|
||||
type string;
|
||||
}
|
||||
leaf port-slot {
|
||||
type string;
|
||||
}
|
||||
leaf port-sub-slot {
|
||||
type string;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping service-lgx {
|
||||
container lgx {
|
||||
leaf lgx-device-name {
|
||||
type string;
|
||||
}
|
||||
leaf lgx-port-name {
|
||||
type string;
|
||||
}
|
||||
leaf lgx-port-rack {
|
||||
type string;
|
||||
}
|
||||
leaf lgx-port-shelf {
|
||||
type string;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping service-tail {
|
||||
container tail {
|
||||
container tail-roadm {
|
||||
description
|
||||
"ROADM on which the transponder is connected to (TID, IP Address,
|
||||
or FQDN)";
|
||||
uses org-openroadm-resource-types:device-id;
|
||||
}
|
||||
container xponder-port {
|
||||
description
|
||||
"Muxponder port used in tail, that will get used as a service endpoint.";
|
||||
leaf circuit-pack-name {
|
||||
type string;
|
||||
}
|
||||
leaf port-name {
|
||||
type string;
|
||||
}
|
||||
}
|
||||
leaf tail-roadm-port-aid {
|
||||
type string;
|
||||
description
|
||||
"This will provide the transponder port needed to inter-city ROADM
|
||||
connection";
|
||||
}
|
||||
leaf tail-roadm-port-rack-location {
|
||||
type string;
|
||||
description
|
||||
"Transponder's location";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping service-information {
|
||||
leaf due-date {
|
||||
type yang:date-and-time;
|
||||
description
|
||||
"Date and time service to be turn up. If time is not specified for a given date, default to midnight. Service turned up immediately if no due date is specified";
|
||||
}
|
||||
leaf end-date {
|
||||
type yang:date-and-time;
|
||||
description
|
||||
"Date and time service to be removed";
|
||||
mandatory false;
|
||||
}
|
||||
leaf nc-code {
|
||||
type string;
|
||||
description
|
||||
"NC code applied to wavelength service only.This is reported against the service, but may not get reflected in the service in the network.";
|
||||
}
|
||||
leaf nci-code {
|
||||
type string;
|
||||
description
|
||||
"NCI code applied to wavelength service only.This is reported against the service, but may not get reflected in the service in the network.";
|
||||
}
|
||||
leaf secondary-nci-code {
|
||||
type string;
|
||||
description
|
||||
"NC code applied to wavelength service only.This is reported against the service, but may not get reflected in the service in the network.";
|
||||
}
|
||||
leaf customer {
|
||||
type string;
|
||||
description
|
||||
"To be included in ticket information.This is reported against the service, but may not get reflected in the service in the network.";
|
||||
}
|
||||
leaf customer-contact {
|
||||
type string;
|
||||
description
|
||||
"Customer contact information To be included in ticket information. This is reported against the service, but may not get reflected in the service in the network.";
|
||||
}
|
||||
leaf operator-contact {
|
||||
type string;
|
||||
description
|
||||
"Operator contact information to be included in ticket information. This is reported against the service, but may not get reflected in the service in the network.";
|
||||
}
|
||||
}
|
||||
|
||||
grouping service {
|
||||
leaf service-name {
|
||||
type string;
|
||||
description
|
||||
"Identifier for the service to be created in
|
||||
the ROADM network, e.g., CLFI, CLCI, etc.";
|
||||
mandatory true;
|
||||
}
|
||||
leaf common-id {
|
||||
type string;
|
||||
description
|
||||
"To be used by the ROADM controller to identify the routing
|
||||
constraints received from planning application (PED).";
|
||||
}
|
||||
uses sdnc-request-header;
|
||||
leaf connection-type {
|
||||
type connection-type;
|
||||
mandatory true;
|
||||
description
|
||||
"Connection type";
|
||||
}
|
||||
leaf lifecycle-state {
|
||||
type org-openroadm-common-types:lifecycle-state;
|
||||
description
|
||||
"Lifecycle State of service. Whether it is planned, deployed, in maintenance, etc.";
|
||||
}
|
||||
leaf administrative-state {
|
||||
type org-openroadm-common-types:state;
|
||||
description
|
||||
"Administrative State: Intended state of service";
|
||||
}
|
||||
leaf operational-state {
|
||||
type org-openroadm-common-types:state;
|
||||
config false;
|
||||
description
|
||||
"Operational State: Actual state of service";
|
||||
}
|
||||
leaf condition {
|
||||
type service-condition;
|
||||
description
|
||||
"Service Condition: Additional information about the state of the service. Only sent when applicable.";
|
||||
}
|
||||
container service-a-end {
|
||||
uses service-endpoint;
|
||||
}
|
||||
container service-z-end {
|
||||
uses service-endpoint;
|
||||
}
|
||||
uses org-openroadm-routing-constraints:routing-constraints;
|
||||
uses service-information;
|
||||
leaf latency {
|
||||
type uint32;
|
||||
description
|
||||
"Latency on service";
|
||||
}
|
||||
leaf-list fiber-span-srlgs {
|
||||
type string;
|
||||
description
|
||||
"Shared risk link group identifiers";
|
||||
}
|
||||
list equipment-srgs {
|
||||
key "srg-number";
|
||||
uses org-openroadm-resource-types:srg-number;
|
||||
}
|
||||
leaf-list supporting-service-name {
|
||||
description
|
||||
"The service name that this runs over top. If connection-type is service, then this is the related
|
||||
connection-type = infrastructure service, for example.";
|
||||
type string;
|
||||
}
|
||||
container topology {
|
||||
uses org-openroadm-topology:topology;
|
||||
}
|
||||
}
|
||||
|
||||
grouping service-notification-result {
|
||||
leaf service-name {
|
||||
type string;
|
||||
description
|
||||
"Identifier for the service e.g., CLFI, CLCI, etc.";
|
||||
mandatory true;
|
||||
}
|
||||
leaf actual-date {
|
||||
type yang:date-and-time;
|
||||
description
|
||||
"Actual date and time (if successful)";
|
||||
}
|
||||
}
|
||||
|
||||
typedef service-format {
|
||||
type enumeration {
|
||||
enum "Ethernet" {
|
||||
value 1;
|
||||
}
|
||||
enum "OTU" {
|
||||
value 2;
|
||||
}
|
||||
enum "OC" {
|
||||
value 3;
|
||||
}
|
||||
enum "STM" {
|
||||
value 4;
|
||||
}
|
||||
enum "OMS" {
|
||||
value 5;
|
||||
}
|
||||
enum "ODU" {
|
||||
value 6;
|
||||
}
|
||||
enum "OTM" {
|
||||
value 7;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
typedef service-notification-types {
|
||||
type enumeration {
|
||||
enum "service-create-result" {
|
||||
value 1;
|
||||
}
|
||||
enum "service-reconfigure-result" {
|
||||
value 2;
|
||||
}
|
||||
enum "service-delete-result" {
|
||||
value 3;
|
||||
}
|
||||
enum "service-roll-result" {
|
||||
value 4;
|
||||
}
|
||||
enum "service-revert-result" {
|
||||
value 5;
|
||||
}
|
||||
enum "service-reroute-result" {
|
||||
value 6;
|
||||
}
|
||||
enum "service-restoration-result" {
|
||||
value 7;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
typedef connection-type {
|
||||
type enumeration {
|
||||
enum "service" {
|
||||
value 1;
|
||||
}
|
||||
enum "infrastructure" {
|
||||
value 2;
|
||||
}
|
||||
enum "roadm-line" {
|
||||
value 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
typedef service-condition {
|
||||
type enumeration {
|
||||
enum "restored-temporarily" {
|
||||
value 1;
|
||||
}
|
||||
enum "re-routed-temporarily" {
|
||||
value 2;
|
||||
}
|
||||
enum "activated-for-service" {
|
||||
value 3;
|
||||
}
|
||||
enum "activated-for-further-check" {
|
||||
value 4;
|
||||
}
|
||||
enum "activated-for-troubleshooting-failure" {
|
||||
value 5;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,282 @@
|
||||
module org-openroadm-common-types {
|
||||
namespace "http://org/openroadm/common-types";
|
||||
prefix org-openroadm-common-types;
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions of common types.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping physical-location {
|
||||
leaf rack {
|
||||
type string;
|
||||
mandatory false;
|
||||
}
|
||||
leaf shelf {
|
||||
type string;
|
||||
mandatory false;
|
||||
}
|
||||
leaf slot {
|
||||
type string;
|
||||
mandatory false;
|
||||
}
|
||||
leaf subSlot {
|
||||
type string;
|
||||
mandatory false;
|
||||
}
|
||||
}
|
||||
|
||||
typedef node-types {
|
||||
type enumeration {
|
||||
enum "rdm" {
|
||||
value 1;
|
||||
}
|
||||
enum "xpdr" {
|
||||
value 2;
|
||||
}
|
||||
}
|
||||
description
|
||||
"3 digit identifier for node type
|
||||
1. rdm for ROADM
|
||||
2. xpdr for Transponder, Regen";
|
||||
}
|
||||
|
||||
typedef power-dBm {
|
||||
description
|
||||
"Power value in dBm.";
|
||||
type decimal64 {
|
||||
fraction-digits 2;
|
||||
}
|
||||
units "dBm";
|
||||
}
|
||||
|
||||
typedef ratio-dB {
|
||||
description
|
||||
"Power ratio in dB.";
|
||||
type decimal64 {
|
||||
fraction-digits 3;
|
||||
}
|
||||
units "dB";
|
||||
}
|
||||
|
||||
typedef severity {
|
||||
description
|
||||
"Severity, based on X.733 perceived severity";
|
||||
type enumeration {
|
||||
enum "critical" {
|
||||
value 1;
|
||||
}
|
||||
enum "major" {
|
||||
value 2;
|
||||
}
|
||||
enum "minor" {
|
||||
value 3;
|
||||
}
|
||||
enum "warning" {
|
||||
value 4;
|
||||
}
|
||||
enum "clear" {
|
||||
value 5;
|
||||
}
|
||||
enum "indeterminate" {
|
||||
value 6;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
typedef rpc-status {
|
||||
description
|
||||
"status of RPC ";
|
||||
type enumeration {
|
||||
enum "Successful" {
|
||||
value 1;
|
||||
}
|
||||
enum "Failed" {
|
||||
value 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping rpc-response-status {
|
||||
leaf status {
|
||||
type rpc-status;
|
||||
mandatory true;
|
||||
description
|
||||
"Successful or Failed";
|
||||
}
|
||||
leaf status-message {
|
||||
type string;
|
||||
description
|
||||
"Gives a more detailed reason for failure";
|
||||
}
|
||||
}
|
||||
|
||||
typedef lifecycle-state {
|
||||
description
|
||||
"Lifecycle state.";
|
||||
type enumeration {
|
||||
enum "deployed" {
|
||||
value 1;
|
||||
}
|
||||
enum "planned" {
|
||||
value 2;
|
||||
}
|
||||
enum "maintenance" {
|
||||
value 3;
|
||||
}
|
||||
enum "deploying" {
|
||||
value 4;
|
||||
}
|
||||
enum "undeploying" {
|
||||
value 5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
typedef state {
|
||||
description
|
||||
"State that indicates whether the resource is able to provide fullfill its role - carry traffic, etc.";
|
||||
type enumeration {
|
||||
enum "inService" {
|
||||
value 1;
|
||||
}
|
||||
enum "outOfService" {
|
||||
value 2;
|
||||
}
|
||||
enum "degraded" {
|
||||
value 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
typedef optic-types {
|
||||
type enumeration {
|
||||
enum "gray" {
|
||||
value 1;
|
||||
}
|
||||
enum "dwdm" {
|
||||
value 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
grouping equipment-type {
|
||||
leaf type {
|
||||
type equipment-type-enum;
|
||||
mandatory true;
|
||||
config false;
|
||||
}
|
||||
leaf extension {
|
||||
description
|
||||
"Populated with equipment type when enum value is set to vendorExtension";
|
||||
type string;
|
||||
mandatory false;
|
||||
config false;
|
||||
}
|
||||
}
|
||||
|
||||
typedef equipment-type-enum {
|
||||
type enumeration {
|
||||
enum "other" {
|
||||
value 1;
|
||||
}
|
||||
enum "powerSupply" {
|
||||
value 2;
|
||||
}
|
||||
enum "shelfProcessor" {
|
||||
value 3;
|
||||
}
|
||||
enum "crossConnect" {
|
||||
value 4;
|
||||
}
|
||||
enum "fan" {
|
||||
value 5;
|
||||
}
|
||||
enum "accessPanel" {
|
||||
value 6;
|
||||
}
|
||||
enum "circuitPack" {
|
||||
value 7;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
typedef optical-control-mode {
|
||||
description
|
||||
"Optical Control Mode: identifies specific algorithm related to power management and general optical control.";
|
||||
type enumeration {
|
||||
enum "power" {
|
||||
value 1;
|
||||
}
|
||||
enum "gainLoss" {
|
||||
value 2;
|
||||
}
|
||||
enum "off" {
|
||||
value 3;
|
||||
}
|
||||
}
|
||||
reference "openroadm.org: Open ROADM MSA Specification.";
|
||||
}
|
||||
|
||||
typedef direction {
|
||||
type enumeration {
|
||||
enum "tx" {
|
||||
value 1;
|
||||
}
|
||||
enum "rx" {
|
||||
value 2;
|
||||
}
|
||||
enum "bidirectional" {
|
||||
value 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
typedef pm-direction {
|
||||
type enumeration {
|
||||
enum "tx" {
|
||||
value 1;
|
||||
}
|
||||
enum "rx" {
|
||||
value 2;
|
||||
}
|
||||
enum "bidirectional" {
|
||||
value 3;
|
||||
}
|
||||
enum "notApplicable" {
|
||||
value 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,119 @@
|
||||
module org-openroadm-database {
|
||||
namespace "http://org/openroadm/database";
|
||||
prefix org-openroadm-database;
|
||||
|
||||
import org-openroadm-common-types {
|
||||
prefix org-openroadm-common-types;
|
||||
}
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"This module contains definitions for System Management.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
rpc db-backup {
|
||||
description
|
||||
"copy running DB to user provided file to a given path";
|
||||
input {
|
||||
leaf filename {
|
||||
type string {
|
||||
length "10..255";
|
||||
}
|
||||
description
|
||||
"Path and file name is used with back-up.(xxx.DBS)";
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
}
|
||||
rpc db-restore {
|
||||
description
|
||||
"Restore database ";
|
||||
input {
|
||||
leaf filename {
|
||||
type string {
|
||||
length "10..255";
|
||||
}
|
||||
description
|
||||
"PATH/file name use file name.(xxx.DBS)";
|
||||
}
|
||||
leaf nodeIDCheck {
|
||||
type boolean;
|
||||
default "true";
|
||||
description
|
||||
"Flag to indicate if sysNameCheck is required";
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
}
|
||||
rpc db-activate {
|
||||
description
|
||||
"activate the database";
|
||||
input {
|
||||
leaf rollBackTimer {
|
||||
type string;
|
||||
description
|
||||
"rollbackTimer ";
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
}
|
||||
rpc cancel-rollback-timer {
|
||||
description
|
||||
"Cancel roll back timer which user provisioned as part of activate command";
|
||||
input {
|
||||
leaf accept {
|
||||
type boolean;
|
||||
description
|
||||
" TRUE means rollback timer is cancelled and new load is accepted";
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
}
|
||||
rpc database-init {
|
||||
description
|
||||
"Initialize the database to default DB";
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
} //output
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
module org-openroadm-de-operations {
|
||||
namespace "http://org/openroadm/de/operations";
|
||||
prefix org-openroadm-de-operations;
|
||||
|
||||
import org-openroadm-resource {
|
||||
prefix org-openroadm-resource;
|
||||
}
|
||||
|
||||
import org-openroadm-common-types {
|
||||
prefix org-openroadm-common-types;
|
||||
}
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions of operations.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
rpc restart {
|
||||
description
|
||||
"Restart a resource with warm/cold option. If no resource is provided or only the device name is provded, then the device itself will be restarted.
|
||||
Note that resources on the device will not be restartable";
|
||||
input {
|
||||
uses org-openroadm-resource:resource;
|
||||
leaf option{
|
||||
type enumeration{
|
||||
enum "warm"{
|
||||
value 1;
|
||||
}
|
||||
enum "cold"{
|
||||
value 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
}
|
||||
notification restart-notification {
|
||||
description
|
||||
"This Notification is sent when a resource on a device has completed a restart. This is sent as a result of restarts triggered via the
|
||||
restart RPC and other means. The resource identified is the from the RPC request or the equivalment if the restart was triggered another way.";
|
||||
uses org-openroadm-resource:resource;
|
||||
}
|
||||
}
|
||||
146
apps/openroadm/yangmodel/src/main/yang/org-openroadm-degree.yang
Normal file
146
apps/openroadm/yangmodel/src/main/yang/org-openroadm-degree.yang
Normal file
@ -0,0 +1,146 @@
|
||||
module org-openroadm-degree {
|
||||
namespace "http://org/openroadm/degree";
|
||||
prefix org-openroadm-degree;
|
||||
|
||||
import org-openroadm-common-types {
|
||||
prefix org-openroadm-common-types;
|
||||
}
|
||||
organization
|
||||
"Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org.";
|
||||
description
|
||||
"YANG definitions for a Degree in Network Model
|
||||
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping roadm-degree {
|
||||
list degrees {
|
||||
key "degree-number";
|
||||
leaf degree-number {
|
||||
type uint16;
|
||||
description
|
||||
"Identifier for each direction/degree";
|
||||
}
|
||||
container external {
|
||||
leaf clli {
|
||||
type string;
|
||||
description
|
||||
"Location CLLI where ROADM resides";
|
||||
}
|
||||
leaf node-number{
|
||||
type uint32;
|
||||
description
|
||||
"Number assigned to a ROADM node in a
|
||||
given office";
|
||||
}
|
||||
leaf node-id {
|
||||
type string;
|
||||
description
|
||||
"Identifier of the ROADM";
|
||||
}
|
||||
leaf degree-number {
|
||||
type uint16;
|
||||
description
|
||||
"Identifier for direction/degree in far-end ROADM";
|
||||
}
|
||||
leaf oms-clfi {
|
||||
type string;
|
||||
description
|
||||
"Unique facility name given to the OMS tails";
|
||||
}
|
||||
leaf-list facility-routing-subpath {
|
||||
type string;
|
||||
description
|
||||
"";
|
||||
}
|
||||
leaf max-wavelengths {
|
||||
type uint32;
|
||||
description
|
||||
"Numeric value specifies the maximum # of wavelengths supported by the OMS";
|
||||
}
|
||||
leaf-list available-wavelengths {
|
||||
type uint32;
|
||||
description
|
||||
"list of wavelengths that are supported by the degree";
|
||||
}
|
||||
leaf distance {
|
||||
type decimal64 {
|
||||
fraction-digits 1;
|
||||
}
|
||||
description
|
||||
"Span distance measured in km.";
|
||||
units "km";
|
||||
}
|
||||
leaf spanloss-base {
|
||||
description
|
||||
"Baseline ROADM span loss measured and accepted during degree turn-up.";
|
||||
type org-openroadm-common-types:ratio-dB;
|
||||
}
|
||||
leaf spanloss-current {
|
||||
description
|
||||
"Current ROADM span loss captured by the controller.";
|
||||
type org-openroadm-common-types:ratio-dB;
|
||||
}
|
||||
container oms-ttp-tx {
|
||||
leaf-list wavelength-number {
|
||||
type uint32;
|
||||
description
|
||||
"The wavelength # assigned by PCE to a service/circuit";
|
||||
}
|
||||
}
|
||||
container oms-ttp-rx {
|
||||
leaf-list wavelength-number {
|
||||
type uint32;
|
||||
description
|
||||
"The wavelength # assigned by PCE to a service/circuit";
|
||||
}
|
||||
}
|
||||
}
|
||||
container ctp-tx {
|
||||
leaf-list wavelength-number {
|
||||
type uint32;
|
||||
description
|
||||
"The wavelength # assigned by PCE to a service/circuit";
|
||||
}
|
||||
}
|
||||
container ctp-rx {
|
||||
leaf-list wavelength-number {
|
||||
type uint32;
|
||||
description
|
||||
"The wavelength # assigned by PCE to a service/circuit";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,217 @@
|
||||
module org-openroadm-device-resource-types {
|
||||
namespace "http://org/openroadm/de/device-resource-types";
|
||||
prefix org-openroadm-device-resource-types;
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions of resource types.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
/* Currently not used; if used later, needs to move to org-openroadm-device.yang so leafref can be resolved.
|
||||
grouping device-id {
|
||||
description
|
||||
"Device identifier. Unique within the Controller.";
|
||||
leaf node-id {
|
||||
description
|
||||
"Node Id. Globally unique identifier for a device.";
|
||||
type leafref {
|
||||
path "/org-openroadm-device/info/node-id";
|
||||
}
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/* Currently not used; if used later, needs to move to org-openroadm-device.yang so leafref can be resolved.
|
||||
grouping shelf-name {
|
||||
leaf shelf-name {
|
||||
description
|
||||
"Shelf identifier. Unique within the context of a device.";
|
||||
type leafref {
|
||||
path "/org-openroadm-device/shelves/shelf-name";
|
||||
}
|
||||
mandatory true;
|
||||
config false;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/* Currently not used; if used later, needs to move to org-openroadm-device.yang so leafref can be resolved.
|
||||
grouping physical-link-name {
|
||||
leaf physical-link-name {
|
||||
description
|
||||
"Physical Link identifier. Unique within the context of a device.";
|
||||
type leafref {
|
||||
path "/org-openroadm-device/physical-link/physical-link-name";
|
||||
}
|
||||
mandatory true;
|
||||
config false;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/* Currently not used; if used later, needs to move to org-openroadm-device.yang so leafref can be resolved.
|
||||
grouping internal-link-name {
|
||||
uses org-openroadm-device:circuit-pack-name;
|
||||
leaf internal-link-name {
|
||||
description
|
||||
"Internal Link identifier. Unique within the context of a circuit pack.";
|
||||
type leafref {
|
||||
path "/org-openroadm-device/internal-link/internal-link-name";
|
||||
}
|
||||
mandatory true;
|
||||
config false;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/* Currently not used; if used later, needs to move to org-openroadm-device.yang so leafref can be resolved.
|
||||
grouping connection-number {
|
||||
leaf connection-number {
|
||||
description
|
||||
"Connection identifier. Unique within the context of a device.";
|
||||
type leafref {
|
||||
path "/org-openroadm-device/connections/connection-number";
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/* Currently not used; if used later, needs to move to org-openroadm-device.yang so leafref can be resolved.
|
||||
grouping this-will-test-ids {
|
||||
uses device-id;
|
||||
container shelf {
|
||||
uses shelf-name;
|
||||
}
|
||||
container circuit-pack {
|
||||
uses org-openroadm-device:circuit-pack-name;
|
||||
}
|
||||
container port {
|
||||
uses org-openroadm-device:port-name;
|
||||
}
|
||||
uses internal-link-name;
|
||||
uses physical-link-name;
|
||||
uses connection-number;
|
||||
uses org-openroadm-device:srg-number;
|
||||
uses org-openroadm-device:degree-number;
|
||||
}
|
||||
*/
|
||||
|
||||
/* Currently not used; if used later, needs to move to org-openroadm-device.yang so leafref can be resolved.
|
||||
grouping xponder-device-id {
|
||||
description
|
||||
"Xponder identifier. Unique within the Controller.";
|
||||
leaf node-id {
|
||||
description
|
||||
"Xponder Id. Globally unique identifier for the device";
|
||||
type leafref {
|
||||
path "/org-openroadm-device/info/node-id";
|
||||
}
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/* Currently not used; if used later, needs to move to org-openroadm-device.yang so leafref can be resolved.
|
||||
grouping xponder-number {
|
||||
leaf xponder-number {
|
||||
description
|
||||
"Xponder identifier. Unique within the context of a device.";
|
||||
type leafref {
|
||||
path "/org-openroadm-device/xponders/xponder-number";
|
||||
}
|
||||
config false;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/* Currently not used; if used later, needs to move to org-openroadm-device.yang so leafref can be resolved.
|
||||
grouping xponder-shelf-name {
|
||||
uses xponder-number;
|
||||
leaf shelf-name {
|
||||
description
|
||||
"Shelf identifier. Unique within the context of a device.";
|
||||
type leafref {
|
||||
path "/org-openroadm-device/xponders[xponder-number=current()/../xponder-number]/shelves/shelf-name";
|
||||
}
|
||||
mandatory true;
|
||||
config false;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/* Currently not used; if used later, needs to move to org-openroadm-device.yang so leafref can be resolved.
|
||||
grouping xponder-circuit-pack-name {
|
||||
uses xponder-number;
|
||||
leaf circuit-pack-name {
|
||||
description
|
||||
"Circuit Pack identifier. Unique within the context of a xponder.";
|
||||
type leafref {
|
||||
path "/org-openroadm-device/circuit-packs/circuit-pack-name";
|
||||
}
|
||||
config false;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/* Currently not used; if used later, needs to move to org-openroadm-device.yang so leafref can be resolved.
|
||||
grouping xponder-port-name {
|
||||
uses xponder-circuit-pack-name;
|
||||
leaf port-name {
|
||||
description
|
||||
"Port identifier. Unique within the context of a circuit-pack.";
|
||||
type leafref {
|
||||
path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
|
||||
}
|
||||
config false;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/* Currently not used; if used later, needs to move to org-openroadm-device.yang so leafref can be resolved.
|
||||
grouping this-will-test-xponder-ids {
|
||||
uses xponder-device-id;
|
||||
container shelf {
|
||||
uses xponder-shelf-name;
|
||||
}
|
||||
container circuit-pack {
|
||||
uses xponder-circuit-pack-name;
|
||||
}
|
||||
container port {
|
||||
uses xponder-port-name;
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
1213
apps/openroadm/yangmodel/src/main/yang/org-openroadm-device.yang
Normal file
1213
apps/openroadm/yangmodel/src/main/yang/org-openroadm-device.yang
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,130 @@
|
||||
module org-openroadm-equipment-states-types {
|
||||
namespace "http://org/openroadm/equipment/states/types";
|
||||
prefix org-openroadm-equipment-states-types;
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions for types of states of equipment (slot/subslot).
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
typedef admin-states {
|
||||
type enumeration {
|
||||
enum "inService" {
|
||||
value 1;
|
||||
}
|
||||
enum "outOfService" {
|
||||
value 2;
|
||||
}
|
||||
enum "maintenance" {
|
||||
value 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
typedef states {
|
||||
type enumeration {
|
||||
enum "reserved-for-facility-planned" {
|
||||
value 1;
|
||||
description
|
||||
"equipment is planned for use by a service";
|
||||
}
|
||||
enum "not-reserved-planned" {
|
||||
value 2;
|
||||
description
|
||||
"equipment is planned by not reserved for any purpose";
|
||||
}
|
||||
enum "reserved-for-maintenance-planned" {
|
||||
value 3;
|
||||
description
|
||||
"equipment is planned for use as a maintenance spare";
|
||||
}
|
||||
enum "reserved-for-facility-unvalidated" {
|
||||
value 4;
|
||||
description
|
||||
"equipment is reserved for use by a service but not
|
||||
validated against planned equipment";
|
||||
}
|
||||
enum "not-reserved-unvalidated" {
|
||||
value 5;
|
||||
description
|
||||
"equipment is not reserved for any purpose and
|
||||
not validated against planned equipment";
|
||||
}
|
||||
enum "unknown-unvalidated" {
|
||||
value 6;
|
||||
description
|
||||
"unknown equipment not validated against planned equipment";
|
||||
}
|
||||
enum "reserved-for-maintenance-unvalidated" {
|
||||
value 7;
|
||||
description
|
||||
"equipment is to be used for use as a maintenance spare
|
||||
but not validated against planned equipment";
|
||||
}
|
||||
enum "reserved-for-facility-available" {
|
||||
value 8;
|
||||
description
|
||||
"reserved for use by a service and available";
|
||||
}
|
||||
enum "not-reserved-available" {
|
||||
value 9;
|
||||
description
|
||||
"not reserved for use by a service and available";
|
||||
}
|
||||
enum "reserved-for-maintenance-available" {
|
||||
value 10;
|
||||
description
|
||||
"reserved as a maintenance spare and available";
|
||||
}
|
||||
enum "reserved-for-reversion-inuse" {
|
||||
value 11;
|
||||
description
|
||||
"equipiment that is reserved as part of a home path
|
||||
for a service that has been temporarily re-routed";
|
||||
}
|
||||
enum "not-reserved-inuse" {
|
||||
value 12;
|
||||
description
|
||||
"equipment in use for a service";
|
||||
}
|
||||
enum "reserved-for-maintenance-inuse" {
|
||||
value 13;
|
||||
description
|
||||
"maintenance spare equipment that is in use as a
|
||||
maintenance spare";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,145 @@
|
||||
module org-openroadm-ethernet-interfaces {
|
||||
namespace "http://org/openroadm/ethernet-interfaces";
|
||||
prefix org-openroadm-eth-interfaces;
|
||||
|
||||
import org-openroadm-device {
|
||||
prefix org-openroadm-device;
|
||||
}
|
||||
import org-openroadm-interfaces {
|
||||
prefix openROADM-if;
|
||||
}
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions for device facility ethernet interfaces.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Also contains code components extracted from IETF Interfaces. These code components
|
||||
are copyrighted and licensed as follows:
|
||||
|
||||
Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
|
||||
All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
|
||||
to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents carefully, as they
|
||||
describe your rights and restrictions with respect to this document. Code Components
|
||||
extracted from this document must include Simplified BSD License text as described in
|
||||
Section 4.e of the Trust Legal Provisions and are provided without warranty as
|
||||
described in the Simplified BSD License.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping eth-attributes {
|
||||
leaf speed {
|
||||
type uint32;
|
||||
description
|
||||
"Set speed of the interface, unit mbps.
|
||||
This is for ETH facility. ";
|
||||
}
|
||||
leaf fec {
|
||||
type enumeration {
|
||||
enum off;
|
||||
enum rsfec;
|
||||
}
|
||||
description "Forward Error Correction Choices. ";
|
||||
}
|
||||
leaf duplex {
|
||||
type enumeration {
|
||||
enum "half" {
|
||||
value 0;
|
||||
description
|
||||
"half duplex";
|
||||
}
|
||||
enum "full" {
|
||||
value 1;
|
||||
description
|
||||
"full duplex";
|
||||
}
|
||||
}
|
||||
default "full";
|
||||
description
|
||||
"Set duplex selections.";
|
||||
}
|
||||
leaf mtu {
|
||||
type uint32 {
|
||||
range "1518..9000";
|
||||
}
|
||||
default "1522";
|
||||
description
|
||||
"Set Maximum Frame Size.";
|
||||
}
|
||||
leaf auto-negotiation {
|
||||
type enumeration {
|
||||
enum "enabled" {
|
||||
value 1;
|
||||
description
|
||||
"Auto Negotiation enabled";
|
||||
}
|
||||
enum "disabled" {
|
||||
value 0;
|
||||
description
|
||||
"Auto Negotiation disabled";
|
||||
}
|
||||
}
|
||||
default "enabled";
|
||||
description
|
||||
"Set Auto Negotiation: Enabled/Disabled.";
|
||||
}
|
||||
leaf curr-speed {
|
||||
config false;
|
||||
type string;
|
||||
description
|
||||
"speed (UNKNOWN/AUTO/10/100/1000/10000) corresponding to the interface";
|
||||
}
|
||||
leaf curr-duplex {
|
||||
config false;
|
||||
type string;
|
||||
description
|
||||
"duplex (HALF/FULL) corresponding to the interface";
|
||||
}
|
||||
}
|
||||
|
||||
grouping ethernet-container {
|
||||
container ethernet {
|
||||
description
|
||||
"Ethernet Interfaces";
|
||||
uses eth-attributes;
|
||||
}
|
||||
}
|
||||
|
||||
augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
|
||||
when "org-openroadm-device:type = 'openROADM-if:ethernetCsmacd'";
|
||||
uses ethernet-container;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,138 @@
|
||||
module org-openroadm-external-pluggable {
|
||||
namespace "http://org/openroadm/external/pluggable";
|
||||
prefix org-openroadm-external-pluggable;
|
||||
|
||||
import org-openroadm-equipment-states-types {
|
||||
prefix org-openroadm-equipment-states-types;
|
||||
}
|
||||
import org-openroadm-common-types {
|
||||
prefix org-openroadm-common-types;
|
||||
}
|
||||
|
||||
organization
|
||||
"OPEN ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org.";
|
||||
description
|
||||
"YANG definitions for External Pluggable
|
||||
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping external-pluggable {
|
||||
list pluggables {
|
||||
key "clli";
|
||||
leaf clli {
|
||||
type string;
|
||||
description
|
||||
"Location CLLI where pluggable resides";
|
||||
}
|
||||
list ext-pluggables {
|
||||
key "pluggable-number node-type";
|
||||
leaf pluggable-number {
|
||||
type uint32;
|
||||
description
|
||||
"Identifier of the pluggable in a given
|
||||
office, i.e., 1, 2..N";
|
||||
}
|
||||
leaf node-type {
|
||||
type org-openroadm-common-types:node-types;
|
||||
}
|
||||
leaf pluggable-id {
|
||||
type string;
|
||||
description
|
||||
"Network-wide unique identifier for a pluggable";
|
||||
}
|
||||
leaf vendor {
|
||||
type string;
|
||||
description
|
||||
"Identifier of the supplier for the pluggable";
|
||||
}
|
||||
leaf customer-code {
|
||||
type string;
|
||||
description
|
||||
"Owner of the pluggable";
|
||||
}
|
||||
container external-connection {
|
||||
leaf clli {
|
||||
type string;
|
||||
description
|
||||
"Location of CLLI where ROADM resides";
|
||||
}
|
||||
leaf node-number{
|
||||
type uint32;
|
||||
}
|
||||
leaf node-id {
|
||||
type string;
|
||||
description
|
||||
"Identifier of a ROADM node";
|
||||
}
|
||||
leaf srg-number {
|
||||
type uint16;
|
||||
}
|
||||
leaf pp-number {
|
||||
type uint16;
|
||||
}
|
||||
leaf bit-rate {
|
||||
type uint32;
|
||||
}
|
||||
leaf signal-format {
|
||||
type string;
|
||||
}
|
||||
leaf reach {
|
||||
type string;
|
||||
}
|
||||
leaf optic {
|
||||
type org-openroadm-common-types:optic-types;
|
||||
}
|
||||
leaf state {
|
||||
type org-openroadm-equipment-states-types:states;
|
||||
description
|
||||
"A xponder can be in one of the following
|
||||
states";
|
||||
}
|
||||
}
|
||||
container tail {
|
||||
leaf client-equipment {
|
||||
type string;
|
||||
}
|
||||
leaf client-equipmentId {
|
||||
type string;
|
||||
}
|
||||
leaf clfi {
|
||||
type string;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,145 @@
|
||||
module org-openroadm-file-transfer {
|
||||
namespace "http://org/openroadm/file-transfer";
|
||||
prefix org-openroadm-file-txr;
|
||||
|
||||
import ietf-inet-types {
|
||||
prefix inet;
|
||||
}
|
||||
|
||||
import org-openroadm-common-types {
|
||||
prefix org-openroadm-common-types;
|
||||
}
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions for file management related rpcs.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
rpc transfer {
|
||||
description
|
||||
"File transfer using FTP/SFTP";
|
||||
input {
|
||||
leaf action {
|
||||
mandatory true;
|
||||
description
|
||||
"Type of action - download/upload.";
|
||||
type enumeration {
|
||||
enum "upload" {
|
||||
description
|
||||
"Specify the upload action. The server sends
|
||||
the file identified by the local-file-path
|
||||
to the remote-file-path.";
|
||||
}
|
||||
enum "download" {
|
||||
description
|
||||
"Specify the download action. The server retrieves
|
||||
the file identified by the remote-file-path
|
||||
to the local-file-path.";
|
||||
}
|
||||
}
|
||||
}
|
||||
leaf local-file-path {
|
||||
type string;
|
||||
mandatory true;
|
||||
description
|
||||
"Local file path.
|
||||
Ex: /var/shared/example.txt";
|
||||
}
|
||||
leaf remote-file-path {
|
||||
type inet:uri;
|
||||
mandatory true;
|
||||
description
|
||||
"Remote file path.
|
||||
A URI for the remote file path.
|
||||
|
||||
Format:sftp://user[:password]@host[:port]/path.
|
||||
Ex: sftp://test:verify@[2001:db8:0:1::10]:22/home/user/sample";
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
}
|
||||
rpc show-file {
|
||||
description
|
||||
"Show one or more files in the specified directory.";
|
||||
input {
|
||||
leaf filename {
|
||||
type string {
|
||||
length "1..255";
|
||||
}
|
||||
description
|
||||
"Specify file(s) to be listed (* is allowed as wild-card). ";
|
||||
}
|
||||
}
|
||||
output {
|
||||
leaf status {
|
||||
type enumeration {
|
||||
enum "Successful" {
|
||||
value 1;
|
||||
}
|
||||
enum "Failed" {
|
||||
value 2;
|
||||
}
|
||||
}
|
||||
mandatory true;
|
||||
description
|
||||
"Successful or Failed";
|
||||
}
|
||||
leaf-list status-message {
|
||||
type string;
|
||||
description
|
||||
"Gives a more detailed reason for success / failure";
|
||||
}
|
||||
}
|
||||
}
|
||||
rpc delete-file {
|
||||
description
|
||||
"Delete one or more files in the specified directory.";
|
||||
input {
|
||||
leaf filename {
|
||||
type string {
|
||||
length "1..255";
|
||||
}
|
||||
mandatory true;
|
||||
description
|
||||
"Specify file(s) to be deleted (* is allowed as wild-card).";
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,59 @@
|
||||
module org-openroadm-fwdl {
|
||||
namespace "http://org/openroadm/fwdl";
|
||||
prefix org-openroadm-fwdl;
|
||||
|
||||
import org-openroadm-common-types {
|
||||
prefix org-openroadm-common-types;
|
||||
}
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"This module contains definitions for System Management.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
rpc fw-update {
|
||||
description
|
||||
"Fpga data update";
|
||||
input {
|
||||
leaf circuit-pack-name {
|
||||
type string;
|
||||
description
|
||||
"Name of the circuit pack";
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,108 @@
|
||||
module org-openroadm-interfaces {
|
||||
namespace "http://org/openroadm/interfaces";
|
||||
prefix openROADM-if;
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions for device facility interfaces.
|
||||
Reused ietf-interfaces and some interface-type defined in iana-if-type.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Also contains code components extracted from IETF Interfaces. These code components
|
||||
are copyrighted and licensed as follows:
|
||||
|
||||
Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
|
||||
All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
|
||||
to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents carefully, as they
|
||||
describe your rights and restrictions with respect to this document. Code Components
|
||||
extracted from this document must include Simplified BSD License text as described in
|
||||
Section 4.e of the Trust Legal Provisions and are provided without warranty as
|
||||
described in the Simplified BSD License.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
identity interface-type {
|
||||
description
|
||||
"Base identity from which specific interface types are
|
||||
derived.";
|
||||
}
|
||||
|
||||
identity ethernetCsmacd {
|
||||
base interface-type;
|
||||
description
|
||||
"For all Ethernet-like interfaces, regardless of speed,
|
||||
as per RFC 3635.";
|
||||
reference
|
||||
"RFC 3635 - Definitions of Managed Objects for the
|
||||
Ethernet-like Interface Types";
|
||||
}
|
||||
|
||||
identity ip {
|
||||
base interface-type;
|
||||
description
|
||||
"IP (for APPN HPR in IP networks).";
|
||||
}
|
||||
|
||||
identity opticalChannel {
|
||||
base interface-type;
|
||||
description
|
||||
"Optical Channel.";
|
||||
}
|
||||
|
||||
identity opticalTransport {
|
||||
base interface-type;
|
||||
description
|
||||
"Optical Transport.";
|
||||
}
|
||||
|
||||
identity otnOdu {
|
||||
base interface-type;
|
||||
description
|
||||
"OTN Optical Data Unit.";
|
||||
}
|
||||
|
||||
identity otnOtu {
|
||||
base interface-type;
|
||||
description
|
||||
"OTN Optical channel Transport Unit.";
|
||||
}
|
||||
|
||||
identity openROADMOpticalMultiplex {
|
||||
base interface-type;
|
||||
description
|
||||
"Optical Transport Multiplex type for openROADM";
|
||||
}
|
||||
}
|
||||
302
apps/openroadm/yangmodel/src/main/yang/org-openroadm-lldp.yang
Normal file
302
apps/openroadm/yangmodel/src/main/yang/org-openroadm-lldp.yang
Normal file
@ -0,0 +1,302 @@
|
||||
module org-openroadm-lldp {
|
||||
namespace "http://org/openroadm/lldp";
|
||||
prefix org-openroadm-lldp;
|
||||
|
||||
import ietf-inet-types {
|
||||
prefix inet;
|
||||
}
|
||||
import org-openroadm-device {
|
||||
prefix org-openroadm-device;
|
||||
}
|
||||
import iana-afn-safi {
|
||||
prefix ianaaf;
|
||||
}
|
||||
import org-openroadm-resource-types {
|
||||
prefix org-openroadm-resource-types;
|
||||
}
|
||||
import ietf-yang-types {
|
||||
prefix yang;
|
||||
}
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions for lldp protocol.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
grouping nbr-info-grp {
|
||||
description
|
||||
"Display LLDP Neighbour ";
|
||||
|
||||
leaf remoteSysName {
|
||||
type string;
|
||||
description
|
||||
"remote neighbour system name";
|
||||
}
|
||||
leaf remoteMgmtAddressSubType {
|
||||
type ianaaf:address-family;
|
||||
description
|
||||
"remote neighbour Management Address Subtype Enumeration";
|
||||
}
|
||||
leaf remoteMgmtAddress {
|
||||
type inet:ip-address;
|
||||
description
|
||||
"remote neighbour management address";
|
||||
}
|
||||
leaf remotePortIdSubType {
|
||||
type enumeration {
|
||||
enum "other" {
|
||||
value 0;
|
||||
description
|
||||
"reserved";
|
||||
}
|
||||
enum "ifalias" {
|
||||
value 1;
|
||||
description
|
||||
"Interface Alias (IfAlias - IETF RFC 2863) ";
|
||||
}
|
||||
enum "portcomponent" {
|
||||
value 2;
|
||||
description
|
||||
"Port component (EntPhysicalAlias IETF RFC 4133)";
|
||||
}
|
||||
enum "macaddress" {
|
||||
value 3;
|
||||
description
|
||||
"MAC address (IEEE Std 802) ";
|
||||
}
|
||||
enum "networkaddress" {
|
||||
value 4;
|
||||
description
|
||||
"Network Address";
|
||||
}
|
||||
enum "ifname" {
|
||||
value 5;
|
||||
description
|
||||
"Interface Name (ifName - IETF RFC 2863)";
|
||||
}
|
||||
enum "agentcircuitid" {
|
||||
value 6;
|
||||
description
|
||||
"Agent Circuit Id (IETF RFC 3046)";
|
||||
}
|
||||
enum "local" {
|
||||
value 7;
|
||||
description
|
||||
"Locally assigned";
|
||||
}
|
||||
}
|
||||
description
|
||||
"remote neighbour Port ID Subtype Enumeration";
|
||||
}
|
||||
leaf remotePortId {
|
||||
type string;
|
||||
description
|
||||
"remote neighbour port Id";
|
||||
}
|
||||
leaf remoteChassisIdSubType {
|
||||
type enumeration {
|
||||
enum "reserved" {
|
||||
value 0;
|
||||
description
|
||||
"reserved";
|
||||
}
|
||||
enum "chassiscomponent" {
|
||||
value 1;
|
||||
description
|
||||
"Chassis component (EntPhysicalAlias IETF RFC 4133)";
|
||||
}
|
||||
enum "ifalias" {
|
||||
value 2;
|
||||
description
|
||||
"Interface Alias (IfAlias - IETF RFC 2863) ";
|
||||
}
|
||||
enum "portcomponent" {
|
||||
value 3;
|
||||
description
|
||||
"Port component (EntPhysicalAlias IETF RFC 4133)";
|
||||
}
|
||||
enum "macaddress" {
|
||||
value 4;
|
||||
description
|
||||
"MAC address (IEEE Std 802) ";
|
||||
}
|
||||
enum "networkaddress" {
|
||||
value 5;
|
||||
description
|
||||
"Network Address";
|
||||
}
|
||||
enum "ifname" {
|
||||
value 6;
|
||||
description
|
||||
"Interface Name (ifName - IETF RFC 2863)";
|
||||
}
|
||||
enum "local" {
|
||||
value 7;
|
||||
description
|
||||
"Locally assigned";
|
||||
}
|
||||
}
|
||||
description
|
||||
"Chassis ID Subtype Enumeration";
|
||||
}
|
||||
leaf remoteChassisId {
|
||||
type string;
|
||||
description
|
||||
"remote neighbour Chassis Id";
|
||||
}
|
||||
}
|
||||
|
||||
grouping lldp-container {
|
||||
container lldp {
|
||||
description
|
||||
"LLDP configurable and retrievable";
|
||||
container global-config {
|
||||
description
|
||||
"LLDP global configurations";
|
||||
leaf adminStatus {
|
||||
type enumeration {
|
||||
enum "disable" {
|
||||
value 0;
|
||||
description
|
||||
"Disable the LLDP feature per NE";
|
||||
}
|
||||
enum "enable" {
|
||||
value 1;
|
||||
description
|
||||
"Enable the LLDP feature per NE";
|
||||
}
|
||||
}
|
||||
description
|
||||
"LLDP feature Enable/Disable per NE";
|
||||
default "enable";
|
||||
}
|
||||
leaf msgTxInterval {
|
||||
type uint16 {
|
||||
range "5..32768";
|
||||
}
|
||||
description
|
||||
"LLDP frame Retransmit Interval in seconds";
|
||||
default "30";
|
||||
}
|
||||
leaf msgTxHoldMultiplier {
|
||||
type uint8 {
|
||||
range "2..10";
|
||||
}
|
||||
description
|
||||
"TTL value for the TLVs transmitter over wire in seconds";
|
||||
default "4";
|
||||
}
|
||||
}
|
||||
list port-config {
|
||||
description
|
||||
"LLDP port configurations";
|
||||
key "ifName";
|
||||
leaf ifName {
|
||||
type leafref {
|
||||
path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
|
||||
}
|
||||
description
|
||||
"Ethernet interface name where LLDP runs";
|
||||
}
|
||||
leaf adminStatus {
|
||||
type enumeration {
|
||||
enum "disable" {
|
||||
value 0;
|
||||
description
|
||||
"Disables the LLDP frames transmit and receive on specific interface";
|
||||
}
|
||||
enum "txandrx" {
|
||||
value 1;
|
||||
description
|
||||
"Enable Transmit and Receive LLDP frames on specific interface";
|
||||
}
|
||||
}
|
||||
description
|
||||
"LLDP enable per port basis";
|
||||
default "txandrx";
|
||||
}
|
||||
}
|
||||
container nbr-list {
|
||||
description
|
||||
"LLDP Oper data - Neighbour List information";
|
||||
config false;
|
||||
list if-name {
|
||||
key "ifName";
|
||||
leaf ifName {
|
||||
type string;
|
||||
description
|
||||
"Ethernet interface name where LLDP runs";
|
||||
}
|
||||
uses nbr-info-grp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:protocols" {
|
||||
when "/org-openroadm-device:org-openroadm-device/org-openroadm-device:info/org-openroadm-device:node-type='rdm'";
|
||||
uses lldp-container;
|
||||
}
|
||||
|
||||
notification lldp-nbr-info-change {
|
||||
description "LLDP: Neighbor Information Changed
|
||||
remoteSysName
|
||||
remoteSysMgmtAddressSubType
|
||||
remoteSysMgmtAddress
|
||||
remotePortIdSubType
|
||||
remotePortId
|
||||
remoteChassisIdSubType
|
||||
remoteChassisId
|
||||
All of the above attributes are sent in event";
|
||||
leaf notification-type {
|
||||
type org-openroadm-resource-types:resource-notification-type;
|
||||
}
|
||||
leaf resource-type {
|
||||
type org-openroadm-resource-types:resource-type-enum;
|
||||
description
|
||||
"resource-type for this notification is interface";
|
||||
}
|
||||
leaf resource {
|
||||
type string;
|
||||
description
|
||||
"resource interface-name";
|
||||
}
|
||||
container nbr-info {
|
||||
uses nbr-info-grp;
|
||||
}
|
||||
leaf event-time {
|
||||
type yang:date-and-time;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
module org-openroadm-maintenance-loopback {
|
||||
namespace "http://org/openroadm/maintenance-loopback";
|
||||
prefix org-openroadm-maint-loopback;
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions for maintenance loopback.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping maint-loopback {
|
||||
container maint-loopback {
|
||||
leaf enabled {
|
||||
type boolean;
|
||||
default "false";
|
||||
description
|
||||
"loopback operation enable flag";
|
||||
}
|
||||
leaf type {
|
||||
when "../enabled = 'true'";
|
||||
type enumeration {
|
||||
enum "fac" {
|
||||
value 0;
|
||||
description
|
||||
"pre-FEC Loopback in the facility direction";
|
||||
}
|
||||
enum "term" {
|
||||
value 1;
|
||||
description
|
||||
"Loopback in the terminal direction";
|
||||
}
|
||||
enum "fac2" {
|
||||
value 2;
|
||||
description
|
||||
"post-FEC Loopback in the facility direction";
|
||||
}
|
||||
}
|
||||
default "fac";
|
||||
description
|
||||
"Set Loopback type (or direction).";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,134 @@
|
||||
module org-openroadm-maintenance-testsignal {
|
||||
namespace "http://org/openroadm/maintenance-testsignal";
|
||||
prefix org-openroadm-maint-testsignal;
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions for maintenance testsignal.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping maint-testsignal {
|
||||
container maint-testsignal {
|
||||
leaf enabled {
|
||||
type boolean;
|
||||
default "false";
|
||||
description
|
||||
"testsignal enabled flag";
|
||||
}
|
||||
leaf testPattern {
|
||||
when "../enabled = 'true'";
|
||||
type enumeration {
|
||||
enum "PRBS" {
|
||||
value 0;
|
||||
description
|
||||
"Unframed, inverted PN-31 pattern or PRBS31 pattern per IEEE 802.3 clause 50.3.8.2 (inverted PN-31at line rate)";
|
||||
}
|
||||
enum "PRBS31" {
|
||||
value 1;
|
||||
description
|
||||
"PRBS31 with standard mapping per G.709";
|
||||
}
|
||||
enum "PRBS23" {
|
||||
value 2;
|
||||
description
|
||||
"SONET/SDH Framed,inverted PN-23 pattern.";
|
||||
}
|
||||
enum "PRZEROS" {
|
||||
value 3;
|
||||
description
|
||||
"pseudo-random with zeros data pattern per IEEE 802.3 clause 49.2.8";
|
||||
}
|
||||
enum "IDLE" {
|
||||
value 4;
|
||||
description
|
||||
"Scrambled IDLE test-pattern per IEEE 802.3ba";
|
||||
}
|
||||
}
|
||||
description
|
||||
"Set test signal pattern";
|
||||
}
|
||||
leaf type {
|
||||
when "../enabled = 'true'";
|
||||
type enumeration {
|
||||
enum "fac" {
|
||||
value 0;
|
||||
description
|
||||
"test signal in the facility direction";
|
||||
}
|
||||
enum "term" {
|
||||
value 1;
|
||||
description
|
||||
"test signal in the terminal direction";
|
||||
}
|
||||
}
|
||||
default "fac";
|
||||
description
|
||||
"Set test signal type (or direction).";
|
||||
}
|
||||
leaf bitErrors {
|
||||
when "../enabled = 'true' and ../type = 'fac'";
|
||||
type uint32 {
|
||||
range "0..4294967295";
|
||||
}
|
||||
config false;
|
||||
description
|
||||
"bit errors for test signal in facility direction.";
|
||||
}
|
||||
leaf bitErrorsTerminal {
|
||||
when "../enabled = 'true' and ../type = 'term'";
|
||||
type uint32 {
|
||||
range "0..4294967295";
|
||||
}
|
||||
config false;
|
||||
description
|
||||
"bit errors for test signal in terminal direction.";
|
||||
}
|
||||
leaf syncSeconds {
|
||||
when "../enabled = 'true' and ../type = 'fac'";
|
||||
type string;
|
||||
config false;
|
||||
description
|
||||
"number of seconds the received facility test signal is in sync.";
|
||||
}
|
||||
leaf syncSecondsTerminal {
|
||||
when "../enabled = 'true' and ../type = 'term'";
|
||||
type string;
|
||||
config false;
|
||||
description
|
||||
"number of seconds the received terminal test signal is in sync.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,56 @@
|
||||
module org-openroadm-network {
|
||||
namespace "http://org/openroadm/network";
|
||||
prefix org-openroadm-network;
|
||||
|
||||
import org-openroadm-roadm {
|
||||
prefix org-openroadm-roadm;
|
||||
}
|
||||
import org-openroadm-external-pluggable {
|
||||
prefix org-openroadm-external-pluggable;
|
||||
}
|
||||
import org-openroadm-xponder {
|
||||
prefix org-openroadm-xponder;
|
||||
}
|
||||
|
||||
organization
|
||||
"OPEN ROADM MSA";
|
||||
contact
|
||||
"www.OpenROADM.org.";
|
||||
description
|
||||
"Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
container network {
|
||||
uses org-openroadm-roadm:open-roadm;
|
||||
uses org-openroadm-external-pluggable:external-pluggable;
|
||||
uses org-openroadm-xponder:xponder;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,184 @@
|
||||
module org-openroadm-optical-channel-interfaces {
|
||||
namespace "http://org/openroadm/optical-channel-interfaces";
|
||||
prefix org-openroadm-optical-channel-interfaces;
|
||||
|
||||
import org-openroadm-device {
|
||||
prefix org-openroadm-device;
|
||||
}
|
||||
import org-openroadm-interfaces {
|
||||
prefix openROADM-if;
|
||||
}
|
||||
import org-openroadm-common-types {
|
||||
prefix org-openroadm-common-types;
|
||||
}
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions for device facility och interfaces.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Also contains code components extracted from IETF Interfaces. These code components
|
||||
are copyrighted and licensed as follows:
|
||||
|
||||
Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
|
||||
All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
|
||||
to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents carefully, as they
|
||||
describe your rights and restrictions with respect to this document. Code Components
|
||||
extracted from this document must include Simplified BSD License text as described in
|
||||
Section 4.e of the Trust Legal Provisions and are provided without warranty as
|
||||
described in the Simplified BSD License.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
identity rate-identity {
|
||||
description
|
||||
"A unique rate identification";
|
||||
}
|
||||
|
||||
identity R200G {
|
||||
base rate-identity;
|
||||
description
|
||||
"Identity for 200G Rate";
|
||||
}
|
||||
|
||||
identity R100G {
|
||||
base rate-identity;
|
||||
description
|
||||
"Identity for 100G Rate";
|
||||
}
|
||||
|
||||
identity R10.7G {
|
||||
base rate-identity;
|
||||
description
|
||||
"Identity for 10.7G Rate";
|
||||
}
|
||||
|
||||
identity R11.1G {
|
||||
base rate-identity;
|
||||
description
|
||||
"Identity for 11.1G Rate";
|
||||
}
|
||||
|
||||
grouping och-attributes {
|
||||
description
|
||||
"Optical Channel attributes";
|
||||
leaf rate {
|
||||
type identityref {
|
||||
base rate-identity;
|
||||
}
|
||||
description
|
||||
"rate";
|
||||
}
|
||||
leaf wavelength-number {
|
||||
type uint32;
|
||||
}
|
||||
leaf modulation-format {
|
||||
type enumeration {
|
||||
enum "bpsk" {
|
||||
value 0;
|
||||
description
|
||||
"binary phase-shift keying";
|
||||
}
|
||||
enum "dc-dp-bpsk" {
|
||||
value 1;
|
||||
description
|
||||
"DC dual-polarization binary phase-shift keying";
|
||||
}
|
||||
enum "qpsk" {
|
||||
value 2;
|
||||
description
|
||||
"quadrature phase-shift keying";
|
||||
}
|
||||
enum "dp-qpsk" {
|
||||
value 3;
|
||||
description
|
||||
"dual-polarization binary phase-shift keying";
|
||||
}
|
||||
enum "qam16" {
|
||||
value 4;
|
||||
description
|
||||
"quadrature amplitude modulation 16";
|
||||
}
|
||||
enum "dp-qam16" {
|
||||
value 5;
|
||||
description
|
||||
"dual-polarization quadrature amplitude modulation 16";
|
||||
}
|
||||
enum "dc-dp-qam16" {
|
||||
value 6;
|
||||
description
|
||||
"DC dual-polarization quadrature amplitude modulation 16";
|
||||
}
|
||||
enum "qam8" {
|
||||
value 7;
|
||||
description
|
||||
"quadrature amplitude modulation 8";
|
||||
}
|
||||
enum "dp-qam8" {
|
||||
value 8;
|
||||
description
|
||||
"dual-polarization quadrature amplitude modulation 8";
|
||||
}
|
||||
enum "dc-dp-qam8" {
|
||||
value 9;
|
||||
description
|
||||
"DC dual-polarization quadrature amplitude modulation 8";
|
||||
}
|
||||
}
|
||||
description
|
||||
"modulation format";
|
||||
}
|
||||
leaf transmit-power {
|
||||
type org-openroadm-common-types:power-dBm;
|
||||
description
|
||||
"The target transmit power for this channel. When set, the xponder will work to ensure that port-current-power reaches this level. Applicable only to channel on top of xpdr-network port";
|
||||
}
|
||||
}
|
||||
|
||||
grouping och-container {
|
||||
container och {
|
||||
description
|
||||
"Optical Channel (OCh):
|
||||
Models the optical channel interfaces for an Optical White Box.";
|
||||
uses och-attributes;
|
||||
}
|
||||
}
|
||||
|
||||
augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
|
||||
when "org-openroadm-device:type = 'openROADM-if:opticalChannel'";
|
||||
uses och-container;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,144 @@
|
||||
module org-openroadm-optical-transport-interfaces {
|
||||
namespace "http://org/openroadm/optical-transport-interfaces";
|
||||
prefix org-openroadm-optical-transport-interfaces;
|
||||
|
||||
import org-openroadm-device {
|
||||
prefix org-openroadm-device;
|
||||
}
|
||||
import org-openroadm-interfaces {
|
||||
prefix openROADM-if;
|
||||
}
|
||||
import org-openroadm-common-types {
|
||||
prefix org-openroadm-common-types;
|
||||
}
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"This module contains YANG definitions
|
||||
for the Optical Transport Interfaces.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Also contains code components extracted from IETF Interfaces. These code components
|
||||
are copyrighted and licensed as follows:
|
||||
|
||||
Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
|
||||
All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
|
||||
to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents carefully, as they
|
||||
describe your rights and restrictions with respect to this document. Code Components
|
||||
extracted from this document must include Simplified BSD License text as described in
|
||||
Section 4.e of the Trust Legal Provisions and are provided without warranty as
|
||||
described in the Simplified BSD License.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping ots-attributes {
|
||||
description
|
||||
"Optical Transport Section (OTS) attributes";
|
||||
leaf fiber-type {
|
||||
type enumeration {
|
||||
enum "smf" {
|
||||
value 0;
|
||||
description
|
||||
"Single Mode Fiber";
|
||||
}
|
||||
enum "eleaf" {
|
||||
value 1;
|
||||
description
|
||||
"ELEAF";
|
||||
}
|
||||
enum "oleaf" {
|
||||
value 2;
|
||||
description
|
||||
"OLEAF";
|
||||
}
|
||||
enum "dsf" {
|
||||
value 3;
|
||||
description
|
||||
"DSF";
|
||||
}
|
||||
enum "truewave" {
|
||||
value 4;
|
||||
description
|
||||
"TRUEWAVE Reduced Slope";
|
||||
}
|
||||
enum "truewavec" {
|
||||
value 5;
|
||||
description
|
||||
"TRUEWAVE Classic";
|
||||
}
|
||||
enum "nz-dsf" {
|
||||
value 6;
|
||||
description
|
||||
"NZ-DSF";
|
||||
}
|
||||
enum "ull" {
|
||||
value 7;
|
||||
description
|
||||
"Ultra Low Loss (ULL)";
|
||||
}
|
||||
}
|
||||
default "smf";
|
||||
description
|
||||
"fiber type
|
||||
Default : SMF ";
|
||||
}
|
||||
leaf span-loss-receive {
|
||||
description
|
||||
"Span loss on the receiver side. Set by the controller and used by device to set AMP gain.";
|
||||
type org-openroadm-common-types:ratio-dB;
|
||||
}
|
||||
leaf span-loss-transmit {
|
||||
description
|
||||
"Span loss on the transmitter side. Set by the controller and used by device to configure MSA compliant channel launch power";
|
||||
type org-openroadm-common-types:ratio-dB;
|
||||
}
|
||||
}
|
||||
|
||||
grouping ots-container {
|
||||
container ots {
|
||||
description
|
||||
"Optical Transport Section (OTS):
|
||||
Models the optical interfaces for an Optical White Box.
|
||||
The network side is represented by the OTS/OMS.";
|
||||
uses ots-attributes;
|
||||
}
|
||||
}
|
||||
|
||||
augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
|
||||
when "org-openroadm-device:type = 'openROADM-if:opticalTransport'";
|
||||
uses ots-container;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,387 @@
|
||||
module org-openroadm-otn-odu-interfaces {
|
||||
namespace "http://org/openroadm/otn-odu-interfaces";
|
||||
prefix org-openroadm-otn-odu-interfaces;
|
||||
|
||||
import org-openroadm-device {
|
||||
prefix org-openroadm-device;
|
||||
}
|
||||
import org-openroadm-interfaces {
|
||||
prefix openROADM-if;
|
||||
}
|
||||
import org-openroadm-maintenance-testsignal {
|
||||
prefix org-openroadm-maint-testsignal;
|
||||
}
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions for device facility otnodu interfaces.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Also contains code components extracted from IETF Interfaces. These code components
|
||||
are copyrighted and licensed as follows:
|
||||
|
||||
Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
|
||||
All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
|
||||
to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents carefully, as they
|
||||
describe your rights and restrictions with respect to this document. Code Components
|
||||
extracted from this document must include Simplified BSD License text as described in
|
||||
Section 4.e of the Trust Legal Provisions and are provided without warranty as
|
||||
described in the Simplified BSD License.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
identity odu-rate-identity {
|
||||
description
|
||||
"A unique rate identification of the ODUk.";
|
||||
}
|
||||
|
||||
identity ODU4 {
|
||||
base odu-rate-identity;
|
||||
description
|
||||
"Identity for an ODU4";
|
||||
}
|
||||
|
||||
identity ODU3 {
|
||||
base odu-rate-identity;
|
||||
description
|
||||
"Identity for an ODU3";
|
||||
}
|
||||
|
||||
identity ODU2 {
|
||||
base odu-rate-identity;
|
||||
description
|
||||
"Identity for an ODU2";
|
||||
}
|
||||
|
||||
identity ODU2e {
|
||||
base odu-rate-identity;
|
||||
description
|
||||
"Identity for an ODU2e";
|
||||
}
|
||||
|
||||
identity ODU1 {
|
||||
base odu-rate-identity;
|
||||
description
|
||||
"Identity for an ODU1";
|
||||
}
|
||||
|
||||
identity ODU0 {
|
||||
base odu-rate-identity;
|
||||
description
|
||||
"Identity for an ODU0";
|
||||
}
|
||||
|
||||
identity ODUflex {
|
||||
base odu-rate-identity;
|
||||
description
|
||||
"Identity for an ODUflex";
|
||||
}
|
||||
|
||||
identity odtu-type-identity {
|
||||
description
|
||||
"A unique identification for the MSI odtu type.";
|
||||
}
|
||||
|
||||
identity ODTU4.ts-Allocated {
|
||||
base odtu-type-identity;
|
||||
description
|
||||
"OPU4 MSI - ODTU4.ts, TS is occupied/allocated";
|
||||
}
|
||||
|
||||
identity ODTU4.1 {
|
||||
base odtu-type-identity;
|
||||
description
|
||||
"ODTU4.1 MSI type";
|
||||
}
|
||||
|
||||
identity ODTU4.2 {
|
||||
base odtu-type-identity;
|
||||
description
|
||||
"ODTU4.2 MSI type";
|
||||
}
|
||||
|
||||
identity ODTU4.8 {
|
||||
base odtu-type-identity;
|
||||
description
|
||||
"ODTU4.8 MSI type";
|
||||
}
|
||||
|
||||
identity ODTU4.31 {
|
||||
base odtu-type-identity;
|
||||
description
|
||||
"ODTU4.31 MSI type";
|
||||
}
|
||||
|
||||
identity ODTU01 {
|
||||
base odtu-type-identity;
|
||||
description
|
||||
"ODTU01 MSI type";
|
||||
}
|
||||
|
||||
identity ODTU12 {
|
||||
base odtu-type-identity;
|
||||
description
|
||||
"ODTU12 MSI type";
|
||||
}
|
||||
|
||||
identity ODTU13 {
|
||||
base odtu-type-identity;
|
||||
description
|
||||
"ODTU13 MSI type";
|
||||
}
|
||||
|
||||
identity ODTU23 {
|
||||
base odtu-type-identity;
|
||||
description
|
||||
"ODTU23 MSI type";
|
||||
}
|
||||
|
||||
identity ODTU2.ts {
|
||||
base odtu-type-identity;
|
||||
description
|
||||
"ODTU2.ts MSI type";
|
||||
}
|
||||
|
||||
identity ODTU3.ts {
|
||||
base odtu-type-identity;
|
||||
description
|
||||
"ODTU3.ts MSI type";
|
||||
}
|
||||
|
||||
identity unallocated {
|
||||
base odtu-type-identity;
|
||||
description
|
||||
"Unallocated MSI type";
|
||||
}
|
||||
|
||||
grouping msi-entry {
|
||||
leaf trib-slot {
|
||||
type uint16;
|
||||
description
|
||||
"tributary slot (TS)";
|
||||
}
|
||||
leaf odtu-type {
|
||||
type identityref {
|
||||
base odtu-type-identity;
|
||||
}
|
||||
description
|
||||
"ODTU type, part of the MSI (Multiplex Structure Identifier)";
|
||||
}
|
||||
leaf trib-port {
|
||||
type uint8;
|
||||
description
|
||||
"Tributray Port Number (0-based), part of the MSI";
|
||||
}
|
||||
leaf trib-port-payload {
|
||||
type string;
|
||||
description
|
||||
"interface name being mapped to trib-port";
|
||||
}
|
||||
}
|
||||
|
||||
grouping odu-attributes {
|
||||
description
|
||||
"ODU attributes";
|
||||
leaf rate {
|
||||
type identityref {
|
||||
base odu-rate-identity;
|
||||
}
|
||||
description
|
||||
"rate identity of the ODU. 'identityref' is used
|
||||
to allow to extend for future higher rates";
|
||||
}
|
||||
leaf monitoring-mode {
|
||||
type enumeration {
|
||||
enum "not-terminated" {
|
||||
description
|
||||
"Not Terminated: no detection or generation.
|
||||
Overhead is passed through the interface transparently in receive direction";
|
||||
}
|
||||
enum "terminated" {
|
||||
description
|
||||
"Terminated: detection and generation enabled.
|
||||
Overhead is erased (replaced with all zeros) in receive direction";
|
||||
}
|
||||
enum "monitored" {
|
||||
description
|
||||
"Monitored: detection enabled.
|
||||
Overhead is passed through the interface transparently in receive direction";
|
||||
}
|
||||
}
|
||||
description
|
||||
"Monitoring mode of the ODU Overhead";
|
||||
}
|
||||
leaf proactive-delay-measurement-enabled {
|
||||
type boolean;
|
||||
description
|
||||
"enable/disable proactive Delay Measurement";
|
||||
}
|
||||
list tcm {
|
||||
key "layer";
|
||||
uses tcm-attributes;
|
||||
max-elements "6";
|
||||
description
|
||||
"Tandem Connection Management";
|
||||
}
|
||||
uses opu;
|
||||
}
|
||||
|
||||
grouping opu {
|
||||
container opu {
|
||||
when "../monitoring-mode = 'terminated' or ../monitoring-mode = 'monitored'";
|
||||
description
|
||||
"Optical Channel Payload Unit (OPU)";
|
||||
leaf payload-type {
|
||||
type string {
|
||||
length "2";
|
||||
pattern "[0-9a-fA-F]*";
|
||||
}
|
||||
description
|
||||
"Payload Type";
|
||||
}
|
||||
leaf rx-payload-type {
|
||||
type string {
|
||||
length "2";
|
||||
pattern "[0-9a-fA-F]*";
|
||||
}
|
||||
description
|
||||
"Received Payload Type";
|
||||
}
|
||||
leaf exp-payload-type {
|
||||
type string {
|
||||
length "2";
|
||||
pattern "[0-9a-fA-F]*";
|
||||
}
|
||||
description
|
||||
"Expected Payload Type";
|
||||
}
|
||||
leaf payload-interface {
|
||||
type string;
|
||||
description
|
||||
"Expected Payload of OPU. It designates client interface name";
|
||||
}
|
||||
container msi {
|
||||
when "../payload-type = '20' or ../payload-type = '21'";
|
||||
list tx-msi {
|
||||
key "trib-slot";
|
||||
uses msi-entry;
|
||||
description
|
||||
"Transmit MSI";
|
||||
}
|
||||
list rx-msi {
|
||||
key "trib-slot";
|
||||
uses msi-entry;
|
||||
description
|
||||
"Receive MSI";
|
||||
}
|
||||
list exp-msi {
|
||||
key "trib-slot";
|
||||
uses msi-entry;
|
||||
description
|
||||
"Expected MSI";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping tcm-attributes {
|
||||
description
|
||||
"Tandem Connection Monitoring (TCM) attributes";
|
||||
leaf layer {
|
||||
type uint8 {
|
||||
range "1..6";
|
||||
}
|
||||
description
|
||||
"TCM layer";
|
||||
}
|
||||
leaf monitoring-mode {
|
||||
type enumeration {
|
||||
enum "not-terminated" {
|
||||
description
|
||||
"Not Terminated: no detection or generation.
|
||||
Overhead is passed through the interface transparently in receive direction
|
||||
unless extension is set for erase";
|
||||
}
|
||||
enum "terminated" {
|
||||
description
|
||||
"Terminated: detection and generation enabled.
|
||||
Overhead is erased (replaced with all zeros) in receive direction, unless
|
||||
extension is set to passthrough";
|
||||
}
|
||||
enum "monitored" {
|
||||
description
|
||||
"Monitored: detection enabled.
|
||||
Overhead is passed through the interface transparently in receive direction
|
||||
unless extension is set for erase";
|
||||
}
|
||||
}
|
||||
description
|
||||
"Monitoring mode of the TCM layer";
|
||||
}
|
||||
leaf ltc-act-enabled {
|
||||
type boolean;
|
||||
description
|
||||
"enable/disable alarm transfer on detection of Loss of Tandem Connection (LTC)";
|
||||
}
|
||||
leaf proactive-delay-measurement-enabled {
|
||||
type boolean;
|
||||
description
|
||||
"enable/disable proactive Delay Measurement";
|
||||
}
|
||||
}
|
||||
|
||||
grouping odu-container {
|
||||
container odu {
|
||||
presence "Attribute Nodes for Optical Data Unit (ODU)";
|
||||
description
|
||||
"Optical Channel Data Unit (ODU)";
|
||||
uses odu-attributes {
|
||||
refine "opu/rx-payload-type" {
|
||||
config false;
|
||||
}
|
||||
refine "opu/msi" {
|
||||
config false;
|
||||
}
|
||||
}
|
||||
uses org-openroadm-maint-testsignal:maint-testsignal;
|
||||
}
|
||||
}
|
||||
|
||||
augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
|
||||
when "org-openroadm-device:type = 'openROADM-if:otnOdu'";
|
||||
uses odu-container;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,185 @@
|
||||
module org-openroadm-otn-otu-interfaces {
|
||||
namespace "http://org/openroadm/otn-otu-interfaces";
|
||||
prefix org-openroadm-otn-otu-interfaces;
|
||||
|
||||
import org-openroadm-device {
|
||||
prefix org-openroadm-device;
|
||||
}
|
||||
import org-openroadm-interfaces {
|
||||
prefix openROADM-if;
|
||||
}
|
||||
import org-openroadm-maintenance-loopback {
|
||||
prefix org-openroadm-maint-loopback;
|
||||
}
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions for device facility otnotu interfaces.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Also contains code components extracted from IETF Interfaces. These code components
|
||||
are copyrighted and licensed as follows:
|
||||
|
||||
Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
|
||||
All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
|
||||
to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents carefully, as they
|
||||
describe your rights and restrictions with respect to this document. Code Components
|
||||
extracted from this document must include Simplified BSD License text as described in
|
||||
Section 4.e of the Trust Legal Provisions and are provided without warranty as
|
||||
described in the Simplified BSD License.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
identity otu-rate-identity {
|
||||
description
|
||||
"A unique rate identification of the OTU.";
|
||||
}
|
||||
|
||||
identity OTU4 {
|
||||
base otu-rate-identity;
|
||||
description
|
||||
"Identity for an OTU4";
|
||||
}
|
||||
|
||||
identity OTU3 {
|
||||
base otu-rate-identity;
|
||||
description
|
||||
"Identity for an OTU3";
|
||||
}
|
||||
|
||||
identity OTU2 {
|
||||
base otu-rate-identity;
|
||||
description
|
||||
"Identity for an OTU2";
|
||||
}
|
||||
|
||||
identity OTU2e {
|
||||
base otu-rate-identity;
|
||||
description
|
||||
"Identity for an OTU2e";
|
||||
}
|
||||
|
||||
identity OTU1 {
|
||||
base otu-rate-identity;
|
||||
description
|
||||
"Identity for an OTU1";
|
||||
}
|
||||
|
||||
identity OTU0 {
|
||||
base otu-rate-identity;
|
||||
description
|
||||
"Identity for an OTU0";
|
||||
}
|
||||
|
||||
identity OTUflex {
|
||||
base otu-rate-identity;
|
||||
description
|
||||
"Identity for an OTUflex";
|
||||
}
|
||||
|
||||
grouping otu-attributes {
|
||||
description
|
||||
"OTU attributes";
|
||||
leaf rate {
|
||||
type identityref {
|
||||
base otu-rate-identity;
|
||||
}
|
||||
description
|
||||
"rate identity of the OTU. 'identityref' is used
|
||||
to allow to extend for future higher rates";
|
||||
}
|
||||
leaf fec {
|
||||
type enumeration {
|
||||
enum "off" {
|
||||
value 0;
|
||||
description
|
||||
"fec off";
|
||||
}
|
||||
enum "rsfec" {
|
||||
value 1;
|
||||
description
|
||||
"rsfec";
|
||||
}
|
||||
enum "sdfeca1" {
|
||||
value 2;
|
||||
description
|
||||
"Clariphy SDFEC";
|
||||
}
|
||||
enum "efec" {
|
||||
value 3;
|
||||
description
|
||||
"G.975.1 I.4";
|
||||
}
|
||||
enum "ufec" {
|
||||
value 4;
|
||||
description
|
||||
"G.975.1 I.7";
|
||||
}
|
||||
enum "sdfec" {
|
||||
value 5;
|
||||
description
|
||||
"Soft decision FEC";
|
||||
}
|
||||
enum "sdfecb1" {
|
||||
value 6;
|
||||
description
|
||||
"SDFEC with SCFEC";
|
||||
}
|
||||
enum "scfec" {
|
||||
value 7;
|
||||
description
|
||||
"Stair case FEC";
|
||||
}
|
||||
}
|
||||
description
|
||||
"Forward Error Correction";
|
||||
}
|
||||
}
|
||||
|
||||
grouping otu-container {
|
||||
container otu {
|
||||
description
|
||||
"Optical Channel Transport Unit (OTU)";
|
||||
uses otu-attributes;
|
||||
uses org-openroadm-maint-loopback:maint-loopback;
|
||||
}
|
||||
}
|
||||
|
||||
augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface" {
|
||||
when "org-openroadm-device:type = 'openROADM-if:otnOtu'";
|
||||
uses otu-container;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,117 @@
|
||||
module org-openroadm-physical-types {
|
||||
namespace "http://org/openroadm/physical/types";
|
||||
prefix org-openroadm-physical-types;
|
||||
|
||||
import org-openroadm-common-types {
|
||||
prefix org-openroadm-common-types;
|
||||
}
|
||||
import ietf-yang-types {
|
||||
prefix yang;
|
||||
}
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions of physical types.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping node-info {
|
||||
description
|
||||
"Physical inventory data used by the node";
|
||||
leaf vendor {
|
||||
description
|
||||
"Vendor of the equipment";
|
||||
type string;
|
||||
config false;
|
||||
mandatory true;
|
||||
}
|
||||
leaf model {
|
||||
type string;
|
||||
description
|
||||
"Physical resource model information.";
|
||||
config false;
|
||||
mandatory true;
|
||||
}
|
||||
leaf serial-id {
|
||||
description
|
||||
"Product Code for this physical resource";
|
||||
type string;
|
||||
config false;
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
|
||||
grouping common-info {
|
||||
description
|
||||
"Physical inventory data used by all other entities";
|
||||
uses node-info;
|
||||
leaf type {
|
||||
description
|
||||
"The specific type of this physical resource - ie the type of
|
||||
shelf, type of circuit-pack, etc.";
|
||||
type string;
|
||||
config false;
|
||||
}
|
||||
leaf product-code {
|
||||
description
|
||||
"Product Code for this physical resource";
|
||||
type string;
|
||||
config false;
|
||||
}
|
||||
leaf manufacture-date {
|
||||
description
|
||||
"Manufactor date of physical resource";
|
||||
type yang:date-and-time;
|
||||
config false;
|
||||
}
|
||||
leaf clei {
|
||||
description
|
||||
"CLEI for this physical resource";
|
||||
type string;
|
||||
config false;
|
||||
}
|
||||
leaf hardware-version {
|
||||
description
|
||||
"The version of the hardware.";
|
||||
type string;
|
||||
config false;
|
||||
}
|
||||
leaf operational-state {
|
||||
description
|
||||
"Operational state of the physical resource";
|
||||
type org-openroadm-common-types:state;
|
||||
config false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,150 @@
|
||||
module org-openroadm-port-types {
|
||||
namespace "http://org/openroadm/port/types";
|
||||
prefix org-openroadm-port-types;
|
||||
|
||||
import org-openroadm-common-types {
|
||||
prefix org-openroadm-common-types;
|
||||
}
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions for port types.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
identity supported-if-capability {
|
||||
description
|
||||
"Base identity from which specific supported interfaces are derived";
|
||||
}
|
||||
|
||||
identity if-100GE {
|
||||
base supported-if-capability;
|
||||
}
|
||||
|
||||
identity if-OMS {
|
||||
base supported-if-capability;
|
||||
}
|
||||
|
||||
identity if-OTS {
|
||||
base supported-if-capability;
|
||||
}
|
||||
|
||||
identity if-OCH {
|
||||
base supported-if-capability;
|
||||
}
|
||||
|
||||
identity supported-xpdr-capability {
|
||||
description
|
||||
"Base identity from which specific supported xponder are derived";
|
||||
}
|
||||
|
||||
identity Transponder {
|
||||
base supported-xpdr-capability;
|
||||
}
|
||||
|
||||
identity Regen {
|
||||
base supported-xpdr-capability;
|
||||
}
|
||||
|
||||
typedef port-wavelength-types {
|
||||
type enumeration {
|
||||
enum "wavelength" {
|
||||
value 1;
|
||||
description
|
||||
"Port on a transponder.";
|
||||
}
|
||||
enum "multi-wavelegnth" {
|
||||
value 2;
|
||||
description
|
||||
"Port on a ROADM.";
|
||||
}
|
||||
}
|
||||
description
|
||||
"Port types.";
|
||||
}
|
||||
|
||||
grouping common-port {
|
||||
leaf port-power-capability-min-rx {
|
||||
type org-openroadm-common-types:power-dBm;
|
||||
config false;
|
||||
description
|
||||
"Based on port capabilities, the minimum power in the system spec for this port to
|
||||
provide optimum function in rx direction";
|
||||
}
|
||||
leaf port-power-capability-min-tx {
|
||||
type org-openroadm-common-types:power-dBm;
|
||||
config false;
|
||||
description
|
||||
"Based on port capabilities, the minimum power in the system spec for this port to
|
||||
provide optimum function in tx direction.";
|
||||
}
|
||||
leaf port-power-capability-max-rx {
|
||||
type org-openroadm-common-types:power-dBm;
|
||||
config false;
|
||||
description
|
||||
"Based on port capabilities, the maximum power in the system spec for this port to
|
||||
provide optimum function in rx direction.";
|
||||
}
|
||||
leaf port-power-capability-max-tx {
|
||||
type org-openroadm-common-types:power-dBm;
|
||||
config false;
|
||||
description
|
||||
"Based on port capabilities, the maximum power in the system spec for this port to
|
||||
provide optimum function in tx direction.";
|
||||
}
|
||||
leaf-list capable-wavelengths {
|
||||
type uint32;
|
||||
config false;
|
||||
description
|
||||
"List of wavelengths this port is capable of supporting.
|
||||
can be used to access wavelength-map to get the wavelength value in nm";
|
||||
}
|
||||
}
|
||||
grouping roadm-port {
|
||||
uses common-port;
|
||||
leaf-list available-wavelengths {
|
||||
type uint32;
|
||||
config false;
|
||||
description
|
||||
"List of available (capable and unused) wavelengths on this port.
|
||||
can be used to access wavelength-map to get the wavelength value in nm";
|
||||
}
|
||||
leaf-list used-wavelengths {
|
||||
type uint32;
|
||||
config false;
|
||||
description
|
||||
"List of used available wavelength-numbers on this port.";
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,252 @@
|
||||
module org-openroadm-resource-types {
|
||||
namespace "http://org/openroadm/resource/types";
|
||||
prefix org-openroadm-resource-types;
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions of common resource types.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping resource-type {
|
||||
leaf type {
|
||||
type resource-type-enum;
|
||||
mandatory true;
|
||||
}
|
||||
leaf extension {
|
||||
type string;
|
||||
mandatory false;
|
||||
}
|
||||
}
|
||||
|
||||
typedef resource-type-enum {
|
||||
type enumeration {
|
||||
enum "other" {
|
||||
value 1;
|
||||
description
|
||||
"Resource of type not found in list.";
|
||||
}
|
||||
enum "device" {
|
||||
value 2;
|
||||
description
|
||||
"device - ROAMD, Xponder, etc";
|
||||
}
|
||||
enum "degree" {
|
||||
value 3;
|
||||
description
|
||||
"degree";
|
||||
}
|
||||
enum "shared-risk-group" {
|
||||
value 4;
|
||||
description
|
||||
"shared-risk-group";
|
||||
}
|
||||
enum "connection" {
|
||||
value 5;
|
||||
description
|
||||
"connection";
|
||||
}
|
||||
enum "connection-map" {
|
||||
value 6;
|
||||
description
|
||||
"connection-map";
|
||||
}
|
||||
enum "port" {
|
||||
value 7;
|
||||
description
|
||||
"port";
|
||||
}
|
||||
enum "circuit-pack" {
|
||||
value 8;
|
||||
description
|
||||
"circuit pack";
|
||||
}
|
||||
enum "internal-link" {
|
||||
value 9;
|
||||
description
|
||||
"internal-link";
|
||||
}
|
||||
enum "physical-link" {
|
||||
value 10;
|
||||
description
|
||||
"physical-link";
|
||||
}
|
||||
enum "interface" {
|
||||
value 11;
|
||||
description
|
||||
"interface";
|
||||
}
|
||||
enum "shelf" {
|
||||
value 12;
|
||||
description
|
||||
"shelf";
|
||||
}
|
||||
enum "service" {
|
||||
value 13;
|
||||
description
|
||||
"service";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping device-id {
|
||||
description
|
||||
"Device identifier. Unique within the Controller.";
|
||||
leaf node-id {
|
||||
description
|
||||
"Node Id is a globally unique identifier for a device.
|
||||
Same as leafref value in model, if applicable.";
|
||||
type string;
|
||||
}
|
||||
}
|
||||
|
||||
grouping circuit-pack-name {
|
||||
leaf circuit-pack-name {
|
||||
description
|
||||
"Circuit-Pack identifier. Unique within the context of a device.
|
||||
Same as leafref value in model, if applicable.";
|
||||
type string;
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
|
||||
grouping port-name {
|
||||
uses circuit-pack-name;
|
||||
leaf port-name {
|
||||
description
|
||||
"Port identifier. Unique within the context of a circuit-pack.
|
||||
Same as leafref value in model, if applicable.";
|
||||
type string;
|
||||
}
|
||||
}
|
||||
|
||||
grouping physical-link-name {
|
||||
leaf physical-link-name {
|
||||
description
|
||||
"Physical Link identifier. Unique within the context of a device.
|
||||
Same as leafref value in model, if applicable.";
|
||||
type string;
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
|
||||
grouping internal-link-name {
|
||||
leaf internal-link-name {
|
||||
description
|
||||
"Internal Link identifier. Unique within the context of a device.
|
||||
Same as leafref value in model, if applicable.";
|
||||
type string;
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
|
||||
grouping connection-number {
|
||||
leaf connection-number {
|
||||
description
|
||||
"Connection identifier. Unique within the context of a device.
|
||||
Same as leafref value in model, if applicable.";
|
||||
type string;
|
||||
}
|
||||
}
|
||||
|
||||
grouping degree-number {
|
||||
leaf degree-number {
|
||||
description
|
||||
"Degree identifier. Unique within the context of a device.
|
||||
Same as leafref value in model, if applicable.";
|
||||
type uint16;
|
||||
}
|
||||
}
|
||||
|
||||
grouping srg-number {
|
||||
leaf srg-number {
|
||||
description
|
||||
"Shared Risk Group identifier. Unique within the context of a device.
|
||||
Same as leafref value in model, if applicable.";
|
||||
type uint16;
|
||||
}
|
||||
}
|
||||
|
||||
grouping shelf-name {
|
||||
leaf shelf-name {
|
||||
description
|
||||
"Shelf-id identifier. Unique within the context of a device.
|
||||
Same as leafref value in model, if applicable.";
|
||||
type string;
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
|
||||
grouping service-name {
|
||||
leaf service-name {
|
||||
description
|
||||
"Service identifier. Unique within the context of a network.
|
||||
Same as leafref value in model, if applicable.";
|
||||
type string;
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
|
||||
grouping interface-name {
|
||||
leaf interface-name {
|
||||
description
|
||||
"Interface identifier.";
|
||||
type string;
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
|
||||
typedef resource-notification-type {
|
||||
description
|
||||
"Type of notification about a resource";
|
||||
type enumeration {
|
||||
enum "resourceCreation" {
|
||||
value 1;
|
||||
description
|
||||
"A new instance of a resource has been created.";
|
||||
}
|
||||
enum "resourceModification" {
|
||||
value 2;
|
||||
description
|
||||
"An exhisting instance of a resource has been modified. This shall be triggered by changes in configuration, state, status etc.
|
||||
It shall not be triggered by changes in performance measurements, power and temperature readings or any other data that is highlyvolatile. ";
|
||||
}
|
||||
enum "resourceDeletion" {
|
||||
value 3;
|
||||
description
|
||||
"An exhisting instance of a resource has been removed.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,109 @@
|
||||
module org-openroadm-resource {
|
||||
namespace "http://org/openroadm/resource";
|
||||
prefix org-openroadm-resource;
|
||||
|
||||
import org-openroadm-resource-types {
|
||||
prefix org-openroadm-resource-types;
|
||||
}
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions of resources.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping resource {
|
||||
description
|
||||
"This resource identifier is intended to provide a generic identifer
|
||||
for any resource that can be used without specific knowledge of
|
||||
the resource.";
|
||||
container device {
|
||||
description
|
||||
"Device of the resource, used only when the system using this
|
||||
model report on more than one device. ";
|
||||
uses org-openroadm-resource-types:device-id;
|
||||
}
|
||||
container resource {
|
||||
choice resource {
|
||||
case circuit-pack {
|
||||
uses org-openroadm-resource-types:circuit-pack-name;
|
||||
}
|
||||
case port {
|
||||
container port {
|
||||
uses org-openroadm-resource-types:port-name;
|
||||
}
|
||||
}
|
||||
case connection {
|
||||
uses org-openroadm-resource-types:connection-number {
|
||||
refine connection-number {
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
}
|
||||
case physical-link {
|
||||
uses org-openroadm-resource-types:physical-link-name;
|
||||
}
|
||||
case internal-link {
|
||||
uses org-openroadm-resource-types:internal-link-name;
|
||||
}
|
||||
case shelf {
|
||||
uses org-openroadm-resource-types:shelf-name;
|
||||
}
|
||||
case srg {
|
||||
uses org-openroadm-resource-types:srg-number {
|
||||
refine srg-number {
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
}
|
||||
case degree {
|
||||
uses org-openroadm-resource-types:degree-number {
|
||||
refine degree-number {
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
}
|
||||
case service {
|
||||
uses org-openroadm-resource-types:service-name;
|
||||
}
|
||||
case interface {
|
||||
uses org-openroadm-resource-types:interface-name;
|
||||
}
|
||||
}
|
||||
}
|
||||
container resourceType {
|
||||
uses org-openroadm-resource-types:resource-type;
|
||||
}
|
||||
}
|
||||
}
|
||||
179
apps/openroadm/yangmodel/src/main/yang/org-openroadm-roadm.yang
Normal file
179
apps/openroadm/yangmodel/src/main/yang/org-openroadm-roadm.yang
Normal file
@ -0,0 +1,179 @@
|
||||
module org-openroadm-roadm {
|
||||
namespace "http://org/openroadm/roadm";
|
||||
prefix org-openroadm-roadm;
|
||||
|
||||
import org-openroadm-srg {
|
||||
prefix org-openroadm-srg;
|
||||
}
|
||||
import org-openroadm-degree {
|
||||
prefix org-openroadm-degree;
|
||||
}
|
||||
import ietf-inet-types {
|
||||
prefix inet;
|
||||
}
|
||||
import org-openroadm-common-types {
|
||||
prefix org-openroadm-common-types;
|
||||
}
|
||||
|
||||
organization
|
||||
"OPEN ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org.";
|
||||
description
|
||||
"YANG definitions for network view of a ROADM
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping open-roadm {
|
||||
list nodes {
|
||||
key "clli";
|
||||
leaf clli {
|
||||
type string;
|
||||
description
|
||||
"Location of CLLI where ROADM resides";
|
||||
}
|
||||
list ids {
|
||||
key "node-number node-type";
|
||||
leaf node-number {
|
||||
type uint32;
|
||||
description
|
||||
"Number assigned to a ROADM node in a
|
||||
given office";
|
||||
}
|
||||
leaf node-id {
|
||||
type string;
|
||||
description
|
||||
"Network-wide unique identifier for
|
||||
a ROADM node";
|
||||
}
|
||||
leaf node-type {
|
||||
type org-openroadm-common-types:node-types;
|
||||
description
|
||||
"Identifier for the node type";
|
||||
}
|
||||
leaf vendor {
|
||||
type string;
|
||||
description
|
||||
"Identifier of the supplier
|
||||
for the ROADM equipment";
|
||||
}
|
||||
leaf model {
|
||||
type string;
|
||||
description
|
||||
"Identifier of the supplier's ROADM equipment";
|
||||
}
|
||||
leaf domain-subnetwork {
|
||||
type string;
|
||||
description
|
||||
"Specific Domain-Subnetwork in which the ROADM node resides";
|
||||
}
|
||||
leaf ip {
|
||||
type inet:ip-address;
|
||||
description
|
||||
"IP address assigned to the ROADM node";
|
||||
}
|
||||
leaf relay-rack {
|
||||
type string;
|
||||
description
|
||||
"Frame Identification Code (FIC)";
|
||||
}
|
||||
leaf shelf {
|
||||
type uint32;
|
||||
}
|
||||
leaf degree-supported {
|
||||
type uint16;
|
||||
description
|
||||
"No. of degrees supported by the node";
|
||||
}
|
||||
leaf srg-supported {
|
||||
type uint16;
|
||||
description
|
||||
"No. of SRGs supported by the node";
|
||||
}
|
||||
list connectivity-map {
|
||||
key "logical-link-name";
|
||||
leaf logical-link-name {
|
||||
type string;
|
||||
}
|
||||
leaf logical-link-type{
|
||||
type enumeration{
|
||||
enum "Express-link"{
|
||||
value 1;
|
||||
}
|
||||
enum "Add-link"{
|
||||
value 2;
|
||||
}
|
||||
enum "Drop-link"{
|
||||
value 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
container source{
|
||||
choice resource{
|
||||
case degree{
|
||||
leaf degree-number{
|
||||
type uint16;
|
||||
}
|
||||
}
|
||||
case srg{
|
||||
leaf srg-number{
|
||||
type uint16;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
container destination{
|
||||
choice resource{
|
||||
case degree{
|
||||
leaf degree-number{
|
||||
type uint16;
|
||||
}
|
||||
}
|
||||
case srg{
|
||||
leaf srg-number{
|
||||
type uint16;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
description
|
||||
"List of logical links to represent
|
||||
1. Express traffic between ROADM degrees
|
||||
2. Drop traffic from ROADM degrees and SRGs
|
||||
3. Add traffic from SRGs to ROADM degrees";
|
||||
}
|
||||
uses org-openroadm-degree:roadm-degree;
|
||||
uses org-openroadm-srg:shared-risk-group;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,128 @@
|
||||
module org-openroadm-routing-constraints {
|
||||
namespace "http://org/openroadm/routing/constrains";
|
||||
prefix org-openroadm-routing-constraints;
|
||||
|
||||
organization
|
||||
"Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions of routing constraints.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping routing-constraints {
|
||||
container hard-constraints {
|
||||
uses constraints;
|
||||
}
|
||||
container soft-constraints {
|
||||
uses constraints;
|
||||
}
|
||||
}
|
||||
|
||||
grouping constraints {
|
||||
leaf-list customer-code {
|
||||
type string;
|
||||
}
|
||||
choice co-routing-or-general {
|
||||
case general {
|
||||
container diversity {
|
||||
uses diversity-existing-service-contraints;
|
||||
}
|
||||
container exclude {
|
||||
uses common-constraints;
|
||||
leaf-list supporting-service-name {
|
||||
description
|
||||
"Supporting service(s) to exclude from this route.";
|
||||
type string;
|
||||
}
|
||||
}
|
||||
container include {
|
||||
uses common-constraints;
|
||||
leaf-list supporting-service-name {
|
||||
description
|
||||
"Supporting service(s) to include in this route.";
|
||||
type string;
|
||||
}
|
||||
}
|
||||
container latency {
|
||||
description
|
||||
"Maximum latency allowed";
|
||||
leaf max-latency {
|
||||
type uint32;
|
||||
units "ms";
|
||||
}
|
||||
}
|
||||
}
|
||||
case co-routing {
|
||||
container co-routing {
|
||||
leaf-list existing-service {
|
||||
type string;
|
||||
description
|
||||
"Diverse from existing services identified by facility CLFI";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping common-constraints {
|
||||
leaf-list fiber-bundle {
|
||||
type string;
|
||||
}
|
||||
leaf-list site {
|
||||
type string;
|
||||
}
|
||||
leaf-list node-id {
|
||||
type string;
|
||||
}
|
||||
}
|
||||
|
||||
grouping diversity-existing-service-contraints {
|
||||
leaf-list existing-service {
|
||||
type string;
|
||||
description
|
||||
"Diverse from existing services identified by facility CLFI";
|
||||
}
|
||||
container existing-service-applicability {
|
||||
leaf site {
|
||||
type boolean;
|
||||
}
|
||||
leaf node {
|
||||
type boolean;
|
||||
}
|
||||
leaf srlg {
|
||||
type boolean;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
310
apps/openroadm/yangmodel/src/main/yang/org-openroadm-rstp.yang
Normal file
310
apps/openroadm/yangmodel/src/main/yang/org-openroadm-rstp.yang
Normal file
@ -0,0 +1,310 @@
|
||||
module org-openroadm-rstp {
|
||||
namespace "http://org/openroadm/rstp";
|
||||
prefix org-openroadm-rstp;
|
||||
|
||||
import org-openroadm-device {
|
||||
prefix org-openroadm-device;
|
||||
}
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions for rstp protocol.
|
||||
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
typedef bridge-id-type {
|
||||
type string;
|
||||
description
|
||||
"Unique Bridge Identifier";
|
||||
}
|
||||
|
||||
grouping rstp-common-bridge-config {
|
||||
leaf bridge-priority {
|
||||
description
|
||||
"Bridge Priority Value";
|
||||
type uint32 {
|
||||
range "0..61440";
|
||||
}
|
||||
default "32768";
|
||||
}
|
||||
leaf shutdown {
|
||||
description
|
||||
"Bridge admin state";
|
||||
type empty;
|
||||
}
|
||||
leaf hold-time {
|
||||
description
|
||||
"The time interval during which no more than two
|
||||
BPDUs transmitted by this node in seconds - not used in rstp mode (in seconds)";
|
||||
type uint32 {
|
||||
range "1..10";
|
||||
}
|
||||
default "2";
|
||||
}
|
||||
leaf hello-time {
|
||||
description
|
||||
"The time between the transmission of BPDU's by this node on any
|
||||
port, when role is rooti (in seconds)";
|
||||
type uint32 {
|
||||
range "1..10";
|
||||
}
|
||||
default "2";
|
||||
}
|
||||
leaf max-age {
|
||||
description
|
||||
"The value that all bridges use for MaxAge when this bridge
|
||||
is acting as the root";
|
||||
type uint32 {
|
||||
range "6..40";
|
||||
}
|
||||
default "20";
|
||||
}
|
||||
leaf forward-delay {
|
||||
description
|
||||
"The port on the Switch spends this time in the listening
|
||||
state while moving from the blocking state to the forwarding state (in seconds)";
|
||||
type uint32 {
|
||||
range "4..30";
|
||||
}
|
||||
default "15";
|
||||
}
|
||||
leaf transmit-hold-count {
|
||||
description
|
||||
"Maximum BPDU transmission rate";
|
||||
type uint32 {
|
||||
range "1..10";
|
||||
}
|
||||
default "2";
|
||||
}
|
||||
}
|
||||
|
||||
grouping rstp-root-bridge-attr {
|
||||
leaf root-bridge-port {
|
||||
description
|
||||
"Port id of the root port";
|
||||
type uint32;
|
||||
}
|
||||
leaf root-path-cost {
|
||||
description
|
||||
"The cost of the path to the root as
|
||||
seen from this bridge";
|
||||
type uint32;
|
||||
}
|
||||
leaf root-bridge-priority {
|
||||
description
|
||||
"Root Bridge Priority Value";
|
||||
type uint32;
|
||||
}
|
||||
leaf root-bridge-id {
|
||||
description
|
||||
"Root Bridge identifier";
|
||||
type bridge-id-type;
|
||||
}
|
||||
leaf root-hold-time {
|
||||
description
|
||||
"The time interval during which no more than two
|
||||
BPDUs transmitted by this node in seconds at root node (in seconds)";
|
||||
type uint32;
|
||||
}
|
||||
leaf root-hello-time {
|
||||
description
|
||||
"The time between the transmission of BPDU's used at root node (in seconds)";
|
||||
type uint32;
|
||||
}
|
||||
leaf root-max-age {
|
||||
description
|
||||
"The value that all bridges use for MaxAge used at root node";
|
||||
type uint32;
|
||||
}
|
||||
leaf root-forward-delay {
|
||||
description
|
||||
"The time in seconds spent on the listening state used at root node (in seconds)";
|
||||
type uint32;
|
||||
}
|
||||
}
|
||||
|
||||
grouping rstp-bridge-port-state-attr {
|
||||
list rstp-bridge-port-table {
|
||||
max-elements "15";
|
||||
description
|
||||
"This table contains port-specific information for rstp state attributes";
|
||||
key "ifname";
|
||||
leaf ifname {
|
||||
description
|
||||
"Interface name of the port";
|
||||
type string {
|
||||
length "1..255";
|
||||
}
|
||||
}
|
||||
leaf bridge-port-state {
|
||||
description
|
||||
"The port's current state";
|
||||
type enumeration {
|
||||
enum "discarding";
|
||||
enum "blocked";
|
||||
enum "learning";
|
||||
enum "forwarding";
|
||||
enum "unknown";
|
||||
}
|
||||
}
|
||||
leaf bridge-port-role {
|
||||
description
|
||||
"The role payed by this port in the bridge";
|
||||
type enumeration {
|
||||
enum "designated";
|
||||
enum "root";
|
||||
enum "alternate";
|
||||
enum "disabled";
|
||||
enum "backup";
|
||||
enum "unknown";
|
||||
}
|
||||
}
|
||||
leaf bridge-port-id {
|
||||
description
|
||||
"Unique port id of this port";
|
||||
type uint32;
|
||||
}
|
||||
leaf oper-edge-bridge-port {
|
||||
description
|
||||
"The operational value of the Edge Port parameter";
|
||||
type empty;
|
||||
}
|
||||
leaf designated-bridge-port {
|
||||
description
|
||||
"Port id of the designated port";
|
||||
type uint32;
|
||||
}
|
||||
leaf designated-bridgeid {
|
||||
description
|
||||
"The Bridge Identifier of the bridge that this port considers
|
||||
to be the Designated Bridge for this port's segment";
|
||||
type bridge-id-type;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping rstp-bridge-port-attr {
|
||||
list rstp-bridge-port-table {
|
||||
max-elements "15";
|
||||
description
|
||||
"Table contains port-specific information for rstp config";
|
||||
key "ifname";
|
||||
leaf ifname {
|
||||
description
|
||||
"Interface name of the port";
|
||||
type leafref {
|
||||
path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
|
||||
}
|
||||
}
|
||||
leaf cost {
|
||||
description
|
||||
"The contribution of this port to the path cost of
|
||||
paths towards the spanning tree root which include this port also";
|
||||
type uint32 {
|
||||
range "2000..200000";
|
||||
}
|
||||
default "20000";
|
||||
}
|
||||
leaf priority {
|
||||
description
|
||||
"The value of the priority field";
|
||||
type uint32 {
|
||||
range "0..240";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grouping rstp-container {
|
||||
container rstp {
|
||||
description
|
||||
"Open ROADM RSTP top level";
|
||||
list rstp-bridge-instance {
|
||||
max-elements "1";
|
||||
description
|
||||
"rstp bridge instance, max instance = 1";
|
||||
key "bridge-name";
|
||||
leaf bridge-name {
|
||||
description
|
||||
"unique name of the bridge";
|
||||
type string {
|
||||
length "1..255";
|
||||
}
|
||||
}
|
||||
container rstp-config {
|
||||
description
|
||||
"Collection of rstp configuration attributes";
|
||||
uses rstp-common-bridge-config;
|
||||
uses rstp-bridge-port-attr;
|
||||
}
|
||||
container rstp-state {
|
||||
description
|
||||
"Collection of rstp operational attributes";
|
||||
config false;
|
||||
container rstp-bridge-attr {
|
||||
description
|
||||
"Collection of operational rstp bridge attributes";
|
||||
uses rstp-root-bridge-attr;
|
||||
leaf bridge-id {
|
||||
description
|
||||
"Bridge identifier of the bridge";
|
||||
type bridge-id-type;
|
||||
}
|
||||
leaf topo-change-count {
|
||||
description
|
||||
"The total number of topology changes";
|
||||
type uint32;
|
||||
}
|
||||
leaf time-since-topo-change {
|
||||
description
|
||||
"Time since last topology changes occured (in seconds)";
|
||||
type uint32;
|
||||
}
|
||||
}
|
||||
container rstp-bridge-port-attr {
|
||||
description
|
||||
"Collection of operational rstp port related attributes";
|
||||
uses rstp-bridge-port-state-attr;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
augment "/org-openroadm-device:org-openroadm-device/org-openroadm-device:protocols" {
|
||||
when "/org-openroadm-device:org-openroadm-device/org-openroadm-device:info/org-openroadm-device:node-type='rdm'";
|
||||
uses rstp-container;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,547 @@
|
||||
module org-openroadm-service {
|
||||
namespace "http://org/openroadm/service";
|
||||
prefix org-openroadm-service;
|
||||
|
||||
import ietf-yang-types {
|
||||
prefix yang;
|
||||
}
|
||||
import org-openroadm-routing-constraints {
|
||||
prefix org-openroadm-routing-constraints;
|
||||
}
|
||||
import org-openroadm-common-types {
|
||||
prefix org-openroadm-common-types;
|
||||
}
|
||||
import org-openroadm-resource-types {
|
||||
prefix org-openroadm-resource-types;
|
||||
}
|
||||
import org-openroadm-common-service-types {
|
||||
prefix org-openroadm-common-service-types;
|
||||
}
|
||||
|
||||
organization
|
||||
"Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions of services.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
rpc service-create {
|
||||
input {
|
||||
leaf service-name {
|
||||
type string;
|
||||
description
|
||||
"Identifier for the service to be created in
|
||||
the ROADM network, e.g., CLFI, CLCI, etc. This is reported against the service, but may not get reflected in the service in the network.";
|
||||
mandatory true;
|
||||
}
|
||||
leaf common-id {
|
||||
type string;
|
||||
description
|
||||
"To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
|
||||
}
|
||||
uses org-openroadm-common-service-types:sdnc-request-header;
|
||||
leaf connection-type {
|
||||
type org-openroadm-common-service-types:connection-type;
|
||||
mandatory true;
|
||||
}
|
||||
container service-a-end {
|
||||
uses org-openroadm-common-service-types:service-endpoint;
|
||||
}
|
||||
container service-z-end {
|
||||
uses org-openroadm-common-service-types:service-endpoint;
|
||||
}
|
||||
uses org-openroadm-routing-constraints:routing-constraints;
|
||||
uses org-openroadm-common-service-types:service-information;
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-service-types:configuration-response-common;
|
||||
uses org-openroadm-common-service-types:response-parameters;
|
||||
}
|
||||
description
|
||||
"Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
|
||||
service-rpc-result Notification shall be sent.";
|
||||
}
|
||||
rpc service-feasibility-check {
|
||||
input {
|
||||
leaf common-id {
|
||||
type string;
|
||||
mandatory true;
|
||||
description
|
||||
"To be used by the ROADM controller to identify the routing
|
||||
constraints received from planning application (PED).";
|
||||
}
|
||||
uses org-openroadm-common-service-types:sdnc-request-header;
|
||||
leaf connection-type {
|
||||
type org-openroadm-common-service-types:connection-type;
|
||||
}
|
||||
container service-a-end {
|
||||
uses org-openroadm-common-service-types:service-endpoint;
|
||||
}
|
||||
container service-z-end {
|
||||
uses org-openroadm-common-service-types:service-endpoint;
|
||||
}
|
||||
uses org-openroadm-routing-constraints:routing-constraints;
|
||||
uses org-openroadm-common-service-types:service-information;
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-service-types:configuration-response-common;
|
||||
uses org-openroadm-common-service-types:response-parameters;
|
||||
container service-a-end {
|
||||
uses org-openroadm-common-service-types:service-endpoint;
|
||||
list equipment-required {
|
||||
description
|
||||
"List of required equipment, including equipment type and quantity";
|
||||
key "eqipment-identifier";
|
||||
leaf eqipment-identifier {
|
||||
type string;
|
||||
}
|
||||
leaf equipment-type {
|
||||
type string;
|
||||
}
|
||||
leaf equipment-quantity {
|
||||
type uint32;
|
||||
}
|
||||
}
|
||||
}
|
||||
container service-z-end {
|
||||
uses org-openroadm-common-service-types:service-endpoint;
|
||||
list equipment-required {
|
||||
description
|
||||
"List of required equipment, including equipment type and quantity";
|
||||
key "eqipment-identifier";
|
||||
leaf eqipment-identifier {
|
||||
type string;
|
||||
}
|
||||
leaf equipment-type {
|
||||
type string;
|
||||
}
|
||||
leaf equipment-quantity {
|
||||
type uint32;
|
||||
}
|
||||
}
|
||||
}
|
||||
list intermediate-sites {
|
||||
key "clli";
|
||||
uses org-openroadm-common-service-types:service-endpoint;
|
||||
list equipment-required {
|
||||
description
|
||||
"List of required equipment, including equipment type and quantity";
|
||||
key "eqipment-identifier";
|
||||
leaf eqipment-identifier {
|
||||
type string;
|
||||
}
|
||||
leaf equipment-type {
|
||||
type string;
|
||||
}
|
||||
leaf equipment-quantity {
|
||||
type uint32;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
description
|
||||
"Whether a service was possible to be created, and if so
|
||||
the routing constraints match and the a and z end connection that have
|
||||
to match";
|
||||
}
|
||||
rpc service-delete {
|
||||
input {
|
||||
uses org-openroadm-common-service-types:sdnc-request-header;
|
||||
container service-delete-req-info {
|
||||
leaf service-name {
|
||||
type string;
|
||||
description
|
||||
"Identifier for the service to be deleted in
|
||||
the ROADM network, e.g., CLFI, CLCI, etc.";
|
||||
mandatory true;
|
||||
}
|
||||
leaf due-date {
|
||||
type yang:date-and-time;
|
||||
description
|
||||
"date and time service to be turned down. If missing, now.";
|
||||
}
|
||||
leaf tail-retention {
|
||||
type enumeration {
|
||||
enum "yes" {
|
||||
value 1;
|
||||
description
|
||||
"tails are left intact ";
|
||||
}
|
||||
enum "no" {
|
||||
value 2;
|
||||
description
|
||||
"tails are deleted";
|
||||
}
|
||||
}
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-service-types:configuration-response-common;
|
||||
}
|
||||
description
|
||||
"Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
|
||||
service-rpc-result Notification shall be sent. Once the service has been deleted, it no longer will appear in the service list";
|
||||
}
|
||||
rpc equipment-notification {
|
||||
input {
|
||||
uses org-openroadm-common-service-types:sdnc-request-header;
|
||||
leaf equiptment-id {
|
||||
type string;
|
||||
mandatory true;
|
||||
}
|
||||
leaf equipment-name {
|
||||
type string;
|
||||
}
|
||||
leaf equipemt-type {
|
||||
type string;
|
||||
mandatory true;
|
||||
}
|
||||
leaf equipment-vendor {
|
||||
type string;
|
||||
mandatory true;
|
||||
}
|
||||
leaf equipment-customer {
|
||||
type string;
|
||||
}
|
||||
leaf equipment-clli {
|
||||
type string;
|
||||
mandatory true;
|
||||
}
|
||||
leaf equipment-ip {
|
||||
type string;
|
||||
}
|
||||
leaf controller-id {
|
||||
type string;
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-service-types:configuration-response-common;
|
||||
}
|
||||
}
|
||||
rpc temp-service-create {
|
||||
input {
|
||||
leaf common-id {
|
||||
type string;
|
||||
description
|
||||
"To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
|
||||
mandatory true;
|
||||
}
|
||||
uses org-openroadm-common-service-types:sdnc-request-header;
|
||||
leaf connection-type {
|
||||
type org-openroadm-common-service-types:connection-type;
|
||||
mandatory true;
|
||||
}
|
||||
container service-a-end {
|
||||
uses org-openroadm-common-service-types:service-endpoint;
|
||||
}
|
||||
container service-z-end {
|
||||
uses org-openroadm-common-service-types:service-endpoint;
|
||||
}
|
||||
uses org-openroadm-routing-constraints:routing-constraints;
|
||||
uses org-openroadm-common-service-types:service-information;
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-service-types:configuration-response-common;
|
||||
uses org-openroadm-common-service-types:response-parameters;
|
||||
}
|
||||
}
|
||||
rpc temp-service-delete {
|
||||
input {
|
||||
leaf common-id {
|
||||
type string;
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-service-types:configuration-response-common;
|
||||
}
|
||||
}
|
||||
rpc service-roll {
|
||||
input {
|
||||
leaf service-name {
|
||||
type string;
|
||||
mandatory true;
|
||||
description
|
||||
"Identifier for the service to be rolled in
|
||||
the ROADM network, e.g., CLFI, CLCI, etc.";
|
||||
}
|
||||
leaf due-date {
|
||||
type yang:date-and-time;
|
||||
description
|
||||
"date and time service to be rolled";
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
}
|
||||
rpc service-reconfigure {
|
||||
input {
|
||||
leaf service-name {
|
||||
type string;
|
||||
mandatory true;
|
||||
description
|
||||
"Existing identifier for the service to be
|
||||
reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
|
||||
}
|
||||
leaf new-service-name {
|
||||
type string;
|
||||
description
|
||||
"New identifier for the service to be
|
||||
reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
|
||||
}
|
||||
leaf common-id {
|
||||
type string;
|
||||
description
|
||||
"To be used by the ROADM controller to identify the routing
|
||||
constraints received from planning application (PED).";
|
||||
}
|
||||
leaf connection-type {
|
||||
type org-openroadm-common-service-types:connection-type;
|
||||
}
|
||||
container service-a-end {
|
||||
uses org-openroadm-common-service-types:service-endpoint;
|
||||
}
|
||||
container service-z-end {
|
||||
uses org-openroadm-common-service-types:service-endpoint;
|
||||
}
|
||||
uses org-openroadm-routing-constraints:routing-constraints;
|
||||
uses org-openroadm-common-service-types:service-information;
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
description
|
||||
"Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
|
||||
service-rpc-result Notification shall be sent.";
|
||||
}
|
||||
rpc service-restoration {
|
||||
input {
|
||||
leaf service-name {
|
||||
type string;
|
||||
mandatory true;
|
||||
description
|
||||
"Identifier for the service to be restored in
|
||||
the ROADM network, e.g., CLFI, CLCI, etc.";
|
||||
}
|
||||
leaf option {
|
||||
type enumeration {
|
||||
enum "permanent" {
|
||||
value 1;
|
||||
description
|
||||
"A spare regen can be used to restore the
|
||||
service permanently without reverting back to the
|
||||
original regen";
|
||||
}
|
||||
enum "temporary" {
|
||||
value 2;
|
||||
description
|
||||
"a spare regen can be used to restore the
|
||||
service temporarily. The service needs to be reverted
|
||||
back to the original regen transponder";
|
||||
}
|
||||
}
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
description
|
||||
"Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
|
||||
service-rpc-result Notification shall be sent.";
|
||||
}
|
||||
rpc service-reversion {
|
||||
input {
|
||||
leaf service-name {
|
||||
type string;
|
||||
mandatory true;
|
||||
description
|
||||
"Identifier for the service to be reverted
|
||||
in the ROADM network, e.g., CLFI, CLCI, etc. ";
|
||||
}
|
||||
leaf due-date {
|
||||
type yang:date-and-time;
|
||||
description
|
||||
"date and time service to be reverted";
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
description
|
||||
"Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
|
||||
service-rpc-result Notification shall be sent.";
|
||||
}
|
||||
rpc service-reroute {
|
||||
input {
|
||||
leaf service-name {
|
||||
type string;
|
||||
mandatory true;
|
||||
description
|
||||
"Identifier for the service to be re-routed in
|
||||
the ROADM network, e.g., CLFI, CLCI, etc.";
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
uses org-openroadm-routing-constraints:routing-constraints;
|
||||
}
|
||||
description
|
||||
"Whether this request was validated and processed correct. If sucessful, it return the proposed new route.
|
||||
If acceptable, this request should be followed by a service-reroute-confirm to complete the reroute operation.";
|
||||
}
|
||||
rpc service-reroute-confirm {
|
||||
input {
|
||||
leaf service-name {
|
||||
type string;
|
||||
mandatory true;
|
||||
description
|
||||
"Identifier for the service to be re-routed in
|
||||
the ROADM network, e.g., CLFI, CLCI, etc.";
|
||||
}
|
||||
uses org-openroadm-routing-constraints:routing-constraints;
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
description
|
||||
"Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
|
||||
service-rpc-result Notification shall be sent.";
|
||||
}
|
||||
rpc network-re-optimization {
|
||||
input {
|
||||
leaf service-name {
|
||||
type string;
|
||||
description
|
||||
"Identifier for the service in the ROADM network,
|
||||
e.g., CLFI, CLCI, etc. whose path is to be checked by the RNC
|
||||
for re-optimization";
|
||||
}
|
||||
leaf a-end {
|
||||
type string;
|
||||
description
|
||||
"Services whose A-ends are terminated at the
|
||||
specified office location are to be checked by the RNC for
|
||||
re-optimization";
|
||||
}
|
||||
leaf z-end {
|
||||
type string;
|
||||
description
|
||||
"Services whose Z-ends are terminated at the
|
||||
specified office location are to be checked by the RNC for
|
||||
re-optimization ";
|
||||
}
|
||||
leaf pass-through {
|
||||
type string;
|
||||
description
|
||||
"Services that are pass-through (either via
|
||||
regen or express) at the specified office location are to
|
||||
be checked by the RNC for re-optimization";
|
||||
}
|
||||
leaf customer-code {
|
||||
type string;
|
||||
description
|
||||
"Services that belong to the specified customer
|
||||
are to be checked by the RNC for re-optimization ";
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
leaf optimization-candidate {
|
||||
type string;
|
||||
}
|
||||
}
|
||||
}
|
||||
container service-list {
|
||||
description
|
||||
"List of service. Can only be created, deleted, modified, etc. using special RPCs.";
|
||||
list services {
|
||||
key "service-name";
|
||||
uses org-openroadm-common-service-types:service;
|
||||
}
|
||||
}
|
||||
container temp-service-list {
|
||||
description
|
||||
"List of temporary services Can only be created, deleted, modified, etc. using special RPCs.";
|
||||
list services {
|
||||
key "common-id";
|
||||
uses org-openroadm-common-service-types:service {
|
||||
refine "service-name" {
|
||||
mandatory false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
notification service-rpc-result {
|
||||
description
|
||||
"This Notification indicates result of service RPC";
|
||||
leaf notification-type {
|
||||
type org-openroadm-common-service-types:service-notification-types;
|
||||
}
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
uses org-openroadm-common-service-types:service-notification-result;
|
||||
}
|
||||
notification service-traffic-flow {
|
||||
description
|
||||
"This Notification indicates that traffic is flowing again on the service after an administrative action has completed";
|
||||
leaf service-name {
|
||||
type string;
|
||||
description
|
||||
"Identifier for the service being reported on";
|
||||
mandatory true;
|
||||
}
|
||||
leaf actual-date {
|
||||
type yang:date-and-time;
|
||||
description
|
||||
"Actual date and time traffic started flowing";
|
||||
}
|
||||
}
|
||||
notification service-notification {
|
||||
description
|
||||
"This Notification that a service has been added, modified or removed.
|
||||
A resourceCreation notification shall contain the created service in its entirety.
|
||||
A resourceMofified notification shall contain just the modified field, plus the service identifier
|
||||
A resourceDeleted notification shall just contain the service identifier";
|
||||
leaf notificationType {
|
||||
type org-openroadm-resource-types:resource-notification-type;
|
||||
description
|
||||
"Whether this notification indicates a service creation, service modification or service deletion.";
|
||||
}
|
||||
uses org-openroadm-common-service-types:service;
|
||||
}
|
||||
}
|
||||
102
apps/openroadm/yangmodel/src/main/yang/org-openroadm-srg.yang
Normal file
102
apps/openroadm/yangmodel/src/main/yang/org-openroadm-srg.yang
Normal file
@ -0,0 +1,102 @@
|
||||
module org-openroadm-srg {
|
||||
namespace "http://org/openroadm/srg";
|
||||
prefix org-openroadm-srg;
|
||||
|
||||
organization
|
||||
"OPEN ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org.";
|
||||
description
|
||||
"YANG definitions for an Add/Drop group in Network Model
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping shared-risk-group {
|
||||
list srgs {
|
||||
key "srg-number";
|
||||
leaf srg-number {
|
||||
type uint16;
|
||||
description
|
||||
"Identifier for each SRG";
|
||||
}
|
||||
leaf max-pp {
|
||||
type uint32;
|
||||
description
|
||||
"Maximum number of add/drop port pairs in an SRG";
|
||||
}
|
||||
leaf-list available-wavelengths {
|
||||
type uint32;
|
||||
description
|
||||
"List of available wavelengths that are supported
|
||||
by the srg";
|
||||
}
|
||||
leaf wavelength-duplication {
|
||||
type enumeration {
|
||||
enum "one-per-srg" {
|
||||
value 1;
|
||||
}
|
||||
enum "one-per-degree" {
|
||||
value 2;
|
||||
}
|
||||
}
|
||||
description
|
||||
"One per srg is applied to C/D add/drop group
|
||||
one per degree is applied to C/D/C add drop group";
|
||||
}
|
||||
container cp-tx {
|
||||
leaf-list pp-number {
|
||||
type uint32;
|
||||
description
|
||||
"The port pair # used for a tail or assigned by PCE to a service/circuit ";
|
||||
}
|
||||
}
|
||||
container cp-rx {
|
||||
leaf-list pp-number {
|
||||
type uint32;
|
||||
description
|
||||
"The port pair # used for a tail or assigned by PCE to a service/circuit ";
|
||||
}
|
||||
}
|
||||
list port-pair {
|
||||
key "pp-number";
|
||||
leaf pp-number {
|
||||
type uint16;
|
||||
description
|
||||
"The port pair # used for tail or assigned by PCE to a service/circuit";
|
||||
}
|
||||
leaf wavelength-number {
|
||||
type uint32;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
120
apps/openroadm/yangmodel/src/main/yang/org-openroadm-swdl.yang
Normal file
120
apps/openroadm/yangmodel/src/main/yang/org-openroadm-swdl.yang
Normal file
@ -0,0 +1,120 @@
|
||||
module org-openroadm-swdl {
|
||||
namespace "http://org/openroadm/de/swdl";
|
||||
prefix org-openroadm-swdl;
|
||||
|
||||
import ietf-yang-types {
|
||||
prefix yang;
|
||||
}
|
||||
|
||||
import org-openroadm-common-types {
|
||||
prefix org-openroadm-common-types;
|
||||
}
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"Yang definitions for System Management.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping sw-bank {
|
||||
leaf sw-version {
|
||||
type string;
|
||||
description
|
||||
"Gissue of the SW in this bank";
|
||||
}
|
||||
leaf sw-validation-timer {
|
||||
type string {
|
||||
pattern "(([0-1][0-9]|2[0-3])-([0-5][0-9])-([0-5][0-9]))";
|
||||
}
|
||||
description
|
||||
"value of validation timer in hh-mm-ss";
|
||||
}
|
||||
leaf activation-date-time {
|
||||
type yang:date-and-time;
|
||||
description
|
||||
"activation date and time: The date load was activated";
|
||||
}
|
||||
}
|
||||
|
||||
rpc sw-stage {
|
||||
description
|
||||
"SW stage - copies the SW from repo to staging bank";
|
||||
input {
|
||||
leaf filename {
|
||||
type string {
|
||||
length "10..255";
|
||||
}
|
||||
description
|
||||
"file name which has the load";
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
}
|
||||
rpc sw-activate {
|
||||
description
|
||||
"Activate new load";
|
||||
input {
|
||||
leaf version {
|
||||
type string;
|
||||
description
|
||||
" software version of the new load which is being activated";
|
||||
}
|
||||
leaf validationTimer {
|
||||
type string;
|
||||
description
|
||||
"validation timer hh-mm-ss";
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
}
|
||||
rpc cancel-validation-timer {
|
||||
description
|
||||
"Cancel validation timer which user provisioned as part of activate command";
|
||||
input {
|
||||
leaf accept {
|
||||
type boolean;
|
||||
default "true";
|
||||
description
|
||||
" TRUE means validation timer is cancelled and new load is accepted";
|
||||
}
|
||||
}
|
||||
output {
|
||||
uses org-openroadm-common-types:rpc-response-status;
|
||||
}
|
||||
}
|
||||
}
|
||||
334
apps/openroadm/yangmodel/src/main/yang/org-openroadm-syslog.yang
Normal file
334
apps/openroadm/yangmodel/src/main/yang/org-openroadm-syslog.yang
Normal file
@ -0,0 +1,334 @@
|
||||
module org-openroadm-syslog {
|
||||
namespace "http://org/openroadm/syslog";
|
||||
prefix org-openroadm-syslog;
|
||||
|
||||
import ietf-inet-types {
|
||||
prefix inet;
|
||||
}
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"This module contains a collection of YANG definitions
|
||||
for Syslog configuration.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Also contains code components extracted from IETF Interfaces. These code components
|
||||
are copyrighted and licensed as follows:
|
||||
|
||||
Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
|
||||
All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating
|
||||
to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents carefully, as they
|
||||
describe your rights and restrictions with respect to this document. Code Components
|
||||
extracted from this document must include Simplified BSD License text as described in
|
||||
Section 4.e of the Trust Legal Provisions and are provided without warranty as
|
||||
described in the Simplified BSD License.";
|
||||
reference "RFC 5424: The Syslog Protocol";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
feature selector-sevop-config {
|
||||
description
|
||||
"This feature represents the ability to select messages
|
||||
using the additional operators equal to, or not equal to
|
||||
when comparing the Syslog message severity.";
|
||||
}
|
||||
|
||||
feature selector-match-config {
|
||||
description
|
||||
"This feature represents the ability to select messages based
|
||||
on a Posix 1003.2 regular expression pattern match.";
|
||||
}
|
||||
|
||||
// copied from draft of ietf-ietf-syslog-types.yang
|
||||
identity syslog-facility {
|
||||
description
|
||||
"The base identity to represent syslog facilities";
|
||||
}
|
||||
|
||||
// copied from draft of ietf-ietf-syslog-types.yang;
|
||||
// extended the enum set to include all and none
|
||||
typedef severity {
|
||||
type enumeration {
|
||||
enum "emergency" {
|
||||
value 0;
|
||||
description
|
||||
"Emergency Level Msg";
|
||||
}
|
||||
enum "alert" {
|
||||
value 1;
|
||||
description
|
||||
"Alert Level Msg";
|
||||
}
|
||||
enum "critical" {
|
||||
value 2;
|
||||
description
|
||||
"Critical Level Msg";
|
||||
}
|
||||
enum "error" {
|
||||
value 3;
|
||||
description
|
||||
"Error Level Msg";
|
||||
}
|
||||
enum "warning" {
|
||||
value 4;
|
||||
description
|
||||
"Warning Level Msg";
|
||||
}
|
||||
enum "notice" {
|
||||
value 5;
|
||||
description
|
||||
"Notification Level Msg";
|
||||
}
|
||||
enum "info" {
|
||||
value 6;
|
||||
description
|
||||
"Informational Level Msg";
|
||||
}
|
||||
enum "debug" {
|
||||
value 7;
|
||||
description
|
||||
"Debugging Level Msg";
|
||||
}
|
||||
enum "all" {
|
||||
value 8;
|
||||
description
|
||||
"This enum describes the case where all severities
|
||||
are selected.";
|
||||
}
|
||||
enum "none" {
|
||||
value 9;
|
||||
description
|
||||
"This enum describes the case where no severities
|
||||
are selected.";
|
||||
}
|
||||
}
|
||||
description
|
||||
"The definitions for Syslog message severity as per RFC 5424.
|
||||
Extended the RFC definition with enums for all and none";
|
||||
}
|
||||
|
||||
grouping syslog-severity {
|
||||
description
|
||||
"This grouping defines the Syslog severity which is used to
|
||||
select log messages.";
|
||||
leaf severity {
|
||||
type severity;
|
||||
mandatory true;
|
||||
description
|
||||
"This leaf specifies the Syslog message severity. When
|
||||
severity is specified, the default severity comparison
|
||||
is all messages of the specified severity and greater are
|
||||
selected. 'all' is a special case which means all severities
|
||||
are selected. 'none' is a special case which means that
|
||||
no selection should occur or disable this filter.";
|
||||
}
|
||||
leaf severity-operator {
|
||||
when
|
||||
"../severity != 'all' and
|
||||
../severity != 'none'" {
|
||||
description
|
||||
"The severity-operator is not applicable for severity 'all' or
|
||||
severity 'none'";
|
||||
}
|
||||
if-feature selector-sevop-config;
|
||||
type enumeration {
|
||||
enum "equals-or-higher" {
|
||||
description
|
||||
"This enum specifies all messages of the specified
|
||||
severity and higher are logged according to the
|
||||
given log-action";
|
||||
}
|
||||
enum "equals" {
|
||||
description
|
||||
"This enum specifies all messages that are for
|
||||
the specified severity are logged according to the
|
||||
given log-action";
|
||||
}
|
||||
enum "not-equals" {
|
||||
description
|
||||
"This enum specifies all messages that are not for
|
||||
the specified severity are logged according to the
|
||||
given log-action";
|
||||
}
|
||||
}
|
||||
default "equals-or-higher";
|
||||
description
|
||||
"This leaf describes the option to specify how the
|
||||
severity comparison is performed.";
|
||||
}
|
||||
}
|
||||
|
||||
grouping syslog-selector {
|
||||
description
|
||||
"This grouping defines a Syslog selector which is used to
|
||||
select log messages for the log-action (buffer, file,
|
||||
etc). Choose one of the following:
|
||||
no-log-facility
|
||||
log-facility [<facility> <severity>...]";
|
||||
container log-selector {
|
||||
description
|
||||
"This container describes the log selector parameters
|
||||
for Syslog.";
|
||||
choice selector-facility {
|
||||
mandatory true;
|
||||
description
|
||||
"This choice describes the option to specify no
|
||||
facilities, or a specific facility which can be
|
||||
all for all facilities.";
|
||||
case no-log-facility {
|
||||
description
|
||||
"This case specifies no facilities will match when
|
||||
comparing the Syslog message facility. This is a
|
||||
method that can be used to effectively disable a
|
||||
particular log-action (buffer, file, etc).";
|
||||
leaf no-facilities {
|
||||
type empty;
|
||||
description
|
||||
"This leaf specifies that no facilities are selected
|
||||
for this log-action.";
|
||||
}
|
||||
}
|
||||
case log-facility {
|
||||
description
|
||||
"This case specifies one or more specified facilities
|
||||
will match when comparing the Syslog message facility.";
|
||||
list log-facility {
|
||||
key "facility";
|
||||
description
|
||||
"This list describes a collection of Syslog
|
||||
facilities and severities.";
|
||||
leaf facility {
|
||||
type union {
|
||||
type identityref {
|
||||
base syslog-facility;
|
||||
}
|
||||
type enumeration {
|
||||
enum "all" {
|
||||
description
|
||||
"This enum describes the case where all
|
||||
facilities are requested.";
|
||||
}
|
||||
}
|
||||
}
|
||||
description
|
||||
"The leaf uniquely identifies a Syslog facility.";
|
||||
}
|
||||
uses syslog-severity;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
container syslog {
|
||||
description
|
||||
"This container describes the configuration parameters for
|
||||
Syslog.";
|
||||
container log-actions {
|
||||
description
|
||||
"This container describes the log-action parameters
|
||||
for Syslog.";
|
||||
container remote {
|
||||
description
|
||||
"This container describes the configuration parameters for
|
||||
remote logging.";
|
||||
list destination {
|
||||
key "name";
|
||||
description
|
||||
"This list describes a collection of remote logging
|
||||
destinations.";
|
||||
leaf name {
|
||||
type string;
|
||||
description
|
||||
"An arbitrary name for the endpoint to connect to.";
|
||||
}
|
||||
choice transport {
|
||||
mandatory true;
|
||||
description
|
||||
"This choice describes the transport option.";
|
||||
case tcp {
|
||||
container tcp {
|
||||
description
|
||||
"This container describes the TCP transport
|
||||
options.";
|
||||
reference "RFC 6587: Transmission of Syslog Messages over TCP";
|
||||
leaf address {
|
||||
type inet:host;
|
||||
description
|
||||
"The leaf uniquely specifies the address of
|
||||
the remote host. One of the following must
|
||||
be specified: an ipv4 address, an ipv6
|
||||
address, or a host name.";
|
||||
}
|
||||
leaf port {
|
||||
type inet:port-number;
|
||||
default "514";
|
||||
description
|
||||
"This leaf specifies the port number used to
|
||||
deliver messages to the remote server.";
|
||||
}
|
||||
}
|
||||
}
|
||||
case udp {
|
||||
container udp {
|
||||
description
|
||||
"This container describes the UDP transport
|
||||
options.";
|
||||
reference "RFC 5426: Transmission of Syslog Messages over UDP";
|
||||
leaf address {
|
||||
type inet:host;
|
||||
description
|
||||
"The leaf uniquely specifies the address of
|
||||
the remote host. One of the following must be
|
||||
specified: an ipv4 address, an ipv6 address,
|
||||
or a host name.";
|
||||
}
|
||||
leaf port {
|
||||
type inet:port-number;
|
||||
default "514";
|
||||
description
|
||||
"This leaf specifies the port number used to
|
||||
deliver messages to the remote server.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
uses syslog-selector;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,91 @@
|
||||
module org-openroadm-topology {
|
||||
namespace "http://org/openroadm/topology";
|
||||
prefix org-openroadm-topology;
|
||||
|
||||
import org-openroadm-resource {
|
||||
prefix org-openroadm-resource;
|
||||
}
|
||||
|
||||
organization
|
||||
"Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions of topology.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping topology {
|
||||
description
|
||||
"Topology reports the individual hops along the service in the A to Z direction and Z to A directions. This includes both ports internal to a device and those
|
||||
at its edge that are available for externally connections. It includes both physical and logical ports.
|
||||
Physical ports are ordered with the logical ports that run over them as follows:
|
||||
a.\tOn ingress to a node/card, physical then logical
|
||||
b.\tOn egress to a node/card, logical then physical";
|
||||
list aToZ {
|
||||
key "id";
|
||||
leaf id {
|
||||
description
|
||||
"Unigue identifier for this topology component within this service";
|
||||
type string;
|
||||
}
|
||||
uses hop;
|
||||
}
|
||||
list zToA {
|
||||
key "id";
|
||||
leaf id {
|
||||
description
|
||||
"Unigue identifier for this topology component within this service";
|
||||
type string;
|
||||
}
|
||||
uses hop;
|
||||
}
|
||||
}
|
||||
|
||||
grouping hop {
|
||||
leaf hop-type {
|
||||
type enumeration {
|
||||
enum "node-external" {
|
||||
description
|
||||
"The given resource is on the edge of the node, and used in relationships to resources outside of the node.";
|
||||
value 1;
|
||||
}
|
||||
enum "node-internal" {
|
||||
description
|
||||
"The given resource is internally to the node";
|
||||
value 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
uses org-openroadm-resource:resource;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,109 @@
|
||||
module org-openroadm-user-mgmt {
|
||||
namespace "http://org/openroadm/user-mgmt";
|
||||
prefix org-openroadm-user-mgmt;
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions of user managements.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping user-profile {
|
||||
list user {
|
||||
key "name";
|
||||
description
|
||||
"The list of local users configured on this device.";
|
||||
leaf name {
|
||||
type string;
|
||||
description
|
||||
"The user name string identifying this entry.";
|
||||
}
|
||||
leaf password {
|
||||
type string;
|
||||
description
|
||||
"The password for this entry. This shouldn't be in clear text";
|
||||
}
|
||||
leaf group {
|
||||
type enumeration {
|
||||
enum "sudo";
|
||||
}
|
||||
description
|
||||
"The group to which the user is associated to.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rpc chg-password {
|
||||
input {
|
||||
leaf currentPassword {
|
||||
type string;
|
||||
description
|
||||
"provide the current password";
|
||||
mandatory true;
|
||||
}
|
||||
leaf newPassword {
|
||||
type string;
|
||||
description
|
||||
"provide a new password";
|
||||
mandatory true;
|
||||
}
|
||||
leaf newPasswordConfirm {
|
||||
type string;
|
||||
description
|
||||
"re-enter the new password ";
|
||||
mandatory true;
|
||||
}
|
||||
}
|
||||
output {
|
||||
leaf status {
|
||||
type enumeration {
|
||||
enum "Successful" {
|
||||
value 1;
|
||||
}
|
||||
enum "Failed" {
|
||||
value 2;
|
||||
}
|
||||
}
|
||||
mandatory true;
|
||||
description
|
||||
"Successful or Failed";
|
||||
}
|
||||
leaf status-message {
|
||||
type string;
|
||||
description
|
||||
"Gives a more detailed reason for success / failure";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
module org-openroadm-wavelength-map {
|
||||
namespace "http://org/openroadm/wavelength-map";
|
||||
prefix org-openroadm-wavelength-map;
|
||||
|
||||
organization "Open ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org";
|
||||
description
|
||||
"YANG definitions for mapping wavelength-number to center frequency and wavelength value.
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping wavelength-map-g {
|
||||
list wavelengths {
|
||||
key "wavelength-number";
|
||||
leaf wavelength-number {
|
||||
type uint32;
|
||||
}
|
||||
config false;
|
||||
leaf center-frequency {
|
||||
type decimal64 {
|
||||
fraction-digits 3;
|
||||
range "191.350..196.100";
|
||||
}
|
||||
units "THz";
|
||||
description
|
||||
"Frequency of the transmit optical channel
|
||||
Domain range: 191.350THz .. 196.100THz ";
|
||||
}
|
||||
leaf wavelength {
|
||||
type decimal64 {
|
||||
fraction-digits 2;
|
||||
range "1528.77..1566.72";
|
||||
}
|
||||
units "nm";
|
||||
description
|
||||
"Lambda corresponding to transmit frequency
|
||||
Domain range: 1528.72nm .. 1566.72nm ";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,221 @@
|
||||
module org-openroadm-xponder {
|
||||
namespace "http://org/openroadm/xponder";
|
||||
prefix org-openroadm-xponder;
|
||||
|
||||
import org-openroadm-equipment-states-types {
|
||||
prefix org-openroadm-equipment-states-types;
|
||||
}
|
||||
import org-openroadm-common-types {
|
||||
prefix org-openroadm-common-types;
|
||||
}
|
||||
import ietf-inet-types {
|
||||
prefix inet;
|
||||
}
|
||||
|
||||
organization
|
||||
"OPEN ROADM MSA";
|
||||
contact
|
||||
"OpenROADM.org.";
|
||||
description
|
||||
"YANG definitions for xponder
|
||||
|
||||
Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
|
||||
AT&T Intellectual Property. All other rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the Members of the Open ROADM MSA Agreement nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2016-10-14 {
|
||||
description
|
||||
"Version 1.2";
|
||||
}
|
||||
|
||||
grouping xponder {
|
||||
list xponders {
|
||||
key "clli";
|
||||
leaf clli {
|
||||
type string;
|
||||
description
|
||||
"Location CLLI where the Xponder resides";
|
||||
}
|
||||
list ids {
|
||||
key "node-number node-type";
|
||||
leaf node-number {
|
||||
type uint32;
|
||||
description
|
||||
"Number assigned to an Xponder base unit in a given
|
||||
office, i.e., 1, 2..N";
|
||||
}
|
||||
leaf node-type {
|
||||
type org-openroadm-common-types:node-types;
|
||||
}
|
||||
leaf node-id {
|
||||
type string;
|
||||
description
|
||||
"Network-wide unique identifier for an Xponder";
|
||||
}
|
||||
leaf vendor {
|
||||
type string;
|
||||
description
|
||||
"Identifier of the supplier for the xponder";
|
||||
}
|
||||
leaf customer-code {
|
||||
type string;
|
||||
description
|
||||
"Owner of the xponder";
|
||||
}
|
||||
leaf domain-subnetwork {
|
||||
type string;
|
||||
description
|
||||
"Specific Domain-Subnetwork in which the ROADM node resides";
|
||||
}
|
||||
leaf ip {
|
||||
type inet:ip-address;
|
||||
description
|
||||
"IP address assigned to the ROADM node";
|
||||
}
|
||||
leaf relay-rack {
|
||||
type string;
|
||||
description
|
||||
"Frame Identification Code (FIC)";
|
||||
}
|
||||
leaf shelf {
|
||||
type uint32;
|
||||
}
|
||||
container input-connection {
|
||||
leaf accumulated-bitrate {
|
||||
type uint32;
|
||||
}
|
||||
list port {
|
||||
key "port-name";
|
||||
leaf port-name {
|
||||
type string;
|
||||
}
|
||||
leaf customer-code {
|
||||
type string;
|
||||
description
|
||||
"Owner of the input module";
|
||||
}
|
||||
leaf vendor {
|
||||
type string;
|
||||
description
|
||||
"Supplier of the input module";
|
||||
}
|
||||
leaf local-lgx {
|
||||
type string;
|
||||
}
|
||||
leaf bit-rate {
|
||||
type uint32;
|
||||
}
|
||||
leaf signal-format {
|
||||
type string;
|
||||
}
|
||||
leaf reach {
|
||||
type string;
|
||||
}
|
||||
leaf optic {
|
||||
type org-openroadm-common-types:optic-types;
|
||||
}
|
||||
leaf state {
|
||||
type org-openroadm-equipment-states-types:states;
|
||||
description
|
||||
"A xponder can be in one of the following
|
||||
states";
|
||||
}
|
||||
leaf tail-client-equipment {
|
||||
type string;
|
||||
}
|
||||
leaf tail-client-equipmentId {
|
||||
type string;
|
||||
}
|
||||
leaf tail-clfi {
|
||||
type string;
|
||||
}
|
||||
}
|
||||
}
|
||||
container output-connection {
|
||||
leaf clli {
|
||||
type string;
|
||||
}
|
||||
leaf node-number{
|
||||
type uint32;
|
||||
}
|
||||
leaf node-id {
|
||||
type string;
|
||||
description
|
||||
"ROADM node ID";
|
||||
}
|
||||
leaf accumulated-bitrate {
|
||||
type uint32;
|
||||
}
|
||||
list port {
|
||||
key "port-name";
|
||||
leaf port-name {
|
||||
type string;
|
||||
}
|
||||
leaf vendor {
|
||||
type string;
|
||||
description
|
||||
"Supplier of the output module";
|
||||
}
|
||||
leaf srg-number {
|
||||
type uint16;
|
||||
description
|
||||
"Output module is connected to";
|
||||
}
|
||||
leaf pp-number {
|
||||
type uint16;
|
||||
}
|
||||
leaf wavelength-number{
|
||||
type uint32;
|
||||
}
|
||||
leaf local-lgx {
|
||||
type string;
|
||||
}
|
||||
leaf tail-clfi{
|
||||
type string;
|
||||
}
|
||||
leaf bit-rate {
|
||||
type uint32;
|
||||
}
|
||||
leaf signal-format {
|
||||
type string;
|
||||
}
|
||||
leaf reach {
|
||||
type string;
|
||||
}
|
||||
leaf optic {
|
||||
type org-openroadm-common-types:optic-types;
|
||||
}
|
||||
leaf state {
|
||||
type org-openroadm-equipment-states-types:states;
|
||||
description
|
||||
"A xponder can be in one of the following
|
||||
states";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -42,3 +42,4 @@
|
||||
\./core/store/primitives/resources/impl/AtomixLeaderElectorCommands.java
|
||||
\./core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixLeaderElectorCommands.java
|
||||
\./core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixAtomicCounterMapCommands.java
|
||||
\./apps/openroadm/
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user