X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=itm%2Fitm-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fvpnservice%2Fitm%2Fconfighelpers%2FItmInternalTunnelAddWorker.java;h=faa2c6bf1efac0c6e6dc3b8d4ced67e0551d9957;hb=15e44d5b9ad65ece6e59c00fc272ae499c4f7d8c;hp=8e62b9c9e9b95a0816539bef9a04ae1577802a11;hpb=1cddfc772b08569953f28a0679818aac75a9c30a;p=vpnservice.git diff --git a/itm/itm-impl/src/main/java/org/opendaylight/vpnservice/itm/confighelpers/ItmInternalTunnelAddWorker.java b/itm/itm-impl/src/main/java/org/opendaylight/vpnservice/itm/confighelpers/ItmInternalTunnelAddWorker.java index 8e62b9c9..faa2c6bf 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/vpnservice/itm/confighelpers/ItmInternalTunnelAddWorker.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/vpnservice/itm/confighelpers/ItmInternalTunnelAddWorker.java @@ -20,6 +20,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.idmanager.rev150403.IdManagerService; import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rev150331.TunnelTypeBase; import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rev150331.TunnelTypeGre; import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rev150331.TunnelTypeVxlan; @@ -54,7 +55,8 @@ public class ItmInternalTunnelAddWorker { }; - public static List> build_all_tunnels(DataBroker dataBroker, List cfgdDpnList, List meshedDpnList) { + public static List> build_all_tunnels(DataBroker dataBroker, IdManagerService idManagerService, + List cfgdDpnList, List meshedDpnList) { logger.trace( "Building tunnels with DPN List {} " , cfgdDpnList ); List> futures = new ArrayList<>(); WriteTransaction t = dataBroker.newWriteOnlyTransaction(); @@ -65,7 +67,7 @@ public class ItmInternalTunnelAddWorker { for( DPNTEPsInfo dpn : cfgdDpnList) { //#####if dpn is not in meshedDpnList - build_tunnel_from(dpn, meshedDpnList, dataBroker, t, futures); + build_tunnel_from(dpn, meshedDpnList, dataBroker, idManagerService, t, futures); if(null == meshedDpnList) { meshedDpnList = new ArrayList() ; } @@ -86,7 +88,7 @@ public class ItmInternalTunnelAddWorker { t.merge(LogicalDatastoreType.CONFIGURATION, dep, tnlBuilder, true); } - private static void build_tunnel_from( DPNTEPsInfo srcDpn,List meshedDpnList, DataBroker dataBroker, WriteTransaction t, List> futures) { + private static void build_tunnel_from( DPNTEPsInfo srcDpn,List meshedDpnList, DataBroker dataBroker, IdManagerService idManagerService, WriteTransaction t, List> futures) { logger.trace( "Building tunnels from DPN {} " , srcDpn ); if( null == meshedDpnList || 0 == meshedDpnList.size()) { @@ -95,12 +97,13 @@ public class ItmInternalTunnelAddWorker { } for( DPNTEPsInfo dstDpn: meshedDpnList) { if ( ! srcDpn.equals(dstDpn) ) - wireUpWithinTransportZone(srcDpn, dstDpn, dataBroker, t, futures) ; + wireUpWithinTransportZone(srcDpn, dstDpn, dataBroker, idManagerService, t, futures) ; } } - private static void wireUpWithinTransportZone( DPNTEPsInfo srcDpn, DPNTEPsInfo dstDpn, DataBroker dataBroker, WriteTransaction t, List> futures) { + private static void wireUpWithinTransportZone( DPNTEPsInfo srcDpn, DPNTEPsInfo dstDpn, DataBroker dataBroker, + IdManagerService idManagerService, WriteTransaction t, List> futures) { logger.trace( "Wiring up within Transport Zone for Dpns {}, {} " , srcDpn, dstDpn ); List srcEndPts = srcDpn.getTunnelEndPoints(); List dstEndPts = dstDpn.getTunnelEndPoints(); @@ -111,7 +114,7 @@ public class ItmInternalTunnelAddWorker { if (!srcDpn.getDPNID().equals(dstDpn.getDPNID())) { if( (srcte.getTransportZone().equals(dstte.getTransportZone()))) { // wire them up - wireUpBidirectionalTunnel( srcte, dstte, srcDpn.getDPNID(), dstDpn.getDPNID(), dataBroker, t, futures ); + wireUpBidirectionalTunnel( srcte, dstte, srcDpn.getDPNID(), dstDpn.getDPNID(), dataBroker, idManagerService, t, futures ); // CHECK THIS -- Assumption -- One end point per Dpn per transport zone break ; } @@ -121,30 +124,30 @@ public class ItmInternalTunnelAddWorker { } private static void wireUpBidirectionalTunnel( TunnelEndPoints srcte, TunnelEndPoints dstte, BigInteger srcDpnId, BigInteger dstDpnId, - DataBroker dataBroker, WriteTransaction t, List> futures) { + DataBroker dataBroker, IdManagerService idManagerService, WriteTransaction t, List> futures) { // Setup the flow for LLDP monitoring -- PUNT TO CONTROLLER // setUpOrRemoveTerminatingServiceTable(srcDpnId, true); // setUpOrRemoveTerminatingServiceTable(dstDpnId, true); // Create the forward direction tunnel - if(!wireUp( srcte, dstte, srcDpnId, dstDpnId, dataBroker, t, futures )) + if(!wireUp( srcte, dstte, srcDpnId, dstDpnId, dataBroker, idManagerService, t, futures )) logger.error("Could not build tunnel between end points {}, {} " , srcte, dstte ); // CHECK IF FORWARD IS NOT BUILT , REVERSE CAN BE BUILT // Create the tunnel for the reverse direction - if(! wireUp( dstte, srcte, dstDpnId, srcDpnId, dataBroker, t, futures )) + if(! wireUp( dstte, srcte, dstDpnId, srcDpnId, dataBroker, idManagerService, t, futures )) logger.error("Could not build tunnel between end points {}, {} " , dstte, srcte); } - private static boolean wireUp( TunnelEndPoints srcte, TunnelEndPoints dstte, BigInteger srcDpnId, BigInteger dstDpnId , - DataBroker dataBroker, WriteTransaction t, List> futures) { + private static boolean wireUp(TunnelEndPoints srcte, TunnelEndPoints dstte, BigInteger srcDpnId, BigInteger dstDpnId , + DataBroker dataBroker, IdManagerService idManagerService, WriteTransaction t, List> futures) { // Wire Up logic logger.trace( "Wiring between source tunnel end points {}, destination tunnel end points {} " , srcte, dstte ); String interfaceName = srcte.getInterfaceName() ; Class tunType = srcte.getTunnelType(); String ifDescription = srcte.getTunnelType().getName(); // Form the trunk Interface Name - String trunkInterfaceName = ItmUtils.getTrunkInterfaceName(interfaceName,srcte.getIpAddress().getIpv4Address().getValue(), dstte.getIpAddress().getIpv4Address().getValue()) ; + String trunkInterfaceName = ItmUtils.getTrunkInterfaceName(idManagerService, interfaceName,srcte.getIpAddress().getIpv4Address().getValue(), dstte.getIpAddress().getIpv4Address().getValue()) ; IpAddress gwyIpAddress = ( srcte.getSubnetMask().equals(dstte.getSubnetMask()) ) ? null : srcte.getGwIpAddress() ; logger.debug( " Creating Trunk Interface with parameters trunk I/f Name - {}, parent I/f name - {}, source IP - {}, destination IP - {} gateway IP - {}",trunkInterfaceName, interfaceName, srcte.getIpAddress(), dstte.getIpAddress(), gwyIpAddress ) ; Interface iface = ItmUtils.buildTunnelInterface(srcDpnId, trunkInterfaceName, String.format( "%s %s",ifDescription, "Trunk Interface"), true, tunType, srcte.getIpAddress(), dstte.getIpAddress(), gwyIpAddress) ;