Upstreaming MdSalUtil interal code changes to ODL 20/42120/1
authorHemaTG <hema.gopalkrishnan@ericsson.com>
Wed, 20 Jul 2016 06:32:58 +0000 (12:02 +0530)
committerHemaTG <hema.gopalkrishnan@ericsson.com>
Wed, 20 Jul 2016 06:39:50 +0000 (12:09 +0530)
Description :- Compared the MdSalUtil module between the internal code
base and ODL master and upstreaming the code that has not yet been pushed
to ODL master

Change-Id: I56fa1366f3154b2a870502d103a297995b9ba297
Signed-off-by: HemaTG <hema.gopalkrishnan@ericsson.com>
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/MetaDataUtil.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/NwConstants.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/utils/clustering/EntityOwnerUtils.java

index 3593a919e3e228c85c76796d088143e36334fc75..16bc84aa4e3e69b8d10af2cd35c6ac8009bb3d31 100644 (file)
@@ -20,6 +20,7 @@ public class MetaDataUtil {
     public static final BigInteger METADA_MASK_TUNNEL_ID =       new BigInteger("00000000FFFFFF00", 16);
     public static final BigInteger METADATA_MASK_SERVICE_SH_FLAG = new BigInteger("000000FFFF000001", 16);
     public static final BigInteger METADATA_MASK_LPORT_TAG_SH_FLAG =     new BigInteger("1FFFFF0000000001", 16);
+    public static final BigInteger METADATA_MASK_ELAN_SUBNET_ROUTE =    new BigInteger("0000FFFF00000000", 16);
     public static final BigInteger METADATA_MASK_SUBNET_ROUTE =         new BigInteger("0000FFFFFFFFFFFF", 16);
 
     public static BigInteger getMetaDataForLPortDispatcher(int lportTag, short serviceIndex) {
@@ -74,6 +75,9 @@ public class MetaDataUtil {
         return (metadata.and(METADATA_MASK_VRFID)).longValue();
     }
 
+    public static long getVpnIdFromMetadata(BigInteger metadata) {
+        return (metadata.and(METADATA_MASK_VRFID)).longValue();
+    }
     public static BigInteger getWriteMetaDataMaskForDispatcherTable() {
         return new BigInteger("FFFFFFFFFFFFFFFF", 16);
     }
index 35e3302e26a86e45890ebe02f1e4bb9727abeaa1..ad64c62fbaaedf57019bbac23e7cbe566871fe47 100644 (file)
@@ -44,6 +44,9 @@ public class NwConstants {
 
     public static final int DEFAULT_ARP_FLOW_PRIORITY = 100;
 
+    public static final int SCF_SERVICE_INDEX = 1;
+    public static final int L3VPN_SERVICE_INDEX = 2;
+    public static final int ELAN_SERVICE_INDEX = 3;
     //Table IDs
     public static final short L3_FIB_TABLE = 21;
     public static final short L3_LFIB_TABLE = 20;
index 302a08e5a272c0e79b9df65adcf913d8f4a7bc5d..23b18daea2b7d95f918f45731662437d38b0614a 100644 (file)
@@ -28,6 +28,34 @@ import java.util.concurrent.ConcurrentMap;
 public class EntityOwnerUtils {
     public static final String ENTITY_OWNER_CACHE = "entity.owner.cache";
     private static final Logger LOG = LoggerFactory.getLogger(EntityOwnerUtils.class);
+    static final ArrayList<EntityEvent> eventsHistory = new ArrayList<>();
+    public static class EntityEvent {
+        long time;
+        String entityName;
+        boolean isOwner;
+        boolean hasOwner;
+        public EntityEvent(long time, String entityName, boolean hasOwner, boolean isOwner) {
+            this.time = time;
+            this.entityName = entityName;
+            this.hasOwner = hasOwner;
+            this.isOwner = isOwner;
+        }
+        public long getTime() {
+            return time;
+        }
+        public String getEntityName() {
+            return entityName;
+        }
+        public boolean isOwner() {
+            return isOwner;
+        }
+        public boolean hasOwner() {
+            return hasOwner;
+        }
+    }
+    public static ArrayList<EntityEvent> getEventsHistory() {
+        return eventsHistory;
+    }
 
     static {
         createEntityOwnerCache();
@@ -102,6 +130,8 @@ public class EntityOwnerUtils {
             String entityType = ownershipChange.getEntity().getType();
             String entityName = ownershipChange.getEntity().getId().toString();
             LOG.info("entity ownership changed for "+entityType);
+            eventsHistory.add(new EntityEvent(System.currentTimeMillis(), entityName, ownershipChange.hasOwner() ,
+                    ownershipChange.isOwner()));
             if (ownershipChange.hasOwner() && ownershipChange.isOwner()) {
                 LOG.info("entity ownership change became owner for type "+entityType);
                 updateEntityOwner(entityType, entityName, Boolean.TRUE);