.registerNotificationListener(this);
LOGGER.info("ArpUtil Manager Initialized ");
}
-
+
OdlInterfaceRpcService getInterfaceRpcService() {
- if (intfRpc == null ) {
- intfRpc = rpc.getRpcService(OdlInterfaceRpcService.class);
- }
- return intfRpc;
+ if (intfRpc == null ) {
+ intfRpc = rpc.getRpcService(OdlInterfaceRpcService.class);
+ }
+ return intfRpc;
}
@Override
NodeConnectorId id = getNodeConnectorFromInterfaceName(interfaceName);
GetPortFromInterfaceOutput portResult = getPortFromInterface(interfaceName);
- //dpnId = BigInteger.valueOf(MDSALUtil.getDpnIdFromPortName(id));
- //Long portid = MDSALUtil.getOfPortNumberFromPortName(id);
dpnId = portResult.getDpid();
Long portid = portResult.getPortno();
checkArgument(null != dpnId && BigInteger.ZERO != dpnId,
try {
String interfaceName = input.getInterface();
- //NodeConnectorId id = getNodeConnectorFromInterfaceName(interfaceName);
-
- //dpnId = BigInteger.valueOf(MDSALUtil.getDpnIdFromPortName(id));
- //Long portid = MDSALUtil.getOfPortNumberFromPortName(id);
-
GetPortFromInterfaceOutput portResult = getPortFromInterface(interfaceName);
- //dpnId = BigInteger.valueOf(MDSALUtil.getDpnIdFromPortName(id));
- //Long portid = MDSALUtil.getOfPortNumberFromPortName(id);
dpnId = portResult.getDpid();
Long portid = portResult.getPortno();
-
-
NodeConnectorRef ref = MDSALUtil.getNodeConnRef(dpnId,
portid.toString());
checkArgument(null != dpnId && BigInteger.ZERO != dpnId,
NodeConnectorRef ref = packetReceived.getIngress();
- Metadata i = packetReceived.getMatch().getMetadata();
-
- //String interfaceName = MDSALUtil.getInterfaceName(ref, dataBroker);
- String interfaceName = getInterfaceName(ref,i, dataBroker);
+ Metadata metadata = packetReceived.getMatch().getMetadata();
+ String interfaceName = getInterfaceName(ref,metadata, dataBroker);
checkAndFireMacChangedNotification(interfaceName, srcInetAddr,
srcMac);
}
GetPortFromInterfaceOutput getPortFromInterface(String interfaceName) throws Throwable {
- GetPortFromInterfaceInputBuilder x = new GetPortFromInterfaceInputBuilder();
- x.setIntfName(interfaceName);;
- Future<RpcResult<GetPortFromInterfaceOutput>> ft = intfRpc.getPortFromInterface(x.build());
- GetPortFromInterfaceOutput result = ft.get().getResult();
- LOGGER.trace("getPortFromInterface rpc result is {} ", result);
- if (result != null) {
- LOGGER.trace("getPortFromInterface rpc result is {} {} ", result.getDpid(), result.getPortno());
- }
- return result;
+ GetPortFromInterfaceInputBuilder getPortFromInterfaceInputBuilder = new GetPortFromInterfaceInputBuilder();
+ getPortFromInterfaceInputBuilder.setIntfName(interfaceName);;
+ Future<RpcResult<GetPortFromInterfaceOutput>> portFromInterface = intfRpc.getPortFromInterface(getPortFromInterfaceInputBuilder.build());
+ GetPortFromInterfaceOutput result = portFromInterface.get().getResult();
+ LOGGER.trace("getPortFromInterface rpc result is {} ", result);
+ if (result != null) {
+ LOGGER.trace("getPortFromInterface rpc result is {} {} ", result.getDpid(), result.getPortno());
+ }
+ return result;
}
private String getInterfaceName(NodeConnectorRef ref, Metadata metadata, DataBroker dataBroker2) throws Throwable {
- LOGGER.debug("metadata received is {} ", metadata);
+ LOGGER.debug("metadata received is {} ", metadata);
- GetInterfaceFromIfIndexInputBuilder ifIndexInputBuilder = new GetInterfaceFromIfIndexInputBuilder();
- BigInteger lportTag = MetaDataUtil.getLportFromMetadata(metadata.getMetadata());
+ GetInterfaceFromIfIndexInputBuilder ifIndexInputBuilder = new GetInterfaceFromIfIndexInputBuilder();
+ BigInteger lportTag = MetaDataUtil.getLportFromMetadata(metadata.getMetadata());
- ifIndexInputBuilder.setIfIndex(lportTag.intValue());
- GetInterfaceFromIfIndexInput input = ifIndexInputBuilder.build();
- OdlInterfaceRpcService intfRpc = getInterfaceRpcService();
+ ifIndexInputBuilder.setIfIndex(lportTag.intValue());
+ GetInterfaceFromIfIndexInput input = ifIndexInputBuilder.build();
+ OdlInterfaceRpcService intfRpc = getInterfaceRpcService();
- Future<RpcResult<GetInterfaceFromIfIndexOutput>> interfaceFromIfIndex = intfRpc.getInterfaceFromIfIndex(input);
- GetInterfaceFromIfIndexOutput interfaceFromIfIndexOutput = interfaceFromIfIndex.get().getResult();
+ Future<RpcResult<GetInterfaceFromIfIndexOutput>> interfaceFromIfIndex = intfRpc.getInterfaceFromIfIndex(input);
+ GetInterfaceFromIfIndexOutput interfaceFromIfIndexOutput = interfaceFromIfIndex.get().getResult();
return interfaceFromIfIndexOutput.getInterfaceName();
- }
+ }
class MacResponderTask implements Runnable {
ARP arp;
}
public static void makeTunnelIngressFlow(List<ListenableFuture<Void>> futures, IMdsalApiManager mdsalApiManager,
IfTunnel tunnel, BigInteger dpnId, long portNo, Interface iface, int ifIndex, int addOrRemoveFlow) {
+ LOG.debug("make tunnel ingress flow for {}",iface.getName());
String flowRef = InterfaceManagerCommonUtils.getTunnelInterfaceFlowRef(dpnId, NwConstants.VLAN_INTERFACE_INGRESS_TABLE, iface.getName());
List<MatchInfo> matches = new ArrayList<MatchInfo>();
List<InstructionInfo> mkInstructions = new ArrayList<InstructionInfo>();
t.put(LogicalDatastoreType.CONFIGURATION, intfId, entryBuilder.build(),true);
}
- /*public static void updateStateEntry(Interface interfaceInfo, DataBroker dataBroker, WriteTransaction transaction,
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface ifState) {
- String ncStr = ifState.getLowerLayerIf().get(0);
- NodeConnectorId nodeConnectorId = new NodeConnectorId(ncStr);
- NodeConnector nodeConnector =
- InterfaceManagerCommonUtils.getNodeConnectorFromInventoryOperDS(nodeConnectorId, dataBroker);
- if(nodeConnector != null) {
- FlowCapableNodeConnector flowCapableNodeConnector =
- nodeConnector.getAugmentation(FlowCapableNodeConnector.class);
- //State state = flowCapableNodeConnector.getState();
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus operStatus =
- flowCapableNodeConnector == null ? org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus.Down : org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus.Up;
-
- if (ifState.getOperStatus() != operStatus) {
- InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> ifStateId =
- IfmUtil.buildStateInterfaceId(interfaceInfo.getName());
- InterfaceBuilder ifaceBuilder = new InterfaceBuilder();
- ifaceBuilder.setOperStatus(operStatus);
- ifaceBuilder.setKey(IfmUtil.getStateInterfaceKeyFromName(interfaceInfo.getName()));
- transaction.merge(LogicalDatastoreType.OPERATIONAL, ifStateId, ifaceBuilder.build());
- }
- }
- }*/
-
public static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus
updateStateEntry(Interface interfaceNew, DataBroker dataBroker, WriteTransaction transaction,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface ifState) {
public static void updateOperStatus(String interfaceName, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus operStatus,
WriteTransaction transaction) {
+ LOG.debug("updating operational status for interface {}",interfaceName);
InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> ifChildStateId =
IfmUtil.buildStateInterfaceId(interfaceName);
InterfaceBuilder ifaceBuilderChild = new InterfaceBuilder();
public static void addStateEntry(String interfaceName, WriteTransaction transaction, DataBroker dataBroker, IdManagerService idManager,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface ifState) {
+ LOG.debug("adding interface state for {}",interfaceName);
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus operStatus = ifState.getOperStatus();
PhysAddress physAddress = ifState.getPhysAddress();
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.AdminStatus adminStatus = ifState.getAdminStatus();
IfmUtil.buildStateInterfaceId(interfaceName);
List<String> childLowerLayerIfList = new ArrayList<>();
childLowerLayerIfList.add(0, nodeConnectorId.getValue());
- //childLowerLayerIfList.add(1, interfaceName);
InterfaceBuilder ifaceBuilder = new InterfaceBuilder().setAdminStatus(adminStatus)
.setOperStatus(operStatus).setPhysAddress(physAddress).setLowerLayerIf(childLowerLayerIfList);
if(interfaceInfo != null){
ifaceBuilder.setType(interfaceInfo.getType());
}
- ifaceBuilder.setKey(IfmUtil.getStateInterfaceKeyFromName(interfaceInfo.getName()));
+ ifaceBuilder.setKey(IfmUtil.getStateInterfaceKeyFromName(interfaceName));
transaction.put(LogicalDatastoreType.OPERATIONAL, ifStateId, ifaceBuilder.build(), true);
// create lportTag Interface Map
PhysAddress physAddress, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus operStatus,
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.AdminStatus adminStatus,
NodeConnectorId nodeConnectorId) {
+ LOG.debug("adding interface state for {}",portName);
if (interfaceInfo != null && !interfaceInfo.isEnabled()) {
operStatus = org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus.Down;
}
IfmUtil.buildStateInterfaceId(portName);
List<String> childLowerLayerIfList = new ArrayList<>();
childLowerLayerIfList.add(0, nodeConnectorId.getValue());
- //childLowerLayerIfList.add(1, interfaceInfo.getName());
InterfaceBuilder ifaceBuilder = new InterfaceBuilder().setAdminStatus(adminStatus)
.setOperStatus(operStatus).setPhysAddress(physAddress).setLowerLayerIf(childLowerLayerIfList);
}
public static void deleteStateEntry(String interfaceName, WriteTransaction transaction) {
+ LOG.debug("removing interface state for {}",interfaceName);
InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface> ifChildStateId =
IfmUtil.buildStateInterfaceId(interfaceName);
transaction.delete(LogicalDatastoreType.OPERATIONAL, ifChildStateId);
import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.meta.rev151007.bridge.ref.info.BridgeRefEntryKey;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
public class InterfaceMetaUtils {
+ private static final Logger LOG = LoggerFactory.getLogger(InterfaceMetaUtils.class);
public static InstanceIdentifier<BridgeRefEntry> getBridgeRefEntryIdentifier(BridgeRefEntryKey bridgeRefEntryKey) {
InstanceIdentifier.InstanceIdentifierBuilder<BridgeRefEntry> bridgeRefEntryInstanceIdentifierBuilder =
InstanceIdentifier.builder(BridgeRefInfo.class)
}
public static void createLportTagInterfaceMap(WriteTransaction t, String infName, Integer ifIndex) {
+ LOG.debug("creating lport tag to interface map for {}",infName);
InstanceIdentifier<IfIndexInterface> id = InstanceIdentifier.builder(IfIndexesInterfaceMap.class).child(IfIndexInterface.class, new IfIndexInterfaceKey(ifIndex)).build();
IfIndexInterface ifIndexInterface = new IfIndexInterfaceBuilder().setIfIndex(ifIndex).setKey(new IfIndexInterfaceKey(ifIndex)).setInterfaceName(infName).build();
t.put(LogicalDatastoreType.OPERATIONAL, id, ifIndexInterface, true);
InstanceIdentifier<IfIndexInterface> id = InstanceIdentifier.builder(IfIndexesInterfaceMap.class).child(IfIndexInterface.class, new IfIndexInterfaceKey(ifIndex)).build();
Optional<IfIndexInterface> ifIndexesInterface = IfmUtil.read(LogicalDatastoreType.OPERATIONAL, id, broker);
if(ifIndexesInterface.isPresent()) {
+ LOG.debug("removing lport tag to interface map for {}",infName);
t.delete(LogicalDatastoreType.OPERATIONAL, id);
}
IfmUtil.releaseId(idManager, IfmConstants.IFM_IDPOOL_NAME, infName);
protected void remove(InstanceIdentifier<Interface> key, Interface interfaceOld) {
LOG.debug("Received Interface Remove Event: {}, {}", key, interfaceOld);
String ifName = interfaceOld.getName();
- String parentInterface = null;
-
ParentRefs parentRefs = interfaceOld.getAugmentation(ParentRefs.class);
- /* parentInterface = parentRefs.getParentInterface();
- if (parentInterface != null && !parentInterface.equals(ifName)) {
- return;
- }
- if (parentRefs.getDatapathNodeIdentifier() == null) {
- return;
- }
- if(parentInterface == null){
- LOG.error("parent interface not specified for {}",interfaceOld.getName());
- }
- }*/
-
DataStoreJobCoordinator coordinator = DataStoreJobCoordinator.getInstance();
RendererConfigRemoveWorker configWorker = new RendererConfigRemoveWorker(key, interfaceOld, ifName, parentRefs);
coordinator.enqueueJob(ifName, configWorker);
protected void update(InstanceIdentifier<Interface> key, Interface interfaceOld, Interface interfaceNew) {
LOG.debug("Received Interface Update Event: {}, {}, {}", key, interfaceOld, interfaceNew);
String ifNameNew = interfaceNew.getName();
- String parentInterface = null;
-
- /*ParentRefs parentRefs = interfaceNew.getAugmentation(ParentRefs.class);
- if (parentRefs == null) {
- LOG.error("parent refs not specified for {}",interfaceNew.getName());
- }
-
- if (parentInterface == null) {
- LOG.error("parent interface not specified for {}",interfaceOld.getName());
- return;
- }*/
-
DataStoreJobCoordinator coordinator = DataStoreJobCoordinator.getInstance();
RendererConfigUpdateWorker worker = new RendererConfigUpdateWorker(key, interfaceOld, interfaceNew, ifNameNew);
coordinator.enqueueJob(ifNameNew, worker);
protected void add(InstanceIdentifier<Interface> key, Interface interfaceNew) {
LOG.debug("Received Interface Add Event: {}, {}", key, interfaceNew);
String ifName = interfaceNew.getName();
- String parentInterface = null;
-
ParentRefs parentRefs = interfaceNew.getAugmentation(ParentRefs.class);
if (parentRefs == null) {
LOG.error("parent refs not specified for {}",interfaceNew.getName());
}
-
- /*if(parentInterface == null){
- LOG.error("parent interface not specified for {}",interfaceNew.getName());
- }*/
-
DataStoreJobCoordinator coordinator = DataStoreJobCoordinator.getInstance();
RendererConfigAddWorker configWorker = new RendererConfigAddWorker(key, interfaceNew, parentRefs, ifName);
coordinator.enqueueJob(ifName, configWorker);
if (ifL2vlan == null || IfL2vlan.L2vlanMode.Trunk != ifL2vlan.getL2vlanMode()) {
return;
}
+ LOG.debug("adding vlan configuration for {}",interfaceNew.getName());
WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();
InterfaceManagerCommonUtils.createInterfaceChildEntry(transaction,
parentRefs.getParentInterface(), interfaceNew.getName());
InterfaceManagerCommonUtils.getInterfaceStateFromOperDS(parentRefs.getParentInterface(), dataBroker);
if (ifState == null) {
+ LOG.debug("could not retrieve interface state corresponding to {}",interfaceNew.getName());
futures.add(transaction.submit());
return;
}
InterfaceParentEntry interfaceParentEntry =
InterfaceMetaUtils.getInterfaceParentEntryFromConfigDS(interfaceParentEntryKey, dataBroker);
if (interfaceParentEntry == null || interfaceParentEntry.getInterfaceChildEntry() == null) {
+ LOG.debug("could not retrieve interface parent info for {}",interfaceNew.getName());
futures.add(transaction.submit());
return;
}
}
private static void removeVlanConfiguration(DataBroker dataBroker, ParentRefs parentRefs, Interface interfaceOld, WriteTransaction transaction) {
+ LOG.debug("removing vlan configuration for {}",interfaceOld.getName());
IfL2vlan ifL2vlan = interfaceOld.getAugmentation(IfL2vlan.class);
if (ifL2vlan == null || ifL2vlan.getL2vlanMode() != IfL2vlan.L2vlanMode.Trunk) {
return;
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface ifState =
InterfaceManagerCommonUtils.getInterfaceStateFromOperDS(interfaceOld.getName(), dataBroker);
if (ifState == null) {
+ LOG.debug("could not fetch interface state corresponding to {}",interfaceOld.getName());
return;
}
//FIXME: If the no. of child entries exceeds 100, perform txn updates in batches of 100.
for (InterfaceChildEntry interfaceChildEntry : interfaceParentEntry.getInterfaceChildEntry()) {
+ LOG.debug("removing interface state for vlan trunk member {}",interfaceChildEntry.getChildInterface());
InterfaceManagerCommonUtils.deleteStateEntry(interfaceChildEntry.getChildInterface(), transaction);
FlowBasedServicesUtils.removeIngressFlow(interfaceChildEntry.getChildInterface(), dpId, transaction);
}
DataBroker dataBroker, Interface interfaceOld,
IdManagerService idManager, IMdsalApiManager mdsalApiManager,
List<ListenableFuture<Void>> futures) {
-
+ LOG.debug("removing tunnel configuration for {}",interfaceOld.getName());
WriteTransaction t = dataBroker.newWriteOnlyTransaction();
BigInteger dpId = null;
if (parentRefs != null) {
InterfaceMetaUtils.getBridgeRefEntryFromOperDS(bridgeRefEntryIid, dataBroker);
if (bridgeRefEntry != null) {
+ LOG.debug("removing termination point for {}",interfaceOld.getName());
InstanceIdentifier<?> bridgeIid = bridgeRefEntry.getBridgeReference().getValue();
InstanceIdentifier<TerminationPoint> tpIid = SouthboundUtils.createTerminationPointInstanceIdentifier(
InstanceIdentifier.keyOf(bridgeIid.firstIdentifierOf(Node.class)), interfaceOld.getName());
t.delete(LogicalDatastoreType.CONFIGURATION, tpIid);
// delete tunnel ingress flow
+ LOG.debug("removing tunnel ingress flow for {}",interfaceOld.getName());
NodeConnectorId ncId = IfmUtil.getNodeConnectorIdFromInterface(interfaceOld, dataBroker);
long portNo = Long.valueOf(IfmUtil.getPortNoFromNodeConnectorId(ncId));
InterfaceManagerCommonUtils.makeTunnelIngressFlow(futures, mdsalApiManager,
public static List<ListenableFuture<Void>> addConfiguration(DataBroker dataBroker, ParentRefs parentRefs,
Interface interfaceNew, IfL2vlan ifL2vlan,
IdManagerService idManager) {
+ LOG.debug("add vlan member configuration {}",interfaceNew.getName());
List<ListenableFuture<Void>> futures = new ArrayList<>();
WriteTransaction t = dataBroker.newWriteOnlyTransaction();
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface ifState =
InterfaceManagerCommonUtils.getInterfaceStateFromOperDS(parentRefs.getParentInterface(), dataBroker);
if (ifState != null) {
+ LOG.debug("add interface state info for vlan member {}",interfaceNew.getName());
OperStatus operStatus = ifState.getOperStatus();
AdminStatus adminStatus = ifState.getAdminStatus();
PhysAddress physAddress = ifState.getPhysAddress();
public static List<ListenableFuture<Void>> removeConfiguration(DataBroker dataBroker, ParentRefs parentRefs,
Interface interfaceOld, IfL2vlan ifL2vlan,
IdManagerService idManager) {
+ LOG.debug("remove vlan member configuration {}",interfaceOld.getName());
List<ListenableFuture<Void>> futures = new ArrayList<>();
WriteTransaction t = dataBroker.newWriteOnlyTransaction();
List<InterfaceChildEntry> interfaceChildEntries = interfaceParentEntry.getInterfaceChildEntry();
if (interfaceChildEntries.size() <= 1) {
- t.delete(LogicalDatastoreType.CONFIGURATION, interfaceParentEntryIid);
+ // FIXME..some boundary problem during vlan member deletion..need to revisit
+ //t.delete(LogicalDatastoreType.CONFIGURATION, interfaceParentEntryIid);
} else {
InterfaceChildEntryKey interfaceChildEntryKey = new InterfaceChildEntryKey(interfaceOld.getName());
InstanceIdentifier<InterfaceChildEntry> interfaceChildEntryIid =
}
} */
+ LOG.debug("delete vlan member interface state {}",interfaceOld.getName());
String ncStr = ifState.getLowerLayerIf().get(0);
NodeConnectorId nodeConnectorId = new NodeConnectorId(ncStr);
BigInteger dpId = new BigInteger(IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId));
IfmUtil.buildStateInterfaceId(interfaceChildEntry.getChildInterface());
/* Remove entry from if-index-interface-name map and deallocate Id from Idmanager. */
Interface childInterfaceState = InterfaceManagerCommonUtils.getInterfaceStateFromOperDS(interfaceChildEntry.getChildInterface(), dataBroker);
- if (interfaceState != null) {
+ if (childInterfaceState != null) {
InterfaceMetaUtils.removeLportTagInterfaceMap(transaction, idManager, dataBroker, childInterfaceState.getName(), childInterfaceState.getIfIndex());
transaction.delete(LogicalDatastoreType.OPERATIONAL, ifChildStateId);
FlowBasedServicesUtils.removeIngressFlow(childInterfaceState.getName(), dpId, transaction);
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface iface =
InterfaceManagerCommonUtils.getInterfaceFromConfigDS(interfaceKey, dataBroker);
- if (iface.getType().isAssignableFrom(L2vlan.class)) {
+ if (ifaceState.getType().isAssignableFrom(L2vlan.class)) {
return unbindServiceOnVlan(allServices, iface, ifaceState.getIfIndex(), dataBroker);
- } else if (iface.getType().isAssignableFrom(Tunnel.class)){
+ } else if (ifaceState.getType().isAssignableFrom(Tunnel.class)){
return unbindServiceOnTunnel(allServices, iface, ifaceState.getIfIndex(), dataBroker);
}
return futures;
import org.opendaylight.vpnservice.interfacemgr.servicebindings.flowbased.statehelpers.FlowBasedServicesStateUnbindHelper;
import org.opendaylight.vpnservice.mdsalutil.*;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev140508.L2vlan;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.InterfaceType;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.servicebinding.rev151015.service.bindings.ServicesInfoKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.servicebinding.rev151015.service.bindings.services.info.BoundServices;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.servicebinding.rev151015.service.bindings.services.info.BoundServicesKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rev150331.IfL2vlan;
import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rev150331.TunnelTypeGre;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
.setIfIndex(ifIndexval)
.setLowerLayerIf(lowerLayerIfList)
.setKey(IfmUtil.getStateInterfaceKeyFromName(InterfaceManagerTestUtil.interfaceName))
- .setName(InterfaceManagerTestUtil.interfaceName);
+ .setName(InterfaceManagerTestUtil.interfaceName).setType(interfaceEnabled.getType());
stypeOpenflow = InterfaceManagerTestUtil.buildStypeOpenflow(dpId,flowpriority, NwConstants.LPORT_DISPATCHER_TABLE, instructions);
instructionKey = new InstructionKey(instructionKeyval);
BigInteger[] metadataValues = IfmUtil.mergeOpenflowMetadataWriteInstructions(instructions);