t.put(LogicalDatastoreType.CONFIGURATION, bridgeInterfaceEntryIid, entryBuilder.build(), true);
}
- public static void createBridgeInterfaceEntryInConfigDS(BridgeEntryKey bridgeEntryKey,
- BridgeInterfaceEntryKey bridgeInterfaceEntryKey,
- String childInterface,
- InstanceIdentifier<TerminationPoint> tpIid,
- WriteTransaction t) {
- if (tpIid == null) {
- createBridgeInterfaceEntryInConfigDS(bridgeEntryKey, bridgeInterfaceEntryKey, childInterface, t);
- return;
- }
-
- InstanceIdentifier<BridgeInterfaceEntry> bridgeInterfaceEntryIid =
- InterfaceMetaUtils.getBridgeInterfaceEntryIdentifier(bridgeEntryKey, bridgeInterfaceEntryKey);
- BridgeInterfaceEntryBuilder entryBuilder = new BridgeInterfaceEntryBuilder().setKey(bridgeInterfaceEntryKey)
- .setInterfaceName(childInterface);
- t.put(LogicalDatastoreType.CONFIGURATION, bridgeInterfaceEntryIid, entryBuilder.build(), true);
- }
-
public static InstanceIdentifier<InterfaceParentEntry> getInterfaceParentEntryIdentifier(
InterfaceParentEntryKey interfaceParentEntryKey) {
InstanceIdentifier.InstanceIdentifierBuilder<InterfaceParentEntry> intfIdBuilder =
public static List<ListenableFuture<Void>> addConfiguration(DataBroker dataBroker, ParentRefs parentRefs,
Interface interfaceNew, IdManager idManager) {
List<ListenableFuture<Void>> futures = new ArrayList<>();
- WriteTransaction t = dataBroker.newWriteOnlyTransaction();
IfTunnel ifTunnel = interfaceNew.getAugmentation(IfTunnel.class);
if (ifTunnel != null) {
- addTunnelConfiguration(dataBroker, parentRefs, interfaceNew, idManager, t);
- futures.add(t.submit());
+ addTunnelConfiguration(dataBroker, parentRefs, interfaceNew, idManager, futures);
return futures;
}
- addVlanConfiguration(interfaceNew, t, dataBroker);
- futures.add(t.submit());
+ addVlanConfiguration(interfaceNew, dataBroker, futures);
return futures;
}
- private static void addVlanConfiguration(Interface interfaceNew, WriteTransaction t, DataBroker dataBroker) {
+ private static void addVlanConfiguration(Interface interfaceNew, DataBroker dataBroker,
+ List<ListenableFuture<Void>> futures) {
+ WriteTransaction t = dataBroker.newWriteOnlyTransaction();
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface ifState =
InterfaceManagerCommonUtils.getInterfaceStateFromOperDS(interfaceNew.getName(), dataBroker);
if (ifState == null) {
childIfaceBuilder.setKey(IfmUtil.getStateInterfaceKeyFromName(ifaceChild.getName()));
t.put(LogicalDatastoreType.OPERATIONAL, ifChildStateId, childIfaceBuilder.build(), true);
}
+ futures.add(t.submit());
}
private static void addTunnelConfiguration(DataBroker dataBroker, ParentRefs parentRefs,
Interface interfaceNew, IdManager idManager,
- WriteTransaction t) {
+ List<ListenableFuture<Void>> futures) {
+ LOG.debug("adding tunnel configuration for {}", interfaceNew.getName());
+ WriteTransaction t = dataBroker.newWriteOnlyTransaction();
if (parentRefs == null) {
LOG.warn("ParentRefs for interface: {} Not Found. " +
"Creation of Tunnel OF-Port not supported when dpid not provided.", interfaceNew.getName());
InterfaceMetaUtils.getBridgeRefEntryFromOperDS(dpnBridgeEntryIid, dataBroker);
BridgeEntryKey bridgeEntryKey = new BridgeEntryKey(dpId);
BridgeInterfaceEntryKey bridgeInterfaceEntryKey = new BridgeInterfaceEntryKey(interfaceNew.getName());
- if (bridgeRefEntry == null) {
- InterfaceMetaUtils.createBridgeInterfaceEntryInConfigDS(bridgeEntryKey, bridgeInterfaceEntryKey,
+
+ LOG.debug("creating bridge interfaceEntry in ConfigDS {}", bridgeEntryKey);
+ InterfaceMetaUtils.createBridgeInterfaceEntryInConfigDS(bridgeEntryKey, bridgeInterfaceEntryKey,
interfaceNew.getName(), t);
- return;
- }
+ futures.add(t.submit());
InstanceIdentifier<OvsdbBridgeAugmentation> bridgeIid =
(InstanceIdentifier<OvsdbBridgeAugmentation>)bridgeRefEntry.getBridgeReference().getValue();
OvsdbBridgeAugmentation ovsdbBridgeAugmentation = bridgeNodeOptional.get();
String bridgeName = ovsdbBridgeAugmentation.getBridgeName().getValue();
SouthboundUtils.addPortToBridge(bridgeIid, interfaceNew,
- ovsdbBridgeAugmentation, bridgeName, interfaceNew.getName(), dataBroker, t);
+ ovsdbBridgeAugmentation, bridgeName, interfaceNew.getName(), dataBroker, futures);
}
-
- InstanceIdentifier<TerminationPoint> tpIid = SouthboundUtils.createTerminationPointInstanceIdentifier(
- InstanceIdentifier.keyOf(bridgeIid.firstIdentifierOf(Node.class)), interfaceNew.getName());
- InterfaceMetaUtils.createBridgeInterfaceEntryInConfigDS(bridgeEntryKey, bridgeInterfaceEntryKey,
- interfaceNew.getName(), tpIid, t);
}
private static void updateStateEntry(Interface interfaceNew, WriteTransaction t,
private static void createBridgeEntryIfNotPresent(BigInteger dpId,
DataBroker dataBroker, WriteTransaction t) {
+ LOG.debug("creating bridge entry if not present for dpn {}",dpId);
BridgeEntryKey bridgeEntryKey = new BridgeEntryKey(dpId);
InstanceIdentifier<BridgeEntry> bridgeEntryInstanceIdentifier =
InterfaceMetaUtils.getBridgeEntryIdentifier(bridgeEntryKey);
t.put(LogicalDatastoreType.CONFIGURATION, bridgeEntryInstanceIdentifier, bridgeEntryBuilder.build(), true);
}
}
-}
\ No newline at end of file
+}
return futures;
}
- dpId = dpId.replaceAll("[^\\d.]", "");
- BigInteger ovsdbDpId = new BigInteger(dpId, 16);
+ String datapathId = dpId.replaceAll("[^\\d.]", "");
+ BigInteger ovsdbDpId = new BigInteger(datapathId, 16);
+
+ LOG.info("adding dpId {} to bridge reference {}", datapathId, bridgeName);
BridgeRefEntryKey bridgeRefEntryKey = new BridgeRefEntryKey(ovsdbDpId);
InstanceIdentifier<BridgeRefEntry> bridgeEntryId =
InterfaceMetaUtils.getBridgeRefEntryIdentifier(bridgeRefEntryKey);
InterfaceKey interfaceKey = new InterfaceKey(portName);
Interface iface = InterfaceManagerCommonUtils.getInterfaceFromConfigDS(interfaceKey, dataBroker);
if (iface.getAugmentation(IfTunnel.class) != null) {
- SouthboundUtils.addPortToBridge(bridgeIid, iface, bridgeNew, bridgeName, portName, dataBroker, t);
- InstanceIdentifier<TerminationPoint> tpIid = SouthboundUtils.createTerminationPointInstanceIdentifier(
- InstanceIdentifier.keyOf(bridgeIid.firstIdentifierOf(Node.class)), portName);
+ SouthboundUtils.addPortToBridge(bridgeIid, iface, bridgeNew, bridgeName, portName, dataBroker, futures);
InterfaceMetaUtils.createBridgeInterfaceEntryInConfigDS(bridgeEntryKey,
- new BridgeInterfaceEntryKey(portName), portName, tpIid, t);
+ new BridgeInterfaceEntryKey(portName), portName, t);
}
}
package org.opendaylight.vpnservice.interfacemgr.renderer.ovs.utilities;
import com.google.common.collect.Maps;
+import com.google.common.util.concurrent.ListenableFuture;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
public static void addPortToBridge(InstanceIdentifier<?> bridgeIid, Interface iface,
OvsdbBridgeAugmentation bridgeAugmentation, String bridgeName,
- String portName, DataBroker dataBroker, WriteTransaction t) {
+ String portName, DataBroker dataBroker, List<ListenableFuture<Void>> futures) {
+ WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
IfTunnel ifTunnel = iface.getAugmentation(IfTunnel.class);
if (ifTunnel != null) {
- addTunnelPortToBridge(ifTunnel, bridgeIid, iface, bridgeAugmentation, bridgeName, portName, dataBroker, t);
- return;
+ addTunnelPortToBridge(ifTunnel, bridgeIid, iface, bridgeAugmentation, bridgeName, portName, dataBroker, tx);
}
IfL2vlan ifL2vlan = iface.getAugmentation(IfL2vlan.class);
if (ifL2vlan != null) {
- addVlanPortToBridge(bridgeIid, ifL2vlan, bridgeAugmentation, bridgeName, portName, dataBroker, t);
+ addVlanPortToBridge(bridgeIid, ifL2vlan, bridgeAugmentation, bridgeName, portName, dataBroker, tx);
}
+ futures.add(tx.submit());
}
private static void addVlanPortToBridge(InstanceIdentifier<?> bridgeIid, IfL2vlan ifL2vlan,
OvsdbBridgeAugmentation bridgeAugmentation, String bridgeName,
String portName, DataBroker dataBroker, WriteTransaction t) {
Class type = null;
+ LOG.debug("adding tunnel port {} to bridge {}",portName, bridgeName);
+
if (ifTunnel.getTunnelInterfaceType().isAssignableFrom(TunnelTypeGre.class)) {
type = InterfaceTypeGre.class;
} else if (ifTunnel.getTunnelInterfaceType().isAssignableFrom(TunnelTypeVxlan.class)) {
public static List<MatchInfo> getMatchInfoForTunnelPortAtIngressTable(BigInteger dpId, long portNo, Interface iface) {
List<MatchInfo> matches = new ArrayList<MatchInfo>();
matches.add(new MatchInfo(MatchFieldType.in_port, new BigInteger[]{dpId, BigInteger.valueOf(portNo)}));
- /*IfTunnel tunnel = iface.getAugmentation(IfTunnel.class);
- TunnelResources tunnelResources = tunnel.getTunnelResources();
- if (tunnelResources.getTunnelType().isAssignableFrom(TunnelTypeGre.class)) {
- IfGre ifgre = tunnelResources.getAugmentation(IfGre.class);
- BigInteger grekey = ifgre.getGreKey();
- // FIXME: Add tunnel-id match information
-
- } else if (tunnelResources.getTunnelType().isAssignableFrom(TunnelTypeVxlan.class)) {
- IfVxlan ifVxlan = tunnelResources.getAugmentation(IfVxlan.class);
- BigInteger vni = ifVxlan.getVni();
- // FIXME: Add tunnel-id match information
- }*/
-
return matches;
}
matches.add(new MatchInfo(MatchFieldType.metadata, new BigInteger[] {
MetaDataUtil.getMetaDataForLPortDispatcher(interfaceTag, servicePriority),
MetaDataUtil.getMetaDataMaskForLPortDispatcher() }));
- /*if (iface.getType().isAssignableFrom(Tunnel.class)) {
- IfTunnel tunnel = iface.getAugmentation(IfTunnel.class);
- TunnelResources tunnelResources = tunnel.getTunnelResources();
- if (tunnelResources.getTunnelType().isAssignableFrom(TunnelTypeGre.class)) {
- IfGre ifgre = tunnelResources.getAugmentation(IfGre.class);
- BigInteger grekey = ifgre.getGreKey();
- // FIXME: Add tunnel-id match information
-
- } else if (tunnelResources.getTunnelType().isAssignableFrom(TunnelTypeVxlan.class)) {
- IfVxlan ifVxlan = tunnelResources.getAugmentation(IfVxlan.class);
- BigInteger vni = ifVxlan.getVni();
- // FIXME: Add tunnel-id match information
- }
- }*/
return matches;
}