DESCRIPTION :
While deleting the TEP the reverse tunnels were not
deleted correctly.
Change-Id: I64be3c13214add3e5d920ade64d84686a95f8932
Signed-off-by: HemaTG <hema.gopalkrishnan@ericsson.com>
(cherry picked from commit
53f0f6862f62d3862479492c56146ec4d371fa79)
for (TunnelEndPoints dstTep : dstDpn.getTunnelEndPoints()) {
logger.trace("Processing dstTep " + dstTep);
if (dstTep.getTransportZone().equals(srcTZone)) {
for (TunnelEndPoints dstTep : dstDpn.getTunnelEndPoints()) {
logger.trace("Processing dstTep " + dstTep);
if (dstTep.getTransportZone().equals(srcTZone)) {
+ if( checkIfTrunkExists(dstDpn.getDPNID(), srcDpn.getDPNID(), dataBroker)) {
// remove all trunk interfaces
logger.trace("Invoking removeTrunkInterface between source TEP {} , Destination TEP {} " ,srcTep , dstTep);
removeTrunkInterface(dataBroker, idManagerService, srcTep, dstTep, srcDpn.getDPNID(), dstDpn.getDPNID(), t, futures);
// remove all trunk interfaces
logger.trace("Invoking removeTrunkInterface between source TEP {} , Destination TEP {} " ,srcTep , dstTep);
removeTrunkInterface(dataBroker, idManagerService, srcTep, dstTep, srcDpn.getDPNID(), dstDpn.getDPNID(), t, futures);
tnlContainerPath, dataBroker);
// remove container if no DPNs are present
if (containerOptional.isPresent()) {
tnlContainerPath, dataBroker);
// remove container if no DPNs are present
if (containerOptional.isPresent()) {
- DpnEndpoints deps = containerOptional.get();
+ DpnEndpoints deps = containerOptional.get();
if (deps.getDPNTEPsInfo() == null || deps.getDPNTEPsInfo().isEmpty()) {
logger.trace("Container Removal from DPNTEPSINFO CONFIG DS");
t.delete(LogicalDatastoreType.CONFIGURATION, tnlContainerPath);
if (deps.getDPNTEPsInfo() == null || deps.getDPNTEPsInfo().isEmpty()) {
logger.trace("Container Removal from DPNTEPSINFO CONFIG DS");
t.delete(LogicalDatastoreType.CONFIGURATION, tnlContainerPath);
.getValue());
logger.trace("Removing forward Trunk Interface " + trunkfwdIfName);
InstanceIdentifier<Interface> trunkIdentifier = ItmUtils.buildId(trunkfwdIfName);
.getValue());
logger.trace("Removing forward Trunk Interface " + trunkfwdIfName);
InstanceIdentifier<Interface> trunkIdentifier = ItmUtils.buildId(trunkfwdIfName);
- logger.debug( " Removing Trunk Interface Name - {} , Id - {} from Config DS {}, {} ", trunkfwdIfName, trunkIdentifier ) ;
+ logger.debug( " Removing Trunk Interface Name - {} , Id - {} from Config DS ", trunkfwdIfName, trunkIdentifier ) ;
t.delete(LogicalDatastoreType.CONFIGURATION, trunkIdentifier);
// also update itm-state ds -- Delete the forward tunnel-interface from the tunnel list
t.delete(LogicalDatastoreType.CONFIGURATION, trunkIdentifier);
// also update itm-state ds -- Delete the forward tunnel-interface from the tunnel list
.getIpv4Address().getValue(), srcTep.getIpAddress().getIpv4Address()
.getValue());
logger.trace("Removing Reverse Trunk Interface " + trunkRevIfName);
.getIpv4Address().getValue(), srcTep.getIpAddress().getIpv4Address()
.getValue());
logger.trace("Removing Reverse Trunk Interface " + trunkRevIfName);
- trunkIdentifier = ItmUtils.buildId(trunkfwdIfName);
- logger.debug( " Removing Trunk Interface Name - {} , Id - {} from Config DS {}, {} ", trunkfwdIfName, trunkIdentifier ) ;
+ trunkIdentifier = ItmUtils.buildId(trunkRevIfName);
+ logger.debug( " Removing Trunk Interface Name - {} , Id - {} from Config DS ", trunkRevIfName, trunkIdentifier ) ;
t.delete(LogicalDatastoreType.CONFIGURATION, trunkIdentifier);
// also update itm-state ds -- Delete the reverse tunnel-interface from the tunnel list
t.delete(LogicalDatastoreType.CONFIGURATION, trunkIdentifier);
// also update itm-state ds -- Delete the reverse tunnel-interface from the tunnel list
// Release the Id for the Reverse trunk
ItmUtils.releaseId(idManagerService, trunkRevIfName);
}
// Release the Id for the Reverse trunk
ItmUtils.releaseId(idManagerService, trunkRevIfName);
}
+ private static boolean checkIfTrunkExists( BigInteger srcDpnId, BigInteger dstDpnId, DataBroker dataBroker) {
+ boolean existsFlag = false ;
+ InstanceIdentifier<InternalTunnel> path = InstanceIdentifier.create(
+ TunnelList.class)
+ .child(InternalTunnel.class, new InternalTunnelKey( srcDpnId, dstDpnId));
+ Optional<InternalTunnel> internalTunnels = ItmUtils.read(LogicalDatastoreType.CONFIGURATION,path, dataBroker) ;
+ if( internalTunnels.isPresent())
+ existsFlag = true ;
+ return existsFlag ;
+ }