CRNTI to be unique per cell, added fields in configuration, rx_signal from seconds to ms, on cell connection we resend meascells
diff --git a/src/main/java/org.onosproject.xran/wrapper/LinkMap.java b/src/main/java/org.onosproject.xran/wrapper/LinkMap.java
index 033f132..5e62271 100644
--- a/src/main/java/org.onosproject.xran/wrapper/LinkMap.java
+++ b/src/main/java/org.onosproject.xran/wrapper/LinkMap.java
@@ -16,8 +16,6 @@
package org.onosproject.xran.wrapper;
-import com.google.common.collect.BiMap;
-import com.google.common.collect.HashBiMap;
import org.onosproject.xran.XranStore;
import org.onosproject.xran.codecs.api.CRNTI;
import org.onosproject.xran.codecs.api.ECGI;
@@ -25,7 +23,6 @@
import org.onosproject.xran.entities.RnibCell;
import org.onosproject.xran.entities.RnibLink;
import org.onosproject.xran.entities.RnibUe;
-import org.onosproject.xran.identifiers.LinkId;
import org.slf4j.Logger;
import java.util.List;
@@ -35,26 +32,29 @@
public class LinkMap {
private static final Logger log = getLogger(LinkMap.class);
- private final XranStore xranStore;
- private BiMap<CRNTI, MMEUES1APID> crntiMme = HashBiMap.create();
- public LinkMap(XranStore xranStore) {
+ private final XranStore xranStore;
+
+ private UeMap ueMap;
+
+ public LinkMap(XranStore xranStore, UeMap ueMap) {
this.xranStore = xranStore;
+ this.ueMap = ueMap;
}
public void putPrimaryLink(RnibCell cell, RnibUe ue) {
RnibLink link = new RnibLink(cell, ue);
link.setType(RnibLink.Type.SERVING_PRIMARY);
xranStore.storeLink(link);
- crntiMme.put(ue.getRanId(), ue.getMmeS1apId());
+
+ ueMap.putCrnti(cell, ue);
}
public RnibLink putNonServingLink(RnibCell cell, CRNTI crnti) {
RnibLink link = null;
- MMEUES1APID mmeues1APID = crntiMme.get(crnti);
+ RnibUe ue = ueMap.get(cell.getEcgi(), crnti);
- if (mmeues1APID != null) {
- RnibUe ue = xranStore.getUe(mmeues1APID);
+ if (ue != null) {
link = new RnibLink(cell, ue);
xranStore.storeLink(link);
} else {
@@ -71,41 +71,16 @@
}
public RnibLink get(ECGI src, CRNTI dst) {
- MMEUES1APID mmeues1APID = crntiMme.get(dst);
+ RnibUe ue = ueMap.get(src, dst);
- if (mmeues1APID != null) {
- return xranStore.getLink(src, mmeues1APID);
+ if (ue != null) {
+ return xranStore.getLink(src, ue.getMmeS1apId());
}
return null;
}
public CRNTI getCrnti(MMEUES1APID mme) {
- return crntiMme.inverse().get(mme);
- }
-
- public boolean remove(ECGI src, MMEUES1APID dst) {
- RnibLink link = xranStore.getLink(src, dst);
-
- if (link != null) {
- LinkId linkId = link.getLinkId();
- if (linkId != null) {
- return xranStore.removeLink(linkId);
- }
- }
- return false;
- }
-
- public boolean remove(ECGI src, CRNTI dst) {
- MMEUES1APID mmeues1APID = crntiMme.get(dst);
-
- RnibLink link = xranStore.getLink(src, mmeues1APID);
- if (link != null) {
- LinkId linkId = link.getLinkId();
- if (linkId != null) {
- return xranStore.removeLink(linkId);
- }
- }
- return false;
+ return ueMap.getCrntUe().inverse().get(mme).getValue();
}
public RnibCell getPrimaryCell(RnibUe ue) {