aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/ovsdb/api/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/ovsdb/api/src/main/java')
-rw-r--r--framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridgeName.java2
-rw-r--r--framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java36
-rw-r--r--framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbDatapathId.java2
-rw-r--r--framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEvent.java4
-rw-r--r--framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbIfaceId.java2
-rw-r--r--framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbNodeId.java8
-rw-r--r--framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortName.java2
-rw-r--r--framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortNumber.java2
-rw-r--r--framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortType.java11
-rw-r--r--framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTunnelName.java2
-rw-r--r--framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java72
11 files changed, 113 insertions, 30 deletions
diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridgeName.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridgeName.java
index 899799fa..759ec499 100644
--- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridgeName.java
+++ b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbBridgeName.java
@@ -49,7 +49,7 @@ public final class OvsdbBridgeName {
@Override
public int hashCode() {
- return Objects.hash(value);
+ return value.hashCode();
}
@Override
diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java
index edd25ac6..cfd844d3 100644
--- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java
+++ b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java
@@ -16,6 +16,7 @@
package org.onosproject.ovsdb.controller;
import com.google.common.util.concurrent.ListenableFuture;
+
import org.onlab.packet.IpAddress;
import org.onosproject.net.DeviceId;
import org.onosproject.net.behaviour.ControllerInfo;
@@ -84,6 +85,15 @@ public interface OvsdbClientService extends OvsdbRPC {
void createBridge(String bridgeName);
/**
+ * Creates a bridge.
+ *
+ * @param bridgeName bridge name
+ * @param dpid data path id
+ * @param exPortName external port name
+ */
+ void createBridge(String bridgeName, String dpid, String exPortName);
+
+ /**
* Creates a bridge with given name and dpid.
* Sets the bridge's controller with given controllers.
*
@@ -204,7 +214,7 @@ public interface OvsdbClientService extends OvsdbRPC {
String getControllerUuid(String controllerName, String controllerTarget);
/**
- * Gets the Ovs uuid.
+ * Gets the OVS uuid.
*
* @param dbName database name
* @return ovs uuid, empty if no uuid is find
@@ -212,7 +222,7 @@ public interface OvsdbClientService extends OvsdbRPC {
String getOvsUuid(String dbName);
/**
- * Gets the ovsdb database schema.
+ * Gets the OVSDB database schema.
*
* @param dbName database name
* @return database schema
@@ -220,7 +230,7 @@ public interface OvsdbClientService extends OvsdbRPC {
ListenableFuture<DatabaseSchema> getOvsdbSchema(String dbName);
/**
- * Gets the ovsdb table updates.
+ * Gets the OVSDB table updates.
*
* @param dbName database name
* @param id random uuid
@@ -229,7 +239,7 @@ public interface OvsdbClientService extends OvsdbRPC {
ListenableFuture<TableUpdates> monitorTables(String dbName, String id);
/**
- * Gets the ovsdb config operation result.
+ * Gets the OVSDB config operation result.
*
* @param dbName database name
* @param operations the list of operations
@@ -239,7 +249,7 @@ public interface OvsdbClientService extends OvsdbRPC {
List<Operation> operations);
/**
- * Gets the ovsdb database schema from local.
+ * Gets the OVSDB database schema from local.
*
* @param dbName database name
* @return database schema
@@ -247,17 +257,17 @@ public interface OvsdbClientService extends OvsdbRPC {
DatabaseSchema getDatabaseSchema(String dbName);
/**
- * Gets the ovsdb row from local ovsdb store.
+ * Gets the OVSDB row from local OVSDB store.
*
* @param dbName database name
* @param tableName table name
* @param uuid row uuid
- * @return row ovsdb row
+ * @return row OVSDB row
*/
Row getRow(String dbName, String tableName, String uuid);
/**
- * Removes the ovsdb row from local ovsdb store.
+ * Removes the OVSDB row from local OVSDB store.
*
* @param dbName database name
* @param tableName table name
@@ -266,25 +276,25 @@ public interface OvsdbClientService extends OvsdbRPC {
void removeRow(String dbName, String tableName, String uuid);
/**
- * Updates the local ovsdb store.
+ * Updates the local OVSDB store.
*
* @param dbName database name
* @param tableName table name
* @param uuid row uuid
- * @param row ovsdb row
+ * @param row OVSDB row
*/
void updateOvsdbStore(String dbName, String tableName, String uuid, Row row);
/**
- * Gets ovsdb local ports.
+ * Gets OVSDB local ports.
*
* @param ifaceids the ifaceid that needed
- * @return ovsdb ports
+ * @return OVSDB ports
*/
Set<OvsdbPort> getLocalPorts(Iterable<String> ifaceids);
/**
- * Disconnects the ovsdb server.
+ * Disconnects the OVSDB server.
*/
void disconnect();
}
diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbDatapathId.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbDatapathId.java
index 8ccf45f2..02989afa 100644
--- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbDatapathId.java
+++ b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbDatapathId.java
@@ -47,7 +47,7 @@ public final class OvsdbDatapathId {
@Override
public int hashCode() {
- return Objects.hash(value);
+ return value.hashCode();
}
@Override
diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEvent.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEvent.java
index 35fac7bc..f68b3c8a 100644
--- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEvent.java
+++ b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbEvent.java
@@ -48,7 +48,7 @@ public final class OvsdbEvent<S> {
}
/**
- * Returns the type of the event.
+ * Returns the type of event.
*
* @return event type
*/
@@ -57,7 +57,7 @@ public final class OvsdbEvent<S> {
}
/**
- * Returns the subject of the event.
+ * Returns the subject of event.
*
* @return subject to which this event pertains
*/
diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbIfaceId.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbIfaceId.java
index 10ba80bc..bf724fa4 100644
--- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbIfaceId.java
+++ b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbIfaceId.java
@@ -47,7 +47,7 @@ public class OvsdbIfaceId {
@Override
public int hashCode() {
- return Objects.hash(value);
+ return value.hashCode();
}
@Override
diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbNodeId.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbNodeId.java
index f3bba4b8..60146c85 100644
--- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbNodeId.java
+++ b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbNodeId.java
@@ -22,8 +22,8 @@ import java.util.Objects;
import org.onlab.packet.IpAddress;
/**
- * The class representing a OpenStack Compute or Network nodeId. This class is
- * immutable.
+ * The class representing a nodeId of node which using ovsdb connection.
+ * This class is immutable.
*/
public final class OvsdbNodeId {
private static final String SCHEME = "ovsdb";
@@ -31,7 +31,7 @@ public final class OvsdbNodeId {
private final String ipAddress;
/**
- * Creates a new node identifier from a IpAddress ipAddress, a long port.
+ * Creates a new node identifier from an IpAddress ipAddress, a long port.
*
* @param ipAddress node IP address
* @param port node port
@@ -44,7 +44,7 @@ public final class OvsdbNodeId {
@Override
public int hashCode() {
- return Objects.hash(nodeId);
+ return nodeId.hashCode();
}
@Override
diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortName.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortName.java
index d9c7c2da..7d40e99f 100644
--- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortName.java
+++ b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortName.java
@@ -49,7 +49,7 @@ public final class OvsdbPortName {
@Override
public int hashCode() {
- return Objects.hash(value);
+ return value.hashCode();
}
@Override
diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortNumber.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortNumber.java
index bd094d04..86fc887a 100644
--- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortNumber.java
+++ b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortNumber.java
@@ -47,7 +47,7 @@ public final class OvsdbPortNumber {
@Override
public int hashCode() {
- return Objects.hash(value);
+ return Objects.hashCode(value);
}
@Override
diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortType.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortType.java
index bf05fc73..fb7cdb00 100644
--- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortType.java
+++ b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbPortType.java
@@ -21,14 +21,15 @@ import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Objects;
/**
- * The class representing a port type. This class is immutable.
+ * The class representing a port type.
+ * This class is immutable.
*/
public class OvsdbPortType {
private final String value;
/**
- * Constructor from a String port type.
+ * Constructor from a String.
*
* @param value the port type to use
*/
@@ -38,9 +39,9 @@ public class OvsdbPortType {
}
/**
- * Gets the value of the port type.
+ * Gets the value of port type.
*
- * @return the value of the port type
+ * @return the value of port type
*/
public String value() {
return value;
@@ -48,7 +49,7 @@ public class OvsdbPortType {
@Override
public int hashCode() {
- return Objects.hash(value);
+ return value.hashCode();
}
@Override
diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTunnelName.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTunnelName.java
index 80befab3..490d640b 100644
--- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTunnelName.java
+++ b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbTunnelName.java
@@ -48,7 +48,7 @@ public final class OvsdbTunnelName {
@Override
public int hashCode() {
- return Objects.hash(value);
+ return value.hashCode();
}
@Override
diff --git a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
index 3280ad34..c6038632 100644
--- a/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
+++ b/framework/src/onos/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
@@ -24,7 +24,9 @@ import com.google.common.collect.Sets;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture;
+
import io.netty.channel.Channel;
+
import org.onlab.packet.IpAddress;
import org.onosproject.net.DeviceId;
import org.onosproject.net.behaviour.ControllerInfo;
@@ -489,6 +491,76 @@ public class DefaultOvsdbClient
}
@Override
+ public void createBridge(String bridgeName, String dpid, String exPortName) {
+ log.debug("create bridge {}", bridgeName);
+
+ DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME);
+ if (dbSchema == null) {
+ log.warn("The schema is null");
+ return;
+ }
+
+ Bridge bridge = (Bridge) TableGenerator.createTable(dbSchema,
+ OvsdbTable.BRIDGE);
+ if (bridge == null) {
+ log.debug("Can not create bridge");
+ return;
+ }
+
+ Set<String> failModes = new HashSet<>();
+ failModes.add("secure");
+ bridge.setFailMode(failModes);
+
+ Set<String> protocols = new HashSet<>();
+ protocols.add(OvsdbConstant.OPENFLOW13);
+ bridge.setProtocols(protocols);
+
+ String ovsUuid = getOvsUuid(OvsdbConstant.DATABASENAME);
+ if (ovsUuid == null) {
+ log.warn("The Open_vSwitch is null");
+ return;
+ }
+
+ String bridgeUuid = getBridgeUuid(bridgeName);
+ if (bridgeUuid == null) {
+ log.debug("Create a new bridge");
+
+ bridge.setName(bridgeName);
+ if (dpid != null) {
+ Map<String, String> options = new HashMap<>();
+ options.put("datapath-id", dpid);
+ bridge.setOtherConfig(options);
+ }
+ bridgeUuid = insertConfig(OvsdbConstant.BRIDGE, "_uuid",
+ OvsdbConstant.DATABASENAME, "bridges",
+ ovsUuid, bridge.getRow());
+
+ if (bridgeUuid != null) {
+ Port port = (Port) TableGenerator.createTable(dbSchema,
+ OvsdbTable.PORT);
+ if (port != null) {
+ log.debug("the port is not null");
+ port.setName(bridgeName);
+
+ insertConfig(OvsdbConstant.PORT, "_uuid", "Bridge", "ports", bridgeUuid,
+ port.getRow());
+ }
+ }
+
+ } else {
+ log.info("Update a bridge");
+ updateConfig(OvsdbConstant.BRIDGE, "_uuid", bridgeUuid, bridge.getRow());
+ }
+ // Create external port
+ if (exPortName != null) {
+ createPort(bridgeName, exPortName);
+ }
+
+ setControllerAuto(bridgeUuid);
+ log.info("Create bridge success");
+ }
+
+ @Override
public boolean createBridge(String bridgeName, String dpid, List<ControllerInfo> controllers) {
DatabaseSchema dbSchema = schema.get(OvsdbConstant.DATABASENAME);