[AETHER-780] Decouple Stratum from ODTN
- Introduces a new driver for stratum-odtn devices
- The new driver depends on stratum and not viceversa
- Removes the odtn dep from stratum
- Updates stratum and tost bazel profiles
Change-Id: I7118c54c865305a7ace28b7316e3731833ddf7b4
diff --git a/drivers/stratum-odtn/BUILD b/drivers/stratum-odtn/BUILD
new file mode 100644
index 0000000..83300ab
--- /dev/null
+++ b/drivers/stratum-odtn/BUILD
@@ -0,0 +1,17 @@
+osgi_jar(
+ resources = glob(["src/main/resources/**"]),
+ resources_root = "src/main/resources",
+ deps = CORE_DEPS,
+)
+
+onos_app(
+ app_name = "org.onosproject.drivers.stratum-odtn",
+ category = "Drivers",
+ description = "Adds support for Stratum Odtn-based devices",
+ required_apps = [
+ "org.onosproject.drivers.stratum",
+ "org.onosproject.drivers.odtn-driver",
+ ],
+ title = "Stratum Odtn Drivers",
+ url = "http://onosproject.org",
+)
diff --git a/drivers/stratum-odtn/src/main/java/org/onosproject/drivers/stratumodtn/StratumOdtnDriversLoader.java b/drivers/stratum-odtn/src/main/java/org/onosproject/drivers/stratumodtn/StratumOdtnDriversLoader.java
new file mode 100644
index 0000000..449e040
--- /dev/null
+++ b/drivers/stratum-odtn/src/main/java/org/onosproject/drivers/stratumodtn/StratumOdtnDriversLoader.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2020-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.drivers.stratumodtn;
+
+import org.onosproject.net.driver.AbstractDriverLoader;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * Loader for Stratum Odtn device drivers.
+ */
+@Component(immediate = true)
+public class StratumOdtnDriversLoader extends AbstractDriverLoader {
+
+ public StratumOdtnDriversLoader() {
+ super("/stratumodtn-drivers.xml");
+ }
+}
diff --git a/drivers/stratum-odtn/src/main/java/org/onosproject/drivers/stratumodtn/package-info.java b/drivers/stratum-odtn/src/main/java/org/onosproject/drivers/stratumodtn/package-info.java
new file mode 100644
index 0000000..5db546e
--- /dev/null
+++ b/drivers/stratum-odtn/src/main/java/org/onosproject/drivers/stratumodtn/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2020-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Driver for Stratum Odtn devices.
+ */
+package org.onosproject.drivers.stratumodtn;
diff --git a/drivers/stratum-odtn/src/main/resources/stratumodtn-drivers.xml b/drivers/stratum-odtn/src/main/resources/stratumodtn-drivers.xml
new file mode 100644
index 0000000..611adef
--- /dev/null
+++ b/drivers/stratum-odtn/src/main/resources/stratumodtn-drivers.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2020-present Open Networking Foundation
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<drivers>
+ <driver name="stratum-fpm-odtn" manufacturer="Open Networking Foundation"
+ hwVersion="FPM" swVersion="Stratum" extends="stratum-fpm,gnmi-openconfig-terminal-device">
+ <!-- Here we add the original Stratum handshaker since the gnmi-openconfig-terminal-device
+ driver override the handshaker behaviour with GnmiHandshakerStandalone. -->
+ <behaviour api="org.onosproject.net.device.DeviceHandshaker"
+ impl="org.onosproject.drivers.stratum.StratumHandshaker"/>
+ </driver>
+</drivers>
diff --git a/drivers/stratum/BUILD b/drivers/stratum/BUILD
index 3094437..df5263f 100644
--- a/drivers/stratum/BUILD
+++ b/drivers/stratum/BUILD
@@ -22,7 +22,6 @@
"org.onosproject.generaldeviceprovider",
"org.onosproject.drivers.gnmi",
"org.onosproject.drivers.gnoi",
- "org.onosproject.drivers.odtn-driver",
"org.onosproject.drivers.p4runtime",
"org.onosproject.pipelines.basic",
],
diff --git a/drivers/stratum/src/main/resources/stratum-drivers.xml b/drivers/stratum/src/main/resources/stratum-drivers.xml
index f0848bc..86e18b5 100644
--- a/drivers/stratum/src/main/resources/stratum-drivers.xml
+++ b/drivers/stratum/src/main/resources/stratum-drivers.xml
@@ -36,12 +36,4 @@
<behaviour api="org.onosproject.net.behaviour.PiPipelineProgrammable"
impl="org.onosproject.drivers.stratum.FpmPipelineProgrammable"/>
</driver>
-
- <driver name="stratum-fpm-odtn" manufacturer="Open Networking Foundation"
- hwVersion="FPM" swVersion="Stratum" extends="stratum-fpm,gnmi-openconfig-terminal-device">
- <!-- Here we add the original Stratum handshaker since the gnmi-openconfig-terminal-device
- driver override the handshaker behaviour with GnmiHandshakerStandalone. -->
- <behaviour api="org.onosproject.net.device.DeviceHandshaker"
- impl="org.onosproject.drivers.stratum.StratumHandshaker"/>
- </driver>
</drivers>
diff --git a/tools/build/bazel/modules.bzl b/tools/build/bazel/modules.bzl
index b155042..d774d50 100644
--- a/tools/build/bazel/modules.bzl
+++ b/tools/build/bazel/modules.bzl
@@ -64,8 +64,8 @@
"//protocols/ovsdb/ctl:onos-protocols-ovsdb-ctl": ["sona"],
"//protocols/p4runtime/api:onos-protocols-p4runtime-api": ["stratum"],
"//protocols/p4runtime/model:onos-protocols-p4runtime-model": ["stratum"],
- "//protocols/rest/api:onos-protocols-rest-api": ["stratum", "tost"],
- "//protocols/rest/ctl:onos-protocols-rest-ctl": ["stratum", "tost"],
+ "//protocols/rest/api:onos-protocols-rest-api": [],
+ "//protocols/rest/ctl:onos-protocols-rest-ctl": [],
"//protocols/restconf/client/api:onos-protocols-restconf-client-api": [],
"//protocols/restconf/client/ctl:onos-protocols-restconf-client-ctl": [],
"//protocols/snmp/api:onos-protocols-snmp-api": [],
@@ -96,7 +96,7 @@
"//providers/ovsdb/device:onos-providers-ovsdb-device": ["sona"],
"//providers/ovsdb/tunnel:onos-providers-ovsdb-tunnel": ["sona"],
"//providers/p4runtime/packet:onos-providers-p4runtime-packet": ["stratum"],
- "//providers/rest/device:onos-providers-rest-device": ["stratum"],
+ "//providers/rest/device:onos-providers-rest-device": [],
"//providers/snmp/device:onos-providers-snmp-device": [],
"//providers/lisp/device:onos-providers-lisp-device": [],
"//providers/tl1/device:onos-providers-tl1-device": [],
@@ -110,7 +110,7 @@
"//providers/lldp:onos-providers-lldp-oar": ["seba", "stratum", "tost", "sona"],
"//providers/netcfghost:onos-providers-netcfghost-oar": ["seba", "stratum", "tost", "sona"],
"//providers/netcfglinks:onos-providers-netcfglinks-oar": ["stratum"],
- "//providers/netconf:onos-providers-netconf-oar": ["stratum", "tost"],
+ "//providers/netconf:onos-providers-netconf-oar": [],
"//providers/null:onos-providers-null-oar": [],
"//providers/openflow/app:onos-providers-openflow-app-oar": ["seba", "sona"],
"//providers/openflow/base:onos-providers-openflow-base-oar": ["seba", "sona"],
@@ -119,7 +119,7 @@
"//providers/ovsdb/host:onos-providers-ovsdb-host-oar": ["sona"],
"//providers/ovsdb/base:onos-providers-ovsdb-base-oar": ["sona"],
"//providers/p4runtime:onos-providers-p4runtime-oar": ["stratum", "tost"],
- "//providers/rest:onos-providers-rest-oar": ["stratum", "tost"],
+ "//providers/rest:onos-providers-rest-oar": [],
"//providers/snmp:onos-providers-snmp-oar": [],
"//providers/lisp:onos-providers-lisp-oar": [],
"//providers/tl1:onos-providers-tl1-oar": [],
@@ -152,16 +152,17 @@
"//drivers/lisp:onos-drivers-lisp-oar": [],
"//drivers/lumentum:onos-drivers-lumentum-oar": [],
"//drivers/mellanox:onos-drivers-mellanox-oar": ["stratum"],
- "//drivers/netconf:onos-drivers-netconf-oar": ["stratum", "tost"],
- "//drivers/odtn-driver:onos-drivers-odtn-driver-oar": ["stratum", "tost"],
+ "//drivers/netconf:onos-drivers-netconf-oar": [],
+ "//drivers/odtn-driver:onos-drivers-odtn-driver-oar": [],
"//drivers/oplink:onos-drivers-oplink-oar": [],
- "//drivers/optical:onos-drivers-optical-oar": ["stratum", "tost"],
+ "//drivers/optical:onos-drivers-optical-oar": [],
"//drivers/ovsdb:onos-drivers-ovsdb-oar": ["sona"],
"//drivers/p4runtime:onos-drivers-p4runtime-oar": ["stratum", "tost"],
"//drivers/polatis/netconf:onos-drivers-polatis-netconf-oar": [],
"//drivers/polatis/openflow:onos-drivers-polatis-openflow-oar": [],
"//drivers/server:onos-drivers-server-oar": [],
"//drivers/stratum:onos-drivers-stratum-oar": ["stratum", "tost"],
+ "//drivers/stratum-odtn:onos-drivers-stratum-odtn-oar": [],
"//drivers/zte:onos-drivers-zte-oar": [],
}
@@ -190,14 +191,14 @@
"//apps/bgprouter:onos-apps-bgprouter-oar": [],
"//apps/castor:onos-apps-castor-oar": [],
"//apps/cfm:onos-apps-cfm-oar": [],
- "//apps/config:onos-apps-config-oar": ["stratum", "tost"],
+ "//apps/config:onos-apps-config-oar": [],
"//apps/cord-support:onos-apps-cord-support-oar": [],
"//apps/cpman/app:onos-apps-cpman-app-oar": [],
"//apps/dhcp:onos-apps-dhcp-oar": [],
"//apps/dhcprelay:onos-apps-dhcprelay-oar": ["tost"],
"//apps/drivermatrix:onos-apps-drivermatrix-oar": [],
"//apps/events:onos-apps-events-oar": [],
- "//apps/faultmanagement:onos-apps-faultmanagement-oar": ["stratum", "tost"],
+ "//apps/faultmanagement:onos-apps-faultmanagement-oar": [],
"//apps/flowanalyzer:onos-apps-flowanalyzer-oar": [],
"//apps/flowspec-api:onos-apps-flowspec-api-oar": [],
"//apps/fwd:onos-apps-fwd-oar": [],
@@ -222,7 +223,7 @@
"//apps/newoptical:onos-apps-newoptical-oar": [],
"//apps/nodemetrics:onos-apps-nodemetrics-oar": [],
"//apps/node-diagnosis:onos-apps-node-diagnosis-oar": [],
- "//apps/odtn/api:onos-apps-odtn-api-oar": ["stratum", "tost"],
+ "//apps/odtn/api:onos-apps-odtn-api-oar": [],
"//apps/odtn/service:onos-apps-odtn-service-oar": [],
"//apps/ofagent:onos-apps-ofagent-oar": [],
"//apps/onlp-demo:onos-apps-onlp-demo-oar": [],
@@ -234,7 +235,7 @@
"//apps/openstacktelemetry:onos-apps-openstacktelemetry-oar": ["sona"],
"//apps/openstacktroubleshoot:onos-apps-openstacktroubleshoot-oar": ["sona"],
"//apps/openstackvtap:onos-apps-openstackvtap-oar": ["sona"],
- "//apps/optical-model:onos-apps-optical-model-oar": ["seba", "stratum", "tost", "sona"],
+ "//apps/optical-model:onos-apps-optical-model-oar": ["seba", "sona"],
"//apps/optical-rest:onos-apps-optical-rest-oar": [],
"//apps/p4-tutorial/mytunnel:onos-apps-p4-tutorial-mytunnel-oar": [],
"//apps/p4-tutorial/pipeconf:onos-apps-p4-tutorial-pipeconf-oar": [],
@@ -277,7 +278,7 @@
"//apps/workflow/ofoverlay:onos-apps-workflow-ofoverlay-oar": [],
"//apps/workflow:onos-apps-workflow-oar": [],
"//apps/yang-gui:onos-apps-yang-gui-oar": [],
- "//apps/yang:onos-apps-yang-oar": ["stratum", "tost"],
+ "//apps/yang:onos-apps-yang-oar": [],
"//web/gui:onos-web-gui-oar": ["sona", "tost"],
"//web/gui2:onos-web-gui2-oar": ["stratum", "tost"],
}
@@ -292,13 +293,13 @@
}
MODELS_MAP = {
- "//models/ietf:onos-models-ietf-oar": ["stratum", "tost"],
+ "//models/ietf:onos-models-ietf-oar": [],
"//models/common:onos-models-common-oar": [],
- "//models/openconfig:onos-models-openconfig-oar": ["stratum", "tost"],
- "//models/openconfig-infinera:onos-models-openconfig-infinera-oar": ["stratum", "tost"],
- "//models/openconfig-odtn:onos-models-openconfig-odtn-oar": ["stratum", "tost"],
+ "//models/openconfig:onos-models-openconfig-oar": [],
+ "//models/openconfig-infinera:onos-models-openconfig-infinera-oar": [],
+ "//models/openconfig-odtn:onos-models-openconfig-odtn-oar": [],
"//models/openroadm:onos-models-openroadm-oar": [],
- "//models/tapi:onos-models-tapi-oar": ["stratum", "tost"],
+ "//models/tapi:onos-models-tapi-oar": [],
"//models/polatis:onos-models-polatis-oar": [],
"//models/ciena/waveserverai:onos-models-ciena-waveserverai-oar": [],
}