implemented PATCH, HO, SCELLADD, XICIC
diff --git a/src/main/java/org.onosproject.xran/entities/RnibCell.java b/src/main/java/org.onosproject.xran/entities/RnibCell.java
index 81aeafd..e56b6b1 100644
--- a/src/main/java/org.onosproject.xran/entities/RnibCell.java
+++ b/src/main/java/org.onosproject.xran/entities/RnibCell.java
@@ -55,8 +55,10 @@
public RnibCell() {
prbUsage = new PrbUsageContainer();
- setDefaultRRMConf();
version = "3";
+
+ rrmConfig = new RRMConfig();
+ rrmConfig.setEcgi(ecgi);
}
public static URI uri(ECGI ecgi) {
@@ -109,45 +111,6 @@
this.prbUsage = prbUsage;
}
- private void setDefaultRRMConf() {
- rrmConfig = new RRMConfig();
-
- rrmConfig.setEcgi(ecgi);
-
- RRMConfig.StartPrbDl startPrbDl = new RRMConfig.StartPrbDl();
- startPrbDl.addBerInteger(new BerInteger(0));
- startPrbDl.addBerInteger(new BerInteger(50));
-
- rrmConfig.setStartPrbDl(startPrbDl);
-
- RRMConfig.StartPrbUl startPrbUl = new RRMConfig.StartPrbUl();
- startPrbUl.addBerInteger(new BerInteger(50));
- startPrbUl.addBerInteger(new BerInteger(100));
-
- rrmConfig.setStartPrbUl(startPrbUl);
-
- RRMConfig.EndPrbDl endPrbDl = new RRMConfig.EndPrbDl();
- endPrbDl.addBerInteger(new BerInteger(50));
- endPrbDl.addBerInteger(new BerInteger(100));
-
- rrmConfig.setEndPrbDl(endPrbDl);
-
- RRMConfig.EndPrbUl endPrbUl = new RRMConfig.EndPrbUl();
- endPrbUl.addBerInteger(new BerInteger(50));
- endPrbUl.addBerInteger(new BerInteger(100));
-
- rrmConfig.setEndPrbUl(endPrbUl);
-
- RRMConfig.SubframeBitmaskDl subframeBitmaskDl = new RRMConfig.SubframeBitmaskDl();
- BerBitString berBitString = new BerBitString(new byte[]{(byte) 0xAA, (byte) 0x80}, 10);
- BerBitString berBitString1 = new BerBitString(new byte[]{(byte) 0x55, (byte) 0x40}, 10);
-
- subframeBitmaskDl.addBerBitString(berBitString);
- subframeBitmaskDl.addBerBitString(berBitString1);
-
- rrmConfig.setSubframeBitmaskDl(subframeBitmaskDl);
- }
-
public ECGI getEcgi() {
return ecgi;
}
@@ -177,7 +140,7 @@
if (start_prb_dl != null) {
RRMConfig.StartPrbDl startPrbDl = new RRMConfig.StartPrbDl();
if (start_prb_dl.isArray()) {
- if (rrmConfig.getStartPrbDl().getSeqOf().size() == start_prb_dl.size()) {
+ if (ueList.size() == start_prb_dl.size()) {
List<BerInteger> collect = Stream.of(start_prb_dl)
.map(val -> new BerInteger(val.asInt()))
.collect(Collectors.toList());
@@ -193,7 +156,7 @@
if (end_prb_dl != null) {
RRMConfig.EndPrbDl endPrbDl = new RRMConfig.EndPrbDl();
if (end_prb_dl.isArray()) {
- if (rrmConfig.getEndPrbDl().getSeqOf().size() == end_prb_dl.size()) {
+ if (ueList.size() == end_prb_dl.size()) {
List<BerInteger> collect = Stream.of(end_prb_dl)
.map(val -> new BerInteger(val.asInt()))
.collect(Collectors.toList());
@@ -209,7 +172,7 @@
if (start_prb_ul != null) {
RRMConfig.StartPrbUl startPrbUl = new RRMConfig.StartPrbUl();
if (start_prb_ul.isArray()) {
- if (rrmConfig.getStartPrbUl().getSeqOf().size() == start_prb_ul.size()) {
+ if (ueList.size() == start_prb_ul.size()) {
List<BerInteger> collect = Stream.of(start_prb_ul)
.map(val -> new BerInteger(val.asInt()))
.collect(Collectors.toList());
@@ -225,7 +188,7 @@
if (end_prb_ul != null) {
RRMConfig.EndPrbUl endPrbUl = new RRMConfig.EndPrbUl();
if (end_prb_ul.isArray()) {
- if (rrmConfig.getEndPrbUl().getSeqOf().size() == end_prb_ul.size()) {
+ if (ueList.size() == end_prb_ul.size()) {
List<BerInteger> collect = Stream.of(end_prb_ul)
.map(val -> new BerInteger(val.asInt()))
.collect(Collectors.toList());
@@ -237,8 +200,6 @@
}
rrmConfig.setCrnti(crnti);
-
- // TODO
}
public SchedMeasReportPerCell.QciVals getQci() {
diff --git a/src/main/java/org.onosproject.xran/entities/RnibLink.java b/src/main/java/org.onosproject.xran/entities/RnibLink.java
index 8af1644..9b024b9 100644
--- a/src/main/java/org.onosproject.xran/entities/RnibLink.java
+++ b/src/main/java/org.onosproject.xran/entities/RnibLink.java
@@ -17,6 +17,7 @@
package org.onosproject.xran.entities;
import com.fasterxml.jackson.databind.JsonNode;
+import com.google.common.collect.Lists;
import org.onosproject.xran.codecs.api.*;
import org.onosproject.xran.codecs.pdu.PDCPMeasReportPerUe;
import org.onosproject.xran.codecs.pdu.RRMConfig;
@@ -65,7 +66,11 @@
linkId = LinkId.valueOf(cell, ue);
- setDefaultRRMConf();
+ rrmParameters = new RRMConfig();
+ RRMConfig.Crnti crnti = new RRMConfig.Crnti();
+ crnti.addCRNTI(linkId.getUe().getRanId());
+ rrmParameters.setCrnti(crnti);
+ rrmParameters.setEcgi(linkId.getEcgi());
}
public Timer getTimer() {
@@ -133,70 +138,56 @@
public void modifyRrmParameters(JsonNode rrmConfigNode) {
{
- JsonNode start_prb_dl = rrmConfigNode.get("start_prb_dl");
- if (start_prb_dl != null) {
+ JsonNode start_prb_dl = rrmConfigNode.path("start_prb_dl");
+ if (!start_prb_dl.isMissingNode()) {
RRMConfig.StartPrbDl startPrbDl = new RRMConfig.StartPrbDl();
- if (start_prb_dl.isArray()) {
- if (rrmParameters.getStartPrbDl().getSeqOf().size() == start_prb_dl.size()) {
- List<BerInteger> collect = Stream.of(start_prb_dl)
- .map(val -> new BerInteger(val.asInt()))
- .collect(Collectors.toList());
- startPrbDl.setSeqOf(collect);
- }
- }
+
+ List<BerInteger> collect = Lists.newArrayList();
+ collect.add(new BerInteger(start_prb_dl.asInt()));
+ startPrbDl.setSeqOf(collect);
+
rrmParameters.setStartPrbDl(startPrbDl);
}
}
{
JsonNode end_prb_dl = rrmConfigNode.get("end_prb_dl");
- if (end_prb_dl != null) {
+ if (!end_prb_dl.isMissingNode()) {
RRMConfig.EndPrbDl endPrbDl = new RRMConfig.EndPrbDl();
- if (end_prb_dl.isArray()) {
- if (rrmParameters.getEndPrbDl().getSeqOf().size() == end_prb_dl.size()) {
- List<BerInteger> collect = Stream.of(end_prb_dl)
- .map(val -> new BerInteger(val.asInt()))
- .collect(Collectors.toList());
- endPrbDl.setSeqOf(collect);
- }
- }
+
+ List<BerInteger> collect = Lists.newArrayList();
+ collect.add(new BerInteger(end_prb_dl.asInt()));
+ endPrbDl.setSeqOf(collect);
+
rrmParameters.setEndPrbDl(endPrbDl);
}
}
{
JsonNode start_prb_ul = rrmConfigNode.get("start_prb_ul");
- if (start_prb_ul != null) {
+ if (!start_prb_ul.isMissingNode()) {
RRMConfig.StartPrbUl startPrbUl = new RRMConfig.StartPrbUl();
- if (start_prb_ul.isArray()) {
- if (rrmParameters.getStartPrbUl().getSeqOf().size() == start_prb_ul.size()) {
- List<BerInteger> collect = Stream.of(start_prb_ul)
- .map(val -> new BerInteger(val.asInt()))
- .collect(Collectors.toList());
- startPrbUl.setSeqOf(collect);
- }
- }
+
+ List<BerInteger> collect = Lists.newArrayList();
+ collect.add(new BerInteger(start_prb_ul.asInt()));
+ startPrbUl.setSeqOf(collect);
+
rrmParameters.setStartPrbUl(startPrbUl);
}
}
{
JsonNode end_prb_ul = rrmConfigNode.get("end_prb_ul");
- if (end_prb_ul != null) {
+ if (!end_prb_ul.isMissingNode()) {
RRMConfig.EndPrbUl endPrbUl = new RRMConfig.EndPrbUl();
- if (end_prb_ul.isArray()) {
- if (rrmParameters.getEndPrbUl().getSeqOf().size() == end_prb_ul.size()) {
- List<BerInteger> collect = Stream.of(end_prb_ul)
- .map(val -> new BerInteger(val.asInt()))
- .collect(Collectors.toList());
- endPrbUl.setSeqOf(collect);
- }
- }
+
+ List<BerInteger> collect = Lists.newArrayList();
+ collect.add(new BerInteger(end_prb_ul.asInt()));
+ endPrbUl.setSeqOf(collect);
+
rrmParameters.setEndPrbUl(endPrbUl);
}
}
-
- // TODO
}
public PDCPThroughput getPdcpThroughput() {
@@ -223,50 +214,6 @@
this.resourceUsage = resourceUsage;
}
- private void setDefaultRRMConf() {
- rrmParameters = new RRMConfig();
-
- RRMConfig.Crnti crnti = new RRMConfig.Crnti();
- crnti.addCRNTI(linkId.getUe().getRanId());
-
- rrmParameters.setCrnti(crnti);
-
- rrmParameters.setEcgi(linkId.getEcgi());
-
- RRMConfig.StartPrbDl startPrbDl = new RRMConfig.StartPrbDl();
- startPrbDl.addBerInteger(new BerInteger(0));
- startPrbDl.addBerInteger(new BerInteger(50));
-
- rrmParameters.setStartPrbDl(startPrbDl);
-
- RRMConfig.StartPrbUl startPrbUl = new RRMConfig.StartPrbUl();
- startPrbUl.addBerInteger(new BerInteger(50));
- startPrbUl.addBerInteger(new BerInteger(100));
-
- rrmParameters.setStartPrbUl(startPrbUl);
-
- RRMConfig.EndPrbDl endPrbDl = new RRMConfig.EndPrbDl();
- endPrbDl.addBerInteger(new BerInteger(50));
- endPrbDl.addBerInteger(new BerInteger(100));
-
- rrmParameters.setEndPrbDl(endPrbDl);
-
- RRMConfig.EndPrbUl endPrbUl = new RRMConfig.EndPrbUl();
- endPrbUl.addBerInteger(new BerInteger(50));
- endPrbUl.addBerInteger(new BerInteger(100));
-
- rrmParameters.setEndPrbUl(endPrbUl);
-
- RRMConfig.SubframeBitmaskDl subframeBitmaskDl = new RRMConfig.SubframeBitmaskDl();
- BerBitString berBitString = new BerBitString(new byte[]{(byte) 0xAA, (byte) 0x80}, 10);
- BerBitString berBitString1 = new BerBitString(new byte[]{(byte) 0x55, (byte) 0x40}, 10);
-
- subframeBitmaskDl.addBerBitString(berBitString);
- subframeBitmaskDl.addBerBitString(berBitString1);
-
- rrmParameters.setSubframeBitmaskDl(subframeBitmaskDl);
- }
-
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@@ -307,10 +254,16 @@
}
},
// TODO: Add CA/DC
- SERVING_SECONDARY("serving/secondary") {
+ SERVING_SECONDARY_CA("serving/secondary/ca") {
@Override
public String toString() {
- return "\"serving/secondary\"";
+ return "\"serving/secondary/ca\"";
+ }
+ },
+ SERVING_SECONDARY_DC("serving/secondary/dc") {
+ @Override
+ public String toString() {
+ return "\"serving/secondary/dc\"";
}
},
NON_SERVING("non-serving") {