<artifactId>sal</artifactId>
<version>${sal.version}</version>
</dependency>
- <dependency>
- <groupId>org.opendaylight.controller</groupId>
- <artifactId>sal.connection</artifactId>
- <version>${sal.connection.version}</version>
- </dependency>
- <dependency>
- <groupId>org.opendaylight.controller</groupId>
- <artifactId>sal.connection.implementation</artifactId>
- <version>${sal.connection.version}</version>
- </dependency>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>sal.implementation</artifactId>
<networkconfig.neutron.version>0.5.0-SNAPSHOT</networkconfig.neutron.version>
<clustering.services.version>0.6.0-SNAPSHOT</clustering.services.version>
<sal.version>0.9.0-SNAPSHOT</sal.version>
- <sal.connection.version>0.2.0-SNAPSHOT</sal.connection.version>
<mdsal.version>1.2.0-SNAPSHOT</mdsal.version>
<opendaylight-l2-types.version>2013.08.27.7-SNAPSHOT</opendaylight-l2-types.version>
<openflowplugin.version>0.1.0-SNAPSHOT</openflowplugin.version>
<artifactId>sal-common-api</artifactId>
<version>${mdsal.version}</version>
</dependency>
- <dependency>
- <groupId>org.opendaylight.controller</groupId>
- <artifactId>sal.connection</artifactId>
- <version>${sal.connection.version}</version>
- </dependency>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>containermanager</artifactId>
mavenBundle("org.opendaylight.controller", "containermanager").versionAsInProject(),
mavenBundle("org.opendaylight.controller", "containermanager.it.implementation").versionAsInProject(),
mavenBundle("org.opendaylight.controller", "sal").versionAsInProject(),
- mavenBundle("org.opendaylight.controller", "sal.connection").versionAsInProject(),
- mavenBundle("org.opendaylight.controller", "sal.connection.implementation").versionAsInProject(),
mavenBundle("org.opendaylight.controller", "sal.implementation").versionAsInProject(),
mavenBundle("org.slf4j", "log4j-over-slf4j").versionAsInProject(),
mavenBundle("org.slf4j", "slf4j-api").versionAsInProject()
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
-import org.opendaylight.controller.sal.connection.ConnectionConstants;
import org.opendaylight.controller.sal.core.Node;
import org.opendaylight.controller.sal.utils.ServiceHelper;
import org.opendaylight.ovsdb.lib.OvsdbClient;
import org.opendaylight.ovsdb.lib.OvsdbConnection;
import org.opendaylight.ovsdb.lib.OvsdbConnectionListener;
+import org.opendaylight.ovsdb.plugin.api.ConnectionConstants;
import org.opendaylight.ovsdb.plugin.api.OvsdbConnectionService;
import org.junit.Rule;
<groupId>org.opendaylight.controller</groupId>
<artifactId>sal</artifactId>
</dependency>
- <dependency>
- <groupId>org.opendaylight.controller</groupId>
- <artifactId>sal.connection</artifactId>
- </dependency>
<dependency>
<groupId>org.opendaylight.ovsdb</groupId>
<artifactId>library</artifactId>
org.opendaylight.controller.sal.inventory,
org.opendaylight.controller.sal.match,
org.opendaylight.controller.sal.utils,
- org.opendaylight.controller.sal.connection,
org.opendaylight.ovsdb.lib.error,
org.opendaylight.ovsdb.lib.notation,
org.opendaylight.ovsdb.lib.operations,
--- /dev/null
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.ovsdb.plugin.api;
+
+/**
+ * ConnectionConstants
+ * Expand this enum as and when needed to support other connection parameters that
+ * might be needed for certain protocol plugins.
+ */
+public enum ConnectionConstants {
+ ADDRESS("address"),
+ PORT("port"),
+ PROTOCOL("protocol"),
+ USERNAME("username"),
+ PASSWORD("password");
+
+ private ConnectionConstants(String name) {
+ this.name = name;
+ }
+
+ private String name;
+
+ public String toString() {
+ return name;
+ }
+}
import java.util.List;
import java.util.Map;
-import org.opendaylight.controller.sal.connection.ConnectionConstants;
import org.opendaylight.controller.sal.core.Node;
public interface OvsdbConnectionService {
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ExecutionException;
-import org.opendaylight.controller.sal.connection.ConnectionConstants;
-import org.opendaylight.controller.sal.connection.IPluginInConnectionService;
import org.opendaylight.controller.sal.core.Node;
import org.opendaylight.controller.sal.core.Property;
import org.opendaylight.controller.sal.utils.Status;
import org.opendaylight.ovsdb.lib.schema.GenericTableSchema;
import org.opendaylight.ovsdb.lib.schema.TableSchema;
import org.opendaylight.ovsdb.plugin.api.Connection;
+import org.opendaylight.ovsdb.plugin.api.ConnectionConstants;
import org.opendaylight.ovsdb.plugin.internal.IPAddressProperty;
import org.opendaylight.ovsdb.plugin.internal.L4PortProperty;
import org.opendaylight.ovsdb.plugin.api.OvsdbConnectionService;
* Represents the openflow plugin component in charge of programming the flows
* the flow programming and relay them to functional modules above SAL.
*/
-public class ConnectionServiceImpl implements IPluginInConnectionService,
- OvsdbConnectionService,
+public class ConnectionServiceImpl implements OvsdbConnectionService,
OvsdbConnectionListener {
protected static final Logger logger = LoggerFactory.getLogger(ConnectionServiceImpl.class);
/* Then get connection clients */
Collection<OvsdbClient> connections = connectionLib.getConnections();
for (OvsdbClient client : connections) {
+ logger.info("CONNECT start connected clients client = {}", client);
this.connected(client);
}
}
}
}
- @Override
public Status disconnect(Node node) {
String identifier = (String) node.getID();
Connection connection = ovsdbConnections.get(identifier);
}
}
- @Override
public Node connect(String identifier, Map<ConnectionConstants, String> params) {
InetAddress address;
Integer port;
return nodes;
}
- @Override
- public void notifyClusterViewChanged() {
- }
-
- @Override
- public void notifyNodeDisconnectFromMaster(Node arg0) {
- }
-
private Node handleNewConnection(String identifier, OvsdbClient client) throws InterruptedException, ExecutionException {
Connection connection = new Connection(identifier, client);
Node node = connection.getNode();
import java.util.Hashtable;
import org.apache.felix.dm.Component;
-import org.opendaylight.controller.sal.connection.IPluginInConnectionService;
import org.opendaylight.controller.sal.core.ComponentActivatorAbstractBase;
import org.opendaylight.controller.sal.core.Node;
import org.opendaylight.controller.sal.core.NodeConnector;
// by SAL
props.put(GlobalConstants.PROTOCOLPLUGINTYPE.toString(), "OVS");
c.setInterface(
- new String[] {IPluginInConnectionService.class.getName(),
- OvsdbConnectionService.class.getName(),
+ new String[] {OvsdbConnectionService.class.getName(),
OvsdbConnectionListener.class.getName()}, props);
c.add(createServiceDependency()
.setService(OvsdbInventoryService.class)
<module>features/ovsdb</module>
<module>features/ovs-sfc</module>
<!-- OVSDB Distribution -->
- <!-- <module>distribution/opendaylight</module> -->
<module>distribution/opendaylight-karaf</module>
</modules>