introduced xran UE context ID
diff --git a/src/main/java/org.onosproject.xran/wrapper/UeMap.java b/src/main/java/org.onosproject.xran/wrapper/UeMap.java
index 1938a79..8b2110d 100644
--- a/src/main/java/org.onosproject.xran/wrapper/UeMap.java
+++ b/src/main/java/org.onosproject.xran/wrapper/UeMap.java
@@ -16,25 +16,18 @@
package org.onosproject.xran.wrapper;
-import com.google.common.base.Objects;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
-import io.netty.channel.ChannelHandlerContext;
-import javafx.util.Pair;
-import org.onosproject.net.HostId;
import org.onosproject.xran.XranStore;
import org.onosproject.xran.codecs.api.CRNTI;
import org.onosproject.xran.codecs.api.ECGI;
-import org.onosproject.xran.codecs.api.ENBUES1APID;
import org.onosproject.xran.codecs.api.MMEUES1APID;
import org.onosproject.xran.entities.RnibCell;
import org.onosproject.xran.entities.RnibUe;
-
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
+import org.onosproject.xran.identifiers.EcgiCrntiPair;
public class UeMap {
- private BiMap<EcgiCrntiPair, MMEUES1APID> crntUe = HashBiMap.create();
+ private BiMap<EcgiCrntiPair, Long> crntUe = HashBiMap.create();
private XranStore xranStore;
@@ -42,75 +35,44 @@
this.xranStore = xranStore;
}
- public BiMap<EcgiCrntiPair, MMEUES1APID> getCrntUe() {
+ public BiMap<EcgiCrntiPair, Long> getCrntUe() {
return crntUe;
}
public void putCrnti(RnibCell cell, RnibUe ue) {
- CRNTI ranId = ue.getRanId();
+ CRNTI ranId = ue.getCrnti();
ECGI ecgi = cell.getEcgi();
if (ranId != null && ecgi != null) {
- crntUe.put(EcgiCrntiPair.valueOf(cell.getEcgi(),ue.getRanId()), ue.getMmeS1apId());
+ EcgiCrntiPair oldPair = crntUe.inverse().get(ue.getId()),
+ newPair = EcgiCrntiPair.valueOf(cell.getEcgi(), ue.getCrnti());
+ if (oldPair == null) {
+ crntUe.put(newPair, ue.getId());
+ } else {
+ crntUe.inverse().remove(ue.getId());
+ crntUe.put(newPair, ue.getId());
+ }
}
}
public void put(RnibCell cell, RnibUe ue) {
-
- MMEUES1APID mmeS1apId = ue.getMmeS1apId();
- if (mmeS1apId != null) {
- xranStore.storeUe(ue);
- putCrnti(cell, ue);
- }
+ xranStore.storeUe(ue);
+ putCrnti(cell, ue);
}
public RnibUe get(ECGI ecgi, CRNTI crnti) {
- MMEUES1APID mme = crntUe.get(EcgiCrntiPair.valueOf(ecgi, crnti));
- if (mme != null) {
- return xranStore.getUe(mme);
+ Long aLong = crntUe.get(EcgiCrntiPair.valueOf(ecgi, crnti));
+ if (aLong != null) {
+ return xranStore.getUe(aLong);
}
return null;
}
- public RnibUe get(MMEUES1APID mme) {
- if (mme != null) {
- return xranStore.getUe(mme);
- }
- return null;
+ public RnibUe get(Long ueId) {
+ return xranStore.getUe(ueId);
}
- public boolean remove(MMEUES1APID id) {
- crntUe.inverse().remove(id);
- return xranStore.removeUe(id);
- }
-
- public static class EcgiCrntiPair extends Pair<ECGI, CRNTI> {
-
- /**
- * Creates a new pair
- *
- * @param key The key for this pair
- * @param value The value to use for this pair
- */
- public EcgiCrntiPair(ECGI key, CRNTI value) {
- super(key, value);
- }
-
- public static EcgiCrntiPair valueOf(ECGI key, CRNTI value) {
- return new EcgiCrntiPair(key, value);
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(getKey(), getValue());
- }
-
- @Override
- public boolean equals(Object o) {
- if (o instanceof EcgiCrntiPair) {
- return ((EcgiCrntiPair) o).getKey().equals(getKey()) &&
- ((EcgiCrntiPair) o).getValue().equals(getValue());
- }
- return super.equals(o);
- }
+ public boolean remove(Long ueId) {
+ crntUe.inverse().remove(ueId);
+ return xranStore.removeUe(ueId);
}
}