Merge "BUG:5021 ELan datapath code-changes and cleanUp some code." into stable/beryllium
authorVishal Thapar <vishal.thapar@ericsson.com>
Thu, 21 Jan 2016 10:26:14 +0000 (10:26 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Thu, 21 Jan 2016 10:26:14 +0000 (10:26 +0000)
1  2 
interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/InterfacemgrProvider.java

index 656d5ef0148545e1211419533b366776a919d5be,5960c23e20963e970868576557a5cf3bd6644930..15a2866d0cc4818d97dcb1da7a0e6db62f08ff07
@@@ -13,8 -13,6 +13,8 @@@ import java.util.concurrent.ExecutionEx
  import java.util.concurrent.Future;
  
  import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 +import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
 +import org.opendaylight.controller.md.sal.binding.api.NotificationService;
  import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
  import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
  import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
@@@ -38,11 -36,9 +38,11 @@@ import org.opendaylight.yang.gen.v1.urn
  import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey;
  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.inventory.rev130819.NodeConnectorId;
 +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.AlivenessMonitorListener;
  import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.idmanager.rev150403.CreateIdPoolInput;
  import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.idmanager.rev150403.CreateIdPoolInputBuilder;
  import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.idmanager.rev150403.IdManagerService;
 +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.AlivenessMonitorService;
  import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rpcs.rev151003.GetDpidFromInterfaceInput;
  import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rpcs.rev151003.GetDpidFromInterfaceInputBuilder;
  import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rpcs.rev151003.GetDpidFromInterfaceOutput;
@@@ -63,8 -59,6 +63,8 @@@ public class InterfacemgrProvider imple
  
      private RpcProviderRegistry rpcProviderRegistry;
      private IdManagerService idManager;
 +    private NotificationService notificationService;
 +    private AlivenessMonitorService alivenessManager;
      private IMdsalApiManager mdsalManager;
      private InterfaceConfigListener interfaceConfigListener;
      private InterfaceTopologyStateListener topologyStateListener;
@@@ -72,7 -66,6 +72,7 @@@
      private FlowBasedServicesInterfaceStateListener flowBasedServicesInterfaceStateListener;
      private FlowBasedServicesConfigListener flowBasedServicesConfigListener;
      private VlanMemberConfigListener vlanMemberConfigListener;
 +    private org.opendaylight.vpnservice.interfacemgr.listeners.AlivenessMonitorListener alivenessMonitorListener;
      private DataBroker dataBroker;
      private InterfaceManagerRpcService interfaceManagerRpcService;
      private BindingAwareBroker.RpcRegistration<OdlInterfaceRpcService> rpcRegistration;
          this.mdsalManager = mdsalManager;
      }
  
 +    public void setNotificationService(NotificationService notificationService) {
 +        this.notificationService = notificationService;
 +    }
 +
      @Override
      public void onSessionInitiated(ProviderContext session) {
          LOG.info("InterfacemgrProvider Session Initiated");
              idManager = rpcProviderRegistry.getRpcService(IdManagerService.class);
              createIdPool();
  
 +            alivenessManager = rpcProviderRegistry.getRpcService(AlivenessMonitorService.class);
              interfaceManagerRpcService = new InterfaceManagerRpcService(dataBroker, mdsalManager);
              rpcRegistration = getRpcProviderRegistry().addRpcImplementation(
                      OdlInterfaceRpcService.class, interfaceManagerRpcService);
  
 -            interfaceConfigListener = new InterfaceConfigListener(dataBroker, idManager);
 +            interfaceConfigListener = new InterfaceConfigListener(dataBroker, idManager,alivenessManager);
              interfaceConfigListener.registerListener(LogicalDatastoreType.CONFIGURATION, dataBroker);
  
 -            interfaceInventoryStateListener = new InterfaceInventoryStateListener(dataBroker, idManager, mdsalManager);
 +            interfaceInventoryStateListener = new InterfaceInventoryStateListener(dataBroker, idManager, mdsalManager, alivenessManager);
              interfaceInventoryStateListener.registerListener(LogicalDatastoreType.OPERATIONAL, dataBroker);
  
              topologyStateListener = new InterfaceTopologyStateListener(dataBroker);
              flowBasedServicesInterfaceStateListener.registerListener(LogicalDatastoreType.OPERATIONAL, dataBroker);
  
              vlanMemberConfigListener =
 -                               new VlanMemberConfigListener(dataBroker, idManager);
 +                               new VlanMemberConfigListener(dataBroker, idManager, alivenessManager);
              vlanMemberConfigListener.registerListener(LogicalDatastoreType.CONFIGURATION, dataBroker);
 +            alivenessMonitorListener = new org.opendaylight.vpnservice.interfacemgr.listeners.AlivenessMonitorListener(dataBroker);
 +            notificationService.registerNotificationListener(alivenessMonitorListener);
          } catch (Exception e) {
              LOG.error("Error initializing services", e);
          }
          }
  
          if(interfaceType == InterfaceInfo.InterfaceType.VLAN_INTERFACE){
-               interfaceInfo = IfmUtil.getVlanInterfaceInfo(interfaceName, intf, dpId);
+             interfaceInfo = IfmUtil.getVlanInterfaceInfo(interfaceName, intf, dpId);
          } else if (interfaceType == InterfaceInfo.InterfaceType.VXLAN_TRUNK_INTERFACE || interfaceType == InterfaceInfo.InterfaceType.GRE_TRUNK_INTERFACE) {/*
              trunkInterfaceInfo trunkInterfaceInfo = (TrunkInterfaceInfo) ConfigIfmUtil.getTrunkInterfaceInfo(ifName, ConfigIfmUtil.getInterfaceByIfName(dataBroker, ifName));
              String higherLayerIf = inf.getHigherLayerIf().get(0);
      }
  
      @Override
-       public InterfaceInfo getInterfaceInfoFromOperationalDataStore(String interfaceName, InterfaceInfo.InterfaceType interfaceType) {
-               InterfaceInfo interfaceInfo = new InterfaceInfo(interfaceName);
-               org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface ifState = InterfaceManagerCommonUtils
-                               .getInterfaceStateFromOperDS(interfaceName, dataBroker);
-               if (ifState == null) {
-                       LOG.error("Interface {} is not present", interfaceName);
-                       return null;
-               }
+     public InterfaceInfo getInterfaceInfoFromOperationalDataStore(String interfaceName, InterfaceInfo.InterfaceType interfaceType) {
+         InterfaceInfo interfaceInfo = new InterfaceInfo(interfaceName);
+         org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface ifState = InterfaceManagerCommonUtils
+                 .getInterfaceStateFromOperDS(interfaceName, dataBroker);
+         if (ifState == null) {
+             LOG.error("Interface {} is not present", interfaceName);
+             return null;
+         }
          Integer lportTag = ifState.getIfIndex();
-               Interface intf = InterfaceManagerCommonUtils.getInterfaceFromConfigDS(new InterfaceKey(interfaceName), dataBroker);
-               NodeConnectorId ncId = IfmUtil.getNodeConnectorIdFromInterface(intf, dataBroker);
-               if (ncId != null) {
-                       interfaceInfo.setDpId(new BigInteger(IfmUtil.getDpnFromNodeConnectorId(ncId)));
-                       interfaceInfo.setPortNo(Integer.parseInt(IfmUtil.getPortNoFromNodeConnectorId(ncId)));
-               }
+         Interface intf = InterfaceManagerCommonUtils.getInterfaceFromConfigDS(new InterfaceKey(interfaceName), dataBroker);
+         NodeConnectorId ncId = IfmUtil.getNodeConnectorIdFromInterface(intf, dataBroker);
+         if (ncId != null) {
+             interfaceInfo.setDpId(new BigInteger(IfmUtil.getDpnFromNodeConnectorId(ncId)));
+             interfaceInfo.setPortNo(Integer.parseInt(IfmUtil.getPortNoFromNodeConnectorId(ncId)));
+         }
          interfaceInfo.setAdminState((intf.isEnabled() == true) ? InterfaceAdminState.ENABLED : InterfaceAdminState.DISABLED);
          interfaceInfo.setInterfaceName(interfaceName);
          interfaceInfo.setInterfaceTag(lportTag);
  
  
          return interfaceInfo;
-               }
+     }
  
      @Override
      public BigInteger getDpnForInterface(String ifName) {