mirror of
https://github.com/opennetworkinglab/onos.git
synced 2026-05-04 19:56:49 +02:00
ONOS-3758 restructuring driver module with sub-modules for different drivers
Change-Id: I3c65d19be87066448655610abf9d8b89385a4141
This commit is contained in:
parent
c43fd1cc65
commit
238d96e22c
@ -13,18 +13,13 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.onosproject.driver;
|
||||
package org.onosproject.net.driver;
|
||||
|
||||
import org.apache.felix.scr.annotations.Activate;
|
||||
import org.apache.felix.scr.annotations.Component;
|
||||
import org.apache.felix.scr.annotations.Deactivate;
|
||||
import org.apache.felix.scr.annotations.Reference;
|
||||
import org.apache.felix.scr.annotations.ReferenceCardinality;
|
||||
import org.apache.felix.scr.annotations.Service;
|
||||
import org.onosproject.net.driver.DefaultDriverProviderService;
|
||||
import org.onosproject.net.driver.DriverAdminService;
|
||||
import org.onosproject.net.driver.DriverProvider;
|
||||
import org.onosproject.net.driver.XmlDriverLoader;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@ -33,13 +28,12 @@ import java.io.InputStream;
|
||||
/**
|
||||
* Bootstrap for built in drivers.
|
||||
*/
|
||||
@Service
|
||||
@Component(immediate = false)
|
||||
public class DefaultDrivers implements DefaultDriverProviderService {
|
||||
@Component
|
||||
public abstract class AbstractDriverLoader {
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
private static final String DRIVERS_XML = "/onos-drivers.xml";
|
||||
//private static final String DRIVERS_XML = "/onos-drivers.xml";
|
||||
|
||||
private DriverProvider provider;
|
||||
|
||||
@ -48,11 +42,9 @@ public class DefaultDrivers implements DefaultDriverProviderService {
|
||||
|
||||
@Activate
|
||||
protected void activate() {
|
||||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
try {
|
||||
InputStream stream = classLoader.getResourceAsStream(DRIVERS_XML);
|
||||
provider = new XmlDriverLoader(classLoader)
|
||||
.loadDrivers(stream, driverAdminService);
|
||||
provider = new XmlDriverLoader(getClassLoaderInstance())
|
||||
.loadDrivers(loadXMLDriversStream(), driverAdminService);
|
||||
driverAdminService.registerProvider(provider);
|
||||
} catch (Exception e) {
|
||||
log.error("Unable to load default drivers", e);
|
||||
@ -66,4 +58,8 @@ public class DefaultDrivers implements DefaultDriverProviderService {
|
||||
log.info("Stopped");
|
||||
}
|
||||
|
||||
protected abstract InputStream loadXMLDriversStream();
|
||||
|
||||
protected abstract ClassLoader getClassLoaderInstance();
|
||||
|
||||
}
|
||||
@ -101,7 +101,6 @@ public class DefaultDriver implements Driver {
|
||||
public Driver merge(Driver other) {
|
||||
checkArgument(parents == null || Objects.equals(parent(), other.parent()),
|
||||
"Parent drivers are not the same");
|
||||
|
||||
// Merge the behaviours.
|
||||
Map<Class<? extends Behaviour>, Class<? extends Behaviour>>
|
||||
behaviours = Maps.newHashMap();
|
||||
@ -261,4 +260,23 @@ public class DefaultDriver implements Driver {
|
||||
.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object driverToBeCompared) {
|
||||
if (this == driverToBeCompared) {
|
||||
return true;
|
||||
}
|
||||
if (driverToBeCompared == null || getClass() != driverToBeCompared.getClass()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
DefaultDriver driver = (DefaultDriver) driverToBeCompared;
|
||||
|
||||
return name.equals(driver.name());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hashCode(name);
|
||||
}
|
||||
}
|
||||
|
||||
27
drivers/ciena/features.xml
Normal file
27
drivers/ciena/features.xml
Normal file
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
~ Copyright 2016 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.
|
||||
-->
|
||||
<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="${project.artifactId}-${project.version}">
|
||||
<feature name="${project.artifactId}" version="${project.version}"
|
||||
description="${project.description}">
|
||||
<feature>onos-api</feature>
|
||||
<bundle>mvn:${project.groupId}/${project.artifactId}/${project.version}</bundle>
|
||||
|
||||
<bundle>mvn:${project.groupId}/onos-restsb-api/${project.version}</bundle>
|
||||
|
||||
<bundle>mvn:${project.groupId}/onos-drivers-utilities/${project.version}</bundle>
|
||||
</feature>
|
||||
</features>
|
||||
50
drivers/ciena/pom.xml
Normal file
50
drivers/ciena/pom.xml
Normal file
@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2016 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">
|
||||
<parent>
|
||||
<artifactId>onos-drivers-general</artifactId>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<version>1.5.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>onos-drivers-ciena</artifactId>
|
||||
<packaging>bundle</packaging>
|
||||
|
||||
<description>Ciena device drivers</description>
|
||||
|
||||
<properties>
|
||||
<onos.app.name>org.onosproject.drivers.ciena</onos.app.name>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-drivers-utilities</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-restsb-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright 2016 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.drivers.ciena;
|
||||
|
||||
import org.apache.felix.scr.annotations.Component;
|
||||
import org.onosproject.net.driver.AbstractDriverLoader;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
/**
|
||||
* Loader for Ciena device drivers from specific xml.
|
||||
*/
|
||||
@Component(immediate = true)
|
||||
public class CienaDriversLoader extends AbstractDriverLoader {
|
||||
|
||||
private static final String DRIVERS_XML = "/ciena-drivers.xml";
|
||||
|
||||
@Override
|
||||
protected InputStream loadXMLDriversStream() {
|
||||
return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ClassLoader getClassLoaderInstance() {
|
||||
return getClass().getClassLoader();
|
||||
}
|
||||
}
|
||||
@ -16,11 +16,11 @@
|
||||
*
|
||||
*/
|
||||
|
||||
package org.onosproject.driver.rest;
|
||||
package org.onosproject.drivers.ciena;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import org.apache.commons.configuration.HierarchicalConfiguration;
|
||||
import org.onosproject.driver.XmlConfigParser;
|
||||
import org.onosproject.drivers.utilities.XmlConfigParser;
|
||||
import org.onosproject.net.AnnotationKeys;
|
||||
import org.onosproject.net.CltSignalType;
|
||||
import org.onosproject.net.DefaultAnnotations;
|
||||
@ -15,6 +15,6 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implementations of the REST driver behaviours.
|
||||
* Package for Ciena device drivers.
|
||||
*/
|
||||
package org.onosproject.driver.rest;
|
||||
package org.onosproject.drivers.ciena;
|
||||
23
drivers/ciena/src/main/resources/ciena-drivers.xml
Normal file
23
drivers/ciena/src/main/resources/ciena-drivers.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2016 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.
|
||||
-->
|
||||
<drivers>
|
||||
<driver name="restCiena" manufacturer="Ciena" hwVersion="1.0.0" swVersion="1.0.0">
|
||||
<behaviour api="org.onosproject.net.behaviour.PortDiscovery"
|
||||
impl="org.onosproject.drivers.ciena.PortDiscoveryCienaWaveserverImpl"/>
|
||||
</driver>
|
||||
</drivers>
|
||||
|
||||
26
drivers/default/features.xml
Normal file
26
drivers/default/features.xml
Normal file
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
~ Copyright 2015 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.
|
||||
-->
|
||||
<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="${project.artifactId}-${project.version}">
|
||||
<feature name="${project.artifactId}" version="${project.version}"
|
||||
description="${project.description}">
|
||||
<feature>onos-api</feature>
|
||||
<bundle>mvn:${project.groupId}/${project.artifactId}/${project.version}</bundle>
|
||||
|
||||
<bundle>mvn:${project.groupId}/onos-of-api/${project.version}</bundle>
|
||||
|
||||
</feature>
|
||||
</features>
|
||||
42
drivers/default/pom.xml
Normal file
42
drivers/default/pom.xml
Normal file
@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2016 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">
|
||||
<parent>
|
||||
<artifactId>onos-drivers-general</artifactId>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<version>1.5.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<description>Default device drivers</description>
|
||||
<!--should be onos-drivers-default for clarity but left as onos-drivers for compatibility-->
|
||||
<artifactId>onos-drivers</artifactId>
|
||||
<packaging>bundle</packaging>
|
||||
|
||||
<properties>
|
||||
<onos.app.name>org.onosproject.drivers</onos.app.name>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-of-api</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright 2016 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.driver;
|
||||
|
||||
import org.apache.felix.scr.annotations.Component;
|
||||
import org.apache.felix.scr.annotations.Service;
|
||||
import org.onosproject.net.driver.AbstractDriverLoader;
|
||||
import org.onosproject.net.driver.DefaultDriverProviderService;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
/**
|
||||
* Loader for default device drivers from specific xml.
|
||||
*/
|
||||
@Service
|
||||
@Component(immediate = true)
|
||||
public class DefaultDriversLoader extends AbstractDriverLoader implements DefaultDriverProviderService {
|
||||
|
||||
private static final String DRIVERS_XML = "/onos-drivers.xml";
|
||||
|
||||
@Override
|
||||
protected InputStream loadXMLDriversStream() {
|
||||
return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ClassLoader getClassLoaderInstance() {
|
||||
return getClass().getClassLoader();
|
||||
}
|
||||
}
|
||||
@ -15,15 +15,14 @@
|
||||
*/
|
||||
package org.onosproject.driver.extensions;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.google.common.collect.Maps;
|
||||
import org.onlab.util.KryoNamespace;
|
||||
import org.onosproject.net.flow.AbstractExtension;
|
||||
import org.onosproject.net.flow.instructions.ExtensionTreatmentType;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.google.common.collect.Maps;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* Default implementation of Move treatment.
|
||||
@ -34,7 +34,6 @@ import org.onlab.packet.VlanId;
|
||||
import org.onlab.util.KryoNamespace;
|
||||
import org.onosproject.core.ApplicationId;
|
||||
import org.onosproject.core.CoreService;
|
||||
import org.onosproject.driver.pipeline.OFDPA2GroupHandler.OfdpaNextGroup;
|
||||
import org.onosproject.net.DeviceId;
|
||||
import org.onosproject.net.Port;
|
||||
import org.onosproject.net.PortNumber;
|
||||
@ -113,7 +112,7 @@ public class OFDPA2Pipeline extends AbstractHandlerBehaviour implements Pipeline
|
||||
.register(KryoNamespaces.API)
|
||||
.register(GroupKey.class)
|
||||
.register(DefaultGroupKey.class)
|
||||
.register(OfdpaNextGroup.class)
|
||||
.register(OFDPA2GroupHandler.OfdpaNextGroup.class)
|
||||
.register(byte[].class)
|
||||
.register(ArrayDeque.class)
|
||||
.build();
|
||||
@ -21,17 +21,11 @@
|
||||
impl="org.onosproject.driver.pipeline.DefaultSingleTablePipeline"/>
|
||||
<behaviour api="org.onosproject.openflow.controller.driver.OpenFlowSwitchDriver"
|
||||
impl="org.onosproject.driver.handshaker.DefaultSwitchHandshaker"/>
|
||||
<behaviour api="org.onosproject.net.behaviour.TunnelConfig"
|
||||
impl="org.onosproject.driver.ovsdb.OvsdbTunnelConfig"/>
|
||||
<behaviour api="org.onosproject.net.behaviour.BridgeConfig"
|
||||
impl="org.onosproject.driver.ovsdb.OvsdbBridgeConfig"/>
|
||||
</driver>
|
||||
<driver name="ovs" extends="default"
|
||||
manufacturer="Nicira, Inc\." hwVersion="Open vSwitch" swVersion="2\..*">
|
||||
<behaviour api="org.onosproject.openflow.controller.driver.OpenFlowSwitchDriver"
|
||||
impl="org.onosproject.driver.handshaker.NiciraSwitchHandshaker"/>
|
||||
<behaviour api="org.onosproject.net.behaviour.ControllerConfig"
|
||||
impl="org.onosproject.driver.ovsdb.OvsdbControllerConfig"/>
|
||||
<behaviour api="org.onosproject.openflow.controller.ExtensionTreatmentInterpreter"
|
||||
impl="org.onosproject.driver.extensions.NiciraExtensionTreatmentInterpreter" />
|
||||
<behaviour api="org.onosproject.net.behaviour.ExtensionTreatmentResolver"
|
||||
@ -45,20 +39,6 @@
|
||||
<behaviour api="org.onosproject.net.behaviour.MplsQuery"
|
||||
impl="org.onosproject.driver.query.FullMplsAvailable" />
|
||||
</driver>
|
||||
<!--This driver is for simulated NETCONF devices through of-config tool on top og OVSDB-->
|
||||
<driver name="ovs-netconf" extends="default,ovs"
|
||||
manufacturer="" hwVersion="" swVersion="">
|
||||
<behaviour api="org.onosproject.openflow.controller.driver.OpenFlowSwitchDriver"
|
||||
impl="org.onosproject.driver.handshaker.NiciraSwitchHandshaker"/>
|
||||
<behaviour api="org.onosproject.net.behaviour.ControllerConfig"
|
||||
impl="org.onosproject.driver.netconf.NetconfControllerConfig"/>
|
||||
<behaviour api="org.onosproject.net.behaviour.ConfigGetter"
|
||||
impl="org.onosproject.driver.netconf.NetconfConfigGetter"/>
|
||||
</driver>
|
||||
<driver name="netconf" extends="default">
|
||||
<behaviour api="org.onosproject.net.behaviour.ConfigGetter"
|
||||
impl="org.onosproject.driver.netconf.NetconfConfigGetter"/>
|
||||
</driver>
|
||||
<driver name="ovs-corsa" extends="ovs"
|
||||
manufacturer="Corsa" hwVersion="emulation" swVersion="0.0.0">
|
||||
<behaviour api="org.onosproject.net.behaviour.Pipeliner"
|
||||
@ -128,10 +108,6 @@
|
||||
<behaviour api="org.onosproject.net.behaviour.Pipeliner"
|
||||
impl="org.onosproject.driver.pipeline.OltPipeline"/>
|
||||
</driver>
|
||||
<driver name="restCiena" manufacturer="Ciena" hwVersion="1.0.0" swVersion="1.0.0">
|
||||
<behaviour api="org.onosproject.net.behaviour.PortDiscovery"
|
||||
impl="org.onosproject.driver.rest.PortDiscoveryCienaWaveserverImpl"/>
|
||||
</driver>
|
||||
<!-- The SoftRouter driver is meant to be used by any software/NPU based
|
||||
~ switch that wishes to implement a simple 2-table router. To use this
|
||||
~ driver, configure ONOS with the dpid of the device, or extend the
|
||||
37
drivers/fujitsu/pom.xml
Normal file
37
drivers/fujitsu/pom.xml
Normal file
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2016 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">
|
||||
<parent>
|
||||
<artifactId>onos-drivers-general</artifactId>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<version>1.5.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<description>Fujitsu device drivers</description>
|
||||
|
||||
<artifactId>onos-drivers-fujitsu</artifactId>
|
||||
<packaging>bundle</packaging>
|
||||
|
||||
<properties>
|
||||
<onos.app.name>org.onosproject.drivers.fujitsu</onos.app.name>
|
||||
</properties>
|
||||
|
||||
</project>
|
||||
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright 2016 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.drivers.fujitsu;
|
||||
|
||||
import org.apache.felix.scr.annotations.Component;
|
||||
import org.onosproject.net.driver.AbstractDriverLoader;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
/**
|
||||
* Loader for Fujitsu device drivers from specific xml.
|
||||
*/
|
||||
@Component(immediate = true)
|
||||
public class FujitsuDriversLoader extends AbstractDriverLoader {
|
||||
|
||||
private static final String DRIVERS_XML = "/fujitsu-drivers.xml";
|
||||
|
||||
@Override
|
||||
protected InputStream loadXMLDriversStream() {
|
||||
return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ClassLoader getClassLoaderInstance() {
|
||||
return getClass().getClassLoader();
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2015 Open Networking Laboratory
|
||||
* Copyright 2016 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.
|
||||
@ -15,6 +15,6 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implementations of OVSDB protocol configurations.
|
||||
* Package for Ciena device drivers.
|
||||
*/
|
||||
package org.onosproject.driver.ovsdb;
|
||||
package org.onosproject.drivers.fujitsu;
|
||||
21
drivers/fujitsu/src/main/resources/onos-drivers.xml
Normal file
21
drivers/fujitsu/src/main/resources/onos-drivers.xml
Normal file
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2016 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.
|
||||
-->
|
||||
<drivers>
|
||||
<driver>
|
||||
</driver>
|
||||
</drivers>
|
||||
|
||||
28
drivers/netconf/features.xml
Normal file
28
drivers/netconf/features.xml
Normal file
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
|
||||
<!--
|
||||
~ Copyright 2016 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.
|
||||
-->
|
||||
<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="${project.artifactId}-${project.version}">
|
||||
<feature name="${project.artifactId}" version="${project.version}"
|
||||
description="${project.description}">
|
||||
<feature>onos-api</feature>
|
||||
<bundle>mvn:${project.groupId}/${project.artifactId}/${project.version}</bundle>
|
||||
|
||||
<bundle>mvn:${project.groupId}/onos-drivers-utilities/${project.version}</bundle>
|
||||
|
||||
<bundle>mvn:${project.groupId}/onos-netconf-api/${project.version}</bundle>
|
||||
</feature>
|
||||
</features>
|
||||
50
drivers/netconf/pom.xml
Normal file
50
drivers/netconf/pom.xml
Normal file
@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2016 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">
|
||||
<parent>
|
||||
<artifactId>onos-drivers-general</artifactId>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<version>1.5.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>onos-drivers-netconf</artifactId>
|
||||
<packaging>bundle</packaging>
|
||||
|
||||
<description>Netconf device drivers</description>
|
||||
|
||||
<properties>
|
||||
<onos.app.name>org.onosproject.drivers.netconf</onos.app.name>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-netconf-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-drivers-utilities</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.onosproject.driver.netconf;
|
||||
package org.onosproject.drivers.netconf;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import org.onosproject.net.DeviceId;
|
||||
@ -31,7 +31,6 @@ import static org.slf4j.LoggerFactory.getLogger;
|
||||
/**
|
||||
* Gets the configuration of the specified type from the specified device. If a
|
||||
* failure occurs it returns the error string found in UNABLE_TO_READ_CONFIG.
|
||||
*
|
||||
* This is a temporary development tool for use until yang integration is complete.
|
||||
* This is not a properly specified behavior implementation. DO NOT USE AS AN EXAMPLE.
|
||||
*/
|
||||
@ -14,10 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.onosproject.driver.netconf;
|
||||
package org.onosproject.drivers.netconf;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import org.onosproject.driver.XmlConfigParser;
|
||||
import org.onosproject.drivers.utilities.XmlConfigParser;
|
||||
import org.onosproject.net.DeviceId;
|
||||
import org.onosproject.net.behaviour.ControllerConfig;
|
||||
import org.onosproject.net.behaviour.ControllerInfo;
|
||||
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright 2016 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.drivers.netconf;
|
||||
|
||||
import org.apache.felix.scr.annotations.Component;
|
||||
import org.onosproject.net.driver.AbstractDriverLoader;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
/**
|
||||
* Loader for NETCONF device drivers from specific xml.
|
||||
*/
|
||||
@Component(immediate = true)
|
||||
public class NetconfDriversLoader extends AbstractDriverLoader {
|
||||
|
||||
private static final String DRIVERS_XML = "/netconf-drivers.xml";
|
||||
|
||||
@Override
|
||||
protected InputStream loadXMLDriversStream() {
|
||||
return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ClassLoader getClassLoaderInstance() {
|
||||
return getClass().getClassLoader();
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2015 Open Networking Laboratory
|
||||
* Copyright 2016 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.
|
||||
@ -15,6 +15,6 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implementations of the Netconf driver behaviours.
|
||||
* Package for NETCONF device drivers.
|
||||
*/
|
||||
package org.onosproject.driver.netconf;
|
||||
package org.onosproject.drivers.netconf;
|
||||
31
drivers/netconf/src/main/resources/netconf-drivers.xml
Normal file
31
drivers/netconf/src/main/resources/netconf-drivers.xml
Normal file
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2016 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.
|
||||
-->
|
||||
<drivers>
|
||||
<!--This driver is for simulated NETCONF devices through of-config tool on top og OVSDB-->
|
||||
<driver name="ovs-netconf" extends="default,ovs"
|
||||
manufacturer="" hwVersion="" swVersion="">
|
||||
<behaviour api="org.onosproject.net.behaviour.ControllerConfig"
|
||||
impl="org.onosproject.drivers.netconf.NetconfControllerConfig"/>
|
||||
<behaviour api="org.onosproject.net.behaviour.ConfigGetter"
|
||||
impl="org.onosproject.drivers.netconf.NetconfConfigGetter"/>
|
||||
</driver>
|
||||
<driver name="netconf" extends="default">
|
||||
<behaviour api="org.onosproject.net.behaviour.ConfigGetter"
|
||||
impl="org.onosproject.drivers.netconf.NetconfConfigGetter"/>
|
||||
</driver>
|
||||
</drivers>
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
|
||||
<!--
|
||||
~ Copyright 2015 Open Networking Laboratory
|
||||
~ Copyright 2016 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.
|
||||
@ -14,18 +15,14 @@
|
||||
~ See the License for the specific language governing permissions and
|
||||
~ limitations under the License.
|
||||
-->
|
||||
|
||||
<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="${project.artifactId}-${project.version}">
|
||||
<feature name="${project.artifactId}" version="${project.version}"
|
||||
description="${project.description}">
|
||||
<feature>onos-api</feature>
|
||||
<bundle>mvn:${project.groupId}/${project.artifactId}/${project.version}</bundle>
|
||||
<bundle>mvn:${project.groupId}/onos-of-api/${project.version}</bundle>
|
||||
|
||||
<bundle>mvn:${project.groupId}/onos-ovsdb-api/${project.version}</bundle>
|
||||
<bundle>mvn:${project.groupId}/onos-ovsdb-rfc/${project.version}</bundle>
|
||||
|
||||
<bundle>mvn:${project.groupId}/onos-netconf-api/${project.version}</bundle>
|
||||
|
||||
<bundle>mvn:${project.groupId}/onos-restsb-api/${project.version}</bundle>
|
||||
</feature>
|
||||
</features>
|
||||
51
drivers/ovsdb/pom.xml
Normal file
51
drivers/ovsdb/pom.xml
Normal file
@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2016 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">
|
||||
<parent>
|
||||
<artifactId>onos-drivers-general</artifactId>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<version>1.5.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>onos-drivers-ovsdb</artifactId>
|
||||
<packaging>bundle</packaging>
|
||||
|
||||
<description>ovsdb device drivers</description>
|
||||
|
||||
<properties>
|
||||
<onos.app.name>org.onosproject.drivers.ovsdb</onos.app.name>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-ovsdb-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-ovsdb-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<classifier>tests</classifier>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2015 Open Networking Laboratory
|
||||
* Copyright 2016 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.
|
||||
@ -13,13 +13,8 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.onosproject.driver.ovsdb;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
package org.onosproject.drivers.ovsdb;
|
||||
|
||||
import org.onlab.packet.IpAddress;
|
||||
import org.onosproject.net.DefaultAnnotations;
|
||||
@ -40,6 +35,12 @@ import org.onosproject.ovsdb.controller.OvsdbController;
|
||||
import org.onosproject.ovsdb.controller.OvsdbNodeId;
|
||||
import org.onosproject.ovsdb.controller.OvsdbPort;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* The implementation of BridageConfig.
|
||||
*/
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2015 Open Networking Laboratory
|
||||
* Copyright 2016 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.
|
||||
@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.onosproject.driver.ovsdb;
|
||||
package org.onosproject.drivers.ovsdb;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import org.onlab.packet.IpAddress;
|
||||
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright 2016 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.drivers.ovsdb;
|
||||
|
||||
import org.apache.felix.scr.annotations.Component;
|
||||
import org.onosproject.net.driver.AbstractDriverLoader;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
/**
|
||||
* Loader for OVSDB device drivers from specific xml.
|
||||
*/
|
||||
@Component(immediate = true)
|
||||
public class OvsdbDriversLoader extends AbstractDriverLoader {
|
||||
|
||||
private static final String DRIVERS_XML = "/ovsdb-drivers.xml";
|
||||
|
||||
@Override
|
||||
protected InputStream loadXMLDriversStream() {
|
||||
return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ClassLoader getClassLoaderInstance() {
|
||||
return getClass().getClassLoader();
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2015 Open Networking Laboratory
|
||||
* Copyright 2016 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.
|
||||
@ -13,12 +13,8 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.onosproject.driver.ovsdb;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
package org.onosproject.drivers.ovsdb;
|
||||
|
||||
import org.onlab.packet.IpAddress;
|
||||
import org.onosproject.net.DefaultAnnotations;
|
||||
@ -36,6 +32,11 @@ import org.onosproject.ovsdb.controller.OvsdbController;
|
||||
import org.onosproject.ovsdb.controller.OvsdbNodeId;
|
||||
import org.onosproject.ovsdb.controller.OvsdbTunnel;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* OVSDB-based implementation of tunnel config behaviour.
|
||||
*/
|
||||
@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Copyright 2016 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 for OVSDB device drivers.
|
||||
*/
|
||||
package org.onosproject.drivers.ovsdb;
|
||||
31
drivers/ovsdb/src/main/resources/ovsdb-drivers.xml
Normal file
31
drivers/ovsdb/src/main/resources/ovsdb-drivers.xml
Normal file
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2015 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.
|
||||
-->
|
||||
<drivers>
|
||||
<driver name="default"
|
||||
manufacturer="ON.Lab" hwVersion="0.0.1" swVersion="0.0.1">
|
||||
<behaviour api="org.onosproject.net.behaviour.TunnelConfig"
|
||||
impl="org.onosproject.drivers.ovsdb.OvsdbTunnelConfig"/>
|
||||
<behaviour api="org.onosproject.net.behaviour.BridgeConfig"
|
||||
impl="org.onosproject.drivers.ovsdb.OvsdbBridgeConfig"/>
|
||||
</driver>
|
||||
<driver name="ovs" extends="default"
|
||||
manufacturer="Nicira, Inc\." hwVersion="Open vSwitch" swVersion="2\..*">
|
||||
<behaviour api="org.onosproject.net.behaviour.ControllerConfig"
|
||||
impl="org.onosproject.drivers.ovsdb.OvsdbControllerConfig"/>
|
||||
</driver>
|
||||
</drivers>
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.onosproject.driver.ovsdb;
|
||||
package org.onosproject.drivers.ovsdb;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import org.junit.Before;
|
||||
@ -19,7 +19,6 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
|
||||
<parent>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos</artifactId>
|
||||
@ -27,14 +26,23 @@
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>onos-drivers</artifactId>
|
||||
<packaging>bundle</packaging>
|
||||
<artifactId>onos-drivers-general</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<description>Builtin device drivers</description>
|
||||
<description>Builtin device drivers general module</description>
|
||||
|
||||
<properties>
|
||||
<modules>
|
||||
<module>default</module>
|
||||
<module>ciena</module>
|
||||
<module>fujitsu</module>
|
||||
<module>netconf</module>
|
||||
<module>ovsdb</module>
|
||||
<module>utilities</module>
|
||||
</modules>
|
||||
|
||||
<!--<properties>
|
||||
<onos.app.name>org.onosproject.drivers</onos.app.name>
|
||||
</properties>
|
||||
</properties>-->
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
@ -47,37 +55,16 @@
|
||||
<artifactId>onos-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-of-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-core-serializers</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-ovsdb-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.easymock</groupId>
|
||||
<artifactId>easymock</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-restsb-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-netconf-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>org.apache.felix.scr.annotations</artifactId>
|
||||
@ -94,13 +81,6 @@
|
||||
<artifactId>onlab-junit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-ovsdb-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<classifier>tests</classifier>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
||||
25
drivers/utilities/features.xml
Normal file
25
drivers/utilities/features.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
|
||||
<!--
|
||||
~ Copyright 2016 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.
|
||||
-->
|
||||
|
||||
<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="${project.artifactId}-${project.version}">
|
||||
<feature name="${project.artifactId}" version="${project.version}"
|
||||
description="${project.description}">
|
||||
<feature>onos-api</feature>
|
||||
<bundle>mvn:${project.groupId}/${project.artifactId}/${project.version}</bundle>
|
||||
</feature>
|
||||
</features>
|
||||
33
drivers/utilities/pom.xml
Normal file
33
drivers/utilities/pom.xml
Normal file
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2016 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">
|
||||
<parent>
|
||||
<artifactId>onos-drivers-general</artifactId>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<version>1.5.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<description>Device drivers utilities</description>
|
||||
|
||||
<artifactId>onos-drivers-utilities</artifactId>
|
||||
<packaging>bundle</packaging>
|
||||
|
||||
</project>
|
||||
@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.onosproject.driver;
|
||||
package org.onosproject.drivers.utilities;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import org.apache.commons.configuration.ConfigurationException;
|
||||
@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Copyright 2016 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 for device drivers utilities.
|
||||
*/
|
||||
package org.onosproject.drivers.utilities;
|
||||
36
drivers/utilities/src/main/resources/controllers.xml
Normal file
36
drivers/utilities/src/main/resources/controllers.xml
Normal file
@ -0,0 +1,36 @@
|
||||
<!--
|
||||
~ Copyright 2015 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.
|
||||
-->
|
||||
|
||||
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
|
||||
<edit-config>
|
||||
<target>
|
||||
</target>
|
||||
<default-operation>
|
||||
</default-operation>
|
||||
<config>
|
||||
<capable-switch xmlns="urn:onf:config:yang">
|
||||
<id></id>
|
||||
<logical-switches>
|
||||
<switch>
|
||||
<id></id>
|
||||
<controllers>
|
||||
</controllers>
|
||||
</switch>
|
||||
</logical-switches>
|
||||
</capable-switch>
|
||||
</config>
|
||||
</edit-config>
|
||||
</rpc>
|
||||
@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.onosproject.driver;
|
||||
package org.onosproject.drivers.utilities;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.onlab.packet.IpAddress;
|
||||
@ -27,7 +27,6 @@ import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.onosproject.driver.XmlConfigParser.*;
|
||||
|
||||
/**
|
||||
* Test the XML document Parsing for netconf configuration.
|
||||
@ -37,8 +36,9 @@ public class XmlConfigParserTest {
|
||||
|
||||
@Test
|
||||
public void basics() throws IOException {
|
||||
InputStream stream = getClass().getResourceAsStream("testConfig.xml");
|
||||
List<ControllerInfo> controllers = parseStreamControllers(loadXml(stream));
|
||||
InputStream stream = getClass().getResourceAsStream("/testConfig.xml");
|
||||
List<ControllerInfo> controllers = XmlConfigParser
|
||||
.parseStreamControllers(XmlConfigParser.loadXml(stream));
|
||||
assertTrue(controllers.get(0).equals(new ControllerInfo(
|
||||
IpAddress.valueOf("10.128.12.1"), 6653, "tcp")));
|
||||
assertTrue(controllers.get(1).equals(new ControllerInfo(
|
||||
@ -48,28 +48,34 @@ public class XmlConfigParserTest {
|
||||
|
||||
@Test
|
||||
public void switchId() {
|
||||
InputStream stream = getClass().getResourceAsStream("testConfig.xml");
|
||||
String switchId = parseSwitchId(loadXml(stream));
|
||||
InputStream stream = getClass().getResourceAsStream("/testConfig.xml");
|
||||
String switchId = XmlConfigParser.parseSwitchId(XmlConfigParser
|
||||
.loadXml(stream));
|
||||
assertTrue(switchId.equals("ofc-bridge"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void capableSwitchId() {
|
||||
InputStream stream = getClass().getResourceAsStream("testConfig.xml");
|
||||
String capableSwitchId = parseCapableSwitchId(loadXml(stream));
|
||||
InputStream stream = getClass().getResourceAsStream("/testConfig.xml");
|
||||
String capableSwitchId = XmlConfigParser
|
||||
.parseCapableSwitchId(XmlConfigParser.loadXml(stream));
|
||||
assertTrue(capableSwitchId.equals("openvswitch"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void controllersConfig() {
|
||||
InputStream streamOrig = getClass().getResourceAsStream("testConfig.xml");
|
||||
InputStream streamCFG = XmlConfigParser.class
|
||||
.getResourceAsStream("controllers.xml");
|
||||
String config = createControllersConfig(loadXml(streamCFG),
|
||||
loadXml(streamOrig), "running", "merge",
|
||||
"create", new ArrayList<>(Arrays.asList(
|
||||
new ControllerInfo(IpAddress.valueOf("192.168.1.1"),
|
||||
5000, "tcp"))));
|
||||
InputStream streamOrig = getClass().getResourceAsStream("/testConfig.xml");
|
||||
InputStream streamCFG = XmlConfigParser.class.getResourceAsStream("/controllers.xml");
|
||||
String config = XmlConfigParser
|
||||
.createControllersConfig(XmlConfigParser.loadXml(streamCFG),
|
||||
XmlConfigParser.loadXml(streamOrig),
|
||||
"running", "merge", "create",
|
||||
new ArrayList<>(
|
||||
Arrays.asList(
|
||||
new ControllerInfo(
|
||||
IpAddress.valueOf(
|
||||
"192.168.1.1"),
|
||||
5000, "tcp"))));
|
||||
assertTrue(config.contains("192.168.1.1"));
|
||||
assertTrue(config.contains("tcp"));
|
||||
assertTrue(config.contains("5000"));
|
||||
@ -15,16 +15,13 @@
|
||||
~ limitations under the License.
|
||||
-->
|
||||
<app name="org.onosproject.netconf" origin="ON.Lab" version="${project.version}"
|
||||
category="default" url="http://onosproject.org"
|
||||
category="default" url="http://onosproject.org" apps="org.onosproject.drivers.netconf"
|
||||
featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
|
||||
features="${project.artifactId}">
|
||||
<description>${project.description}</description>
|
||||
<artifact>mvn:${project.groupId}/onos-netconf-api/${project.version}</artifact>
|
||||
<artifact>mvn:${project.groupId}/onos-netconf-ctl/${project.version}</artifact>
|
||||
<artifact>mvn:${project.groupId}/onos-drivers/${project.version}</artifact>
|
||||
|
||||
<artifact>mvn:${project.groupId}/onos-netconf-provider-device/${project.version}</artifact>
|
||||
|
||||
<!--<artifact>mvn:${project.groupId}/onos-netconf-provider-device/${project.version}</artifact>-->
|
||||
<!-- Question: should there be the jnc stuff here? Or is it just for testing -->
|
||||
</app>
|
||||
|
||||
@ -23,7 +23,6 @@
|
||||
<bundle>mvn:${project.groupId}/onos-netconf-ctl/${project.version}</bundle>
|
||||
|
||||
<bundle>mvn:${project.groupId}/onos-netconf-provider-device/${project.version}</bundle>
|
||||
<!-- Question: should there be the jnc stuff here? Or is it just for testing -->
|
||||
</feature>
|
||||
</features>
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<artifact>mvn:${project.groupId}/onos-ovsdb-rfc/${project.version}</artifact>
|
||||
<artifact>mvn:${project.groupId}/onos-ovsdb-api/${project.version}</artifact>
|
||||
<artifact>mvn:${project.groupId}/onos-ovsdb-ctl/${project.version}</artifact>
|
||||
<artifact>mvn:${project.groupId}/onos-drivers/${project.version}</artifact>
|
||||
<artifact>mvn:${project.groupId}/onos-drivers-ovsdb/${project.version}</artifact>
|
||||
|
||||
<artifact>mvn:${project.groupId}/onos-ovsdb-provider-device/${project.version}</artifact>
|
||||
<artifact>mvn:${project.groupId}/onos-ovsdb-provider-tunnel/${project.version}</artifact>
|
||||
|
||||
@ -27,6 +27,8 @@
|
||||
<bundle>mvn:${project.groupId}/onos-ovsdb-api/${project.version}</bundle>
|
||||
<bundle>mvn:${project.groupId}/onos-ovsdb-ctl/${project.version}</bundle>
|
||||
|
||||
<bundle>mvn:${project.groupId}/onos-drivers-ovsdb/${project.version}</bundle>
|
||||
|
||||
<bundle>mvn:${project.groupId}/onos-ovsdb-provider-device/${project.version}</bundle>
|
||||
<bundle>mvn:${project.groupId}/onos-ovsdb-provider-tunnel/${project.version}</bundle>
|
||||
</feature>
|
||||
|
||||
@ -49,7 +49,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.onosproject</groupId>
|
||||
<artifactId>onos-drivers</artifactId>
|
||||
<artifactId>onos-drivers-ovsdb</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
||||
@ -15,13 +15,12 @@
|
||||
~ limitations under the License.
|
||||
-->
|
||||
<app name="org.onosproject.restsb" origin="ON.Lab" version="${project.version}"
|
||||
category="default" url="http://onosproject.org"
|
||||
category="default" url="http://onosproject.org" apps="org.onosproject.drivers.ciena"
|
||||
featuresRepo="mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features"
|
||||
features="${project.artifactId}">
|
||||
<description>${project.description}</description>
|
||||
<artifact>mvn:${project.groupId}/onos-restsb-api/${project.version}</artifact>
|
||||
<artifact>mvn:${project.groupId}/onos-restsb-ctl/${project.version}</artifact>
|
||||
<artifact>mvn:${project.groupId}/onos-drivers/${project.version}</artifact>
|
||||
|
||||
<artifact>mvn:${project.groupId}/onos-restsb-provider-device/${project.version}</artifact>
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user