package org.opendaylight.ovsdb.openstack.netvirt.impl;
-import org.opendaylight.neutron.spi.NeutronNetwork;
+import org.opendaylight.ovsdb.openstack.netvirt.translator.NeutronNetwork;
import org.opendaylight.ovsdb.openstack.netvirt.ConfigInterface;
import org.opendaylight.ovsdb.openstack.netvirt.NetworkHandler;
import org.opendaylight.ovsdb.openstack.netvirt.api.BridgeConfigurationManager;
import org.opendaylight.ovsdb.openstack.netvirt.api.Southbound;
import org.opendaylight.ovsdb.utils.config.ConfigProperties;
import org.opendaylight.ovsdb.utils.servicehelper.ServiceHelper;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeBase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeNetdev;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeSystem;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfo;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ManagerEntry;
return isCreated;
}
+
+
+ @Override
+ public String getExternalInterfaceName (Node node, String extNetwork) {
+ String phyIf = null;
+ String providerMaps = southbound.getOtherConfig(node, OvsdbTables.OPENVSWITCH,
+ configurationService.getProviderMappingsKey());
+ if (providerMaps != null) {
+ for (String map : providerMaps.split(",")) {
+ String[] pair = map.split(":");
+ if (pair[0].equals(extNetwork)) {
+ phyIf = pair[1];
+ break;
+ }
+ }
+ }
+ if (phyIf == null) {
+ LOG.error("External interface not found for Node: {}, Network {}",
+ node, extNetwork);
+ }
+ else {
+ LOG.info("External interface found for Node: {}, Network {} is {}",node,extNetwork,phyIf);
+ }
+ return phyIf;
+ }
+
+
+
@Override
public String getPhysicalInterfaceName (Node node, String physicalNetwork) {
String phyIf = null;
LOG.error("Add Port {} to Bridge {} failed", portNameExt, brExt);
return false;
}
+ String extNetName = getExternalInterfaceName(extBridgeNode, brExt);
+ if ( extNetName != null) {
+ if (!addPortToBridge(extBridgeNode, brExt, extNetName)) {
+ LOG.error("Add External Port {} to Bridge {} failed", extNetName, brExt);
+ return false;
+ }
+ LOG.info("Add External Port {} to Ext Bridge {} success", extNetName, brExt);
+ }
}
-
/* For vlan network types add physical port to br-int. */
if (network.getProviderNetworkType().equalsIgnoreCase(NetworkHandler.NETWORK_TYPE_VLAN)) {
String phyNetName = this.getPhysicalInterfaceName(bridgeNode, network.getProviderPhysicalNetwork());
}
}
- LOG.debug("createBridges: node: {}, status: success", bridgeNode);
+ LOG.info("createBridges: node: {}, status: success", bridgeNode);
return true;
}
boolean rv = true;
if ((!southbound.isBridgeOnOvsdbNode(ovsdbNode, bridgeName)) ||
(southbound.getBridgeFromConfig(ovsdbNode, bridgeName) == null)) {
- rv = southbound.addBridge(ovsdbNode, bridgeName, getControllersFromOvsdbNode(ovsdbNode));
+ Class<? extends DatapathTypeBase> dpType = null;
+ if (configurationService.isUserSpaceEnabled()) {
+ dpType = DatapathTypeNetdev.class;
+ }
+ rv = southbound.addBridge(ovsdbNode, bridgeName, getControllersFromOvsdbNode(ovsdbNode), dpType);
}
return rv;
}
} else if (tokens[0].equalsIgnoreCase("ptcp")) {
ConnectionInfo connectionInfo = ovsdbNodeAugmentation.getConnectionInfo();
if (connectionInfo != null && connectionInfo.getLocalIp() != null) {
- controllerIpStr = new String(connectionInfo.getLocalIp().getValue());
+ controllerIpStr = String.valueOf(connectionInfo.getLocalIp().getValue());
controllersStr.add(Constants.OPENFLOW_CONNECTION_PROTOCOL
+ ":" + controllerIpStr + ":" + Constants.OPENFLOW_PORT);
} else {