introduced xran UE context ID
diff --git a/src/main/java/org.onosproject.xran/impl/DefaultXranStore.java b/src/main/java/org.onosproject.xran/impl/DefaultXranStore.java
index 9dab964..19e50ab 100644
--- a/src/main/java/org.onosproject.xran/impl/DefaultXranStore.java
+++ b/src/main/java/org.onosproject.xran/impl/DefaultXranStore.java
@@ -22,11 +22,11 @@
 import org.apache.felix.scr.annotations.*;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreService;
+import org.onosproject.core.IdGenerator;
 import org.onosproject.store.AbstractStore;
 import org.onosproject.xran.XranStore;
 import org.onosproject.xran.codecs.api.ECGI;
 import org.onosproject.xran.codecs.api.EUTRANCellIdentifier;
-import org.onosproject.xran.codecs.api.MMEUES1APID;
 import org.onosproject.xran.controller.XranController;
 import org.onosproject.xran.entities.RnibCell;
 import org.onosproject.xran.entities.RnibLink;
@@ -57,18 +57,23 @@
     protected CoreService coreService;
     private ConcurrentMap<LinkId, RnibLink> linkMap = new ConcurrentHashMap<>();
     private ConcurrentMap<ECGI, RnibCell> cellMap = new ConcurrentHashMap<>();
-    private ConcurrentMap<MMEUES1APID, RnibUe> ueMap = new ConcurrentHashMap<>();
+    private ConcurrentMap<Long, RnibUe> ueMap = new ConcurrentHashMap<>();
     private ConcurrentMap<Object, RnibSlice> sliceMap = new ConcurrentHashMap<>();
     private XranController controller;
 
+    private IdGenerator ueIdGenerator;
+
     @Activate
     public void activate() {
         ApplicationId appId = coreService.getAppId(XRAN_APP_ID);
+
+        ueIdGenerator = coreService.getIdGenerator("xran-ue-id");
+
         log.info("XRAN Default Store Started");
     }
 
     @Deactivate
-    public void deactive() {
+    public void deactivate() {
         log.info("XRAN Default Store Stopped");
     }
 
@@ -110,12 +115,11 @@
     @Override
     public List<RnibLink> getLinksByUeId(long euId) {
         List<RnibLink> list = Lists.newArrayList();
-        MMEUES1APID mme = new MMEUES1APID(euId);
 
         list.addAll(
                 linkMap.keySet()
                         .stream()
-                        .filter(k -> k.getMmeues1apid().equals(mme))
+                        .filter(k -> k.getUeId().equals(euId))
                         .map(v -> linkMap.get(v))
                         .collect(Collectors.toList()));
 
@@ -126,12 +130,11 @@
     @Override
     public RnibLink getLinkBetweenCellIdUeId(String eciHex, long euId) {
         EUTRANCellIdentifier eci = hexToECI(eciHex);
-        MMEUES1APID mme = new MMEUES1APID(euId);
 
         Optional<LinkId> first = linkMap.keySet()
                 .stream()
                 .filter(linkId -> linkId.getEcgi().getEUTRANcellIdentifier().equals(eci))
-                .filter(linkId -> linkId.getMmeues1apid().equals(mme))
+                .filter(linkId -> linkId.getUeId().equals(euId))
                 .findFirst();
 
         return first.map(linkId -> linkMap.get(linkId)).orElse(null);
@@ -144,7 +147,7 @@
                 // if we add a primary link then change the primary to non serving
                 if (link.getType().equals(RnibLink.Type.SERVING_PRIMARY)) {
                     RnibUe ue = link.getLinkId().getUe();
-                    getLinksByUeId(ue.getMmeS1apId().longValue())
+                    getLinksByUeId(ue.getId())
                             .forEach(l -> {
                                 if (l.getType().equals(RnibLink.Type.SERVING_PRIMARY)) {
                                     l.setType(RnibLink.Type.NON_SERVING);
@@ -162,9 +165,9 @@
     }
 
     @Override
-    public RnibLink getLink(ECGI ecgi, MMEUES1APID mme) {
+    public RnibLink getLink(ECGI ecgi, Long ueId) {
 
-        LinkId linkId = LinkId.valueOf(ecgi, mme);
+        LinkId linkId = LinkId.valueOf(ecgi, ueId);
         return linkMap.get(linkId);
     }
 
@@ -267,25 +270,19 @@
 
     @Override
     public void storeUe(RnibUe ue) {
-        if (ue.getMmeS1apId() != null) {
-            ueMap.putIfAbsent(ue.getMmeS1apId(), ue);
-        }
+        long newId = ueIdGenerator.getNewId();
+        ue.setId(newId);
+        ueMap.put(newId, ue);
     }
 
     @Override
-    public boolean removeUe(MMEUES1APID mme) {
-        return ueMap.remove(mme) != null;
+    public boolean removeUe(long ueId) {
+        return ueMap.remove(ueId) != null;
     }
 
     @Override
-    public RnibUe getUe(long euId) {
-        MMEUES1APID mme = new MMEUES1APID(euId);
-        return ueMap.get(mme);
-    }
-
-    @Override
-    public RnibUe getUe(MMEUES1APID mme) {
-        return ueMap.get(mme);
+    public RnibUe getUe(long ueId) {
+        return ueMap.get(ueId);
     }
 
     private EUTRANCellIdentifier hexToECI(String eciHex) {