[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>