/*
- * Copyright (c) 2015 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
+ * Copyright (c) 2015 - 2016 Ericsson India Global Services Pvt Ltd. 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,
}
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) {
+ if (ifL2vlan == null || (IfL2vlan.L2vlanMode.Trunk != ifL2vlan.getL2vlanMode() && IfL2vlan.L2vlanMode.Transparent != ifL2vlan.getL2vlanMode())) {
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;
}
- InterfaceManagerCommonUtils.updateOperStatus(interfaceOld.getName(), OperStatus.Down, transaction);
- NodeConnectorId ncId = new NodeConnectorId(ifState.getLowerLayerIf().get(0));
- BigInteger dpId = new BigInteger(IfmUtil.getDpnFromNodeConnectorId(ncId));
+ InterfaceManagerCommonUtils.deleteStateEntry(interfaceOld.getName(), transaction);
+
+ BigInteger dpId = IfmUtil.getDpnFromInterface(ifState);
FlowBasedServicesUtils.removeIngressFlow(interfaceOld.getName(), dpId, transaction);
+ InterfaceManagerCommonUtils.deleteParentInterfaceEntry(transaction, parentRefs.getParentInterface());
// For Vlan-Trunk Interface, remove the trunk-member operstates as well...
InterfaceParentEntryKey interfaceParentEntryKey = new InterfaceParentEntryKey(interfaceOld.getName());
//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,