initial commit
diff --git a/src/main/java/org.onosproject.xran/samplemessages/BearerEncoderDecoder.java b/src/main/java/org.onosproject.xran/samplemessages/BearerEncoderDecoder.java
new file mode 100644
index 0000000..0252451
--- /dev/null
+++ b/src/main/java/org.onosproject.xran/samplemessages/BearerEncoderDecoder.java
@@ -0,0 +1,100 @@
+package org.onosproject.xran.samplemessages;
+
+import org.onosproject.xran.codecs.api.*;
+import org.onosproject.xran.codecs.pdu.*;
+import org.openmuc.jasn1.ber.types.BerInteger;
+import org.openmuc.jasn1.ber.types.string.BerUTF8String;
+
+import java.io.UnsupportedEncodingException;
+
+public class BearerEncoderDecoder {
+
+ public static XrancPdu constructPacket(ECGI ecgi, CRNTI crnti, ERABParams erabParams, BerInteger numParams) {
+ ERABResponse erabResponse = new ERABResponse();
+
+ for (int i = 0; i < numParams.intValue(); i++) {
+ ERABParamsItem erabParamsItem = erabParams.getERABParamsItem().get(i);
+
+ ERABResponseItem responseItem = new ERABResponseItem();
+ responseItem.setId(erabParamsItem.getId());
+
+ // FIXME: add logic
+ responseItem.setDecision(new ERABDecision(0));
+
+ erabResponse.setERABResponse(responseItem);
+ }
+
+
+ BearerAdmissionResponse bearerAdmissionResponse = new BearerAdmissionResponse();
+ bearerAdmissionResponse.setCrnti(crnti);
+ bearerAdmissionResponse.setEcgi(ecgi);
+ bearerAdmissionResponse.setErabResponse(erabResponse);
+ bearerAdmissionResponse.setNumErabList(numParams);
+
+ XrancPduBody body = new XrancPduBody();
+ body.setBearerAdmissionResponse(bearerAdmissionResponse);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("2.0");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ XrancApiID apiID = new XrancApiID(9);
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setHdr(hdr);
+ pdu.setBody(body);
+
+ return pdu;
+ }
+
+ public XrancPdu setPacketProperties(XrancPdu mainDecoder) {
+ CRNTI crnti = mainDecoder.getBody().getBearerAdmissionRequest().getCrnti();
+ ECGI ecgi = mainDecoder.getBody().getBearerAdmissionRequest().getEcgi();
+
+ //TODO: Verify mainDecoder.getBody().getBearerAdmissionRequest().getNumErabs() or
+ BerInteger numErabs = new BerInteger(5);
+
+ ERABResponseItem responseItem = new ERABResponseItem();
+ responseItem.setId(new ERABID(1));
+ responseItem.setDecision(new ERABDecision(0));
+
+ ERABResponseItem responseItem1 = new ERABResponseItem();
+ responseItem1.setId(new ERABID(2));
+ responseItem1.setDecision(new ERABDecision(0));
+
+ ERABResponse erabResponse = new ERABResponse();
+ erabResponse.setERABResponse(responseItem);
+ erabResponse.setERABResponse(responseItem1);
+
+ BearerAdmissionResponse bearerAdmissionResponse = new BearerAdmissionResponse();
+ bearerAdmissionResponse.setCrnti(crnti);
+ bearerAdmissionResponse.setEcgi(ecgi);
+ bearerAdmissionResponse.setErabResponse(erabResponse);
+ bearerAdmissionResponse.setNumErabList(numErabs);
+
+ XrancPduBody body = new XrancPduBody();
+ body.setBearerAdmissionResponse(bearerAdmissionResponse);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("2.0");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ XrancApiID apiID = new XrancApiID(9);
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setHdr(hdr);
+ pdu.setBody(body);
+
+ return pdu;
+ }
+}
diff --git a/src/main/java/org.onosproject.xran/samplemessages/ConfigEncoderDecoder.java b/src/main/java/org.onosproject.xran/samplemessages/ConfigEncoderDecoder.java
new file mode 100644
index 0000000..ad74aab
--- /dev/null
+++ b/src/main/java/org.onosproject.xran/samplemessages/ConfigEncoderDecoder.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2015-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.xran.samplemessages;
+
+import org.onosproject.xran.codecs.api.ECGI;
+import org.onosproject.xran.codecs.api.EUTRANCellIdentifier;
+import org.onosproject.xran.codecs.api.PLMNIdentity;
+import org.onosproject.xran.codecs.pdu.*;
+import org.openmuc.jasn1.ber.types.string.BerUTF8String;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.UnsupportedEncodingException;
+
+/**
+ * Created by dimitris on 7/25/17.
+ */
+public class ConfigEncoderDecoder {
+ private static final Logger log =
+ LoggerFactory.getLogger(ConfigEncoderDecoder.class);
+
+ /*public String decode(String s) throws IOException {
+ byte[] bytearray = DatatypeConverter.parseHexBinary(s);
+ InputStream inputStream = new ByteArrayInputStream(bytearray);
+ XrancPdu pdu_decoded = new XrancPdu();
+ pdu_decoded.decode(inputStream);
+ return pdu_decoded.toString();
+ }*/
+/*
+ public String encodeConfigRequest()
+ throws IOException {
+ pdu = setPacketProperties();
+ pdu.encode(os);
+ return DatatypeConverter.printHexBinary(os.getArray());
+ }*/
+
+ public static XrancPdu constructPacket(ECGI ecgi) throws UnsupportedEncodingException {
+ CellConfigRequest cellConfigRequest = new CellConfigRequest();
+ cellConfigRequest.setEcgi(ecgi);
+
+ BerUTF8String ver = new BerUTF8String("2a");
+
+ XrancApiID apiID = new XrancApiID(0);
+ XrancPduBody body = new XrancPduBody();
+ body.setCellConfigRequest(cellConfigRequest);
+
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setBody(body);
+ pdu.setHdr(hdr);
+
+ return pdu;
+ }
+
+ public XrancPdu setPacketProperties() throws UnsupportedEncodingException {
+ PLMNIdentity plmnIdentity = new PLMNIdentity(new byte[]{(byte) 0x22, (byte) 0x08, (byte) 0x41});
+ EUTRANCellIdentifier eutranCellIdentifier = new EUTRANCellIdentifier(new byte[]{
+ (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xF0
+ }, 28);
+
+ ECGI ecgi = new ECGI();
+
+ ecgi.setPLMNIdentity(plmnIdentity);
+ ecgi.setEUTRANcellIdentifier(eutranCellIdentifier);
+
+ CellConfigRequest cellConfigRequest = new CellConfigRequest();
+ cellConfigRequest.setEcgi(ecgi);
+
+ BerUTF8String ver = new BerUTF8String("2a");
+
+ XrancApiID apiID = new XrancApiID(0);
+ XrancPduBody body = new XrancPduBody();
+ body.setCellConfigRequest(cellConfigRequest);
+
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setBody(body);
+ pdu.setHdr(hdr);
+
+ return pdu;
+ }
+
+}
diff --git a/src/main/java/org.onosproject.xran/samplemessages/ConfigReport.java b/src/main/java/org.onosproject.xran/samplemessages/ConfigReport.java
new file mode 100644
index 0000000..5ab504e
--- /dev/null
+++ b/src/main/java/org.onosproject.xran/samplemessages/ConfigReport.java
@@ -0,0 +1,106 @@
+package org.onosproject.xran.samplemessages;
+
+import org.onosproject.xran.codecs.api.*;
+import org.onosproject.xran.codecs.pdu.*;
+import org.openmuc.jasn1.ber.BerByteArrayOutputStream;
+import org.openmuc.jasn1.ber.types.BerBoolean;
+import org.openmuc.jasn1.ber.types.BerInteger;
+import org.openmuc.jasn1.ber.types.string.BerUTF8String;
+
+import java.io.UnsupportedEncodingException;
+
+public class ConfigReport {
+
+ BerByteArrayOutputStream os;
+
+ public ConfigReport() {
+ os = new BerByteArrayOutputStream(4096);
+ }
+
+ /*public String encodeResponse(XrancPdu decoder) {
+ pdu = setPacketProperties(decoder);
+ try {
+ pdu.encode(os);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return DatatypeConverter.printHexBinary(os.getArray());
+ }*/
+
+ public XrancPdu setPacketProperties(XrancPdu decoder) throws UnsupportedEncodingException {
+
+ ECGI ecgi = decoder.getBody().getCellConfigRequest().getEcgi();
+
+ PhysCellId physCellId = new PhysCellId(420);
+
+ PhysCellId physCellId1 = new PhysCellId(500);
+ ARFCNValue earfcn_dl = new ARFCNValue(2100);
+ CandScell candScell = new CandScell();
+ candScell.setPci(physCellId1);
+ candScell.setEarfcnDl(earfcn_dl);
+
+ PhysCellId physCellId2 = new PhysCellId(400);
+ ARFCNValue earfcn_dl1 = new ARFCNValue(2300);
+ CandScell candScell1 = new CandScell();
+ candScell1.setPci(physCellId2);
+ candScell1.setEarfcnDl(earfcn_dl1);
+
+ CellConfigReport.CandScells candScells = new CellConfigReport.CandScells();
+ candScells.setCandScells(candScell);
+ candScells.setCandScells(candScell1);
+
+ ARFCNValue earfcn_dl2 = new ARFCNValue(2000);
+
+ ARFCNValue earfcn_ul = new ARFCNValue(1900);
+
+ BerInteger rbs_per_tti_dl = new BerInteger(40);
+
+ BerInteger rbs_per_tti_ul = new BerInteger(30);
+
+ BerInteger num_tx_antenna = new BerInteger(2);
+
+ DuplexMode duplexMode = new DuplexMode(1);
+
+ BerInteger max_num_connected_ues = new BerInteger(1000);
+
+ BerInteger max_num_connected_bearers = new BerInteger(2000);
+
+ BerInteger max_num_ues_sched_per_tti_dl = new BerInteger(10);
+
+ BerInteger max_num_ues_sched_per_tti_ul = new BerInteger(10);
+
+ BerBoolean dlfs_sched_enable = new BerBoolean(true);
+
+ CellConfigReport cellConfigReport = new CellConfigReport();
+ cellConfigReport.setEcgi(ecgi);
+ cellConfigReport.setPci(physCellId);
+ cellConfigReport.setCandScells(candScells);
+ cellConfigReport.setEarfcnDl(earfcn_dl2);
+ cellConfigReport.setEarfcnUl(earfcn_ul);
+ cellConfigReport.setRbsPerTtiDl(rbs_per_tti_dl);
+ cellConfigReport.setRbsPerTtiUl(rbs_per_tti_ul);
+ cellConfigReport.setNumTxAntenna(num_tx_antenna);
+ cellConfigReport.setDuplexMode(duplexMode);
+ cellConfigReport.setMaxNumConnectedUes(max_num_connected_ues);
+ cellConfigReport.setMaxNumConnectedBearers(max_num_connected_bearers);
+ cellConfigReport.setMaxNumUesSchedPerTtiDl(max_num_ues_sched_per_tti_dl);
+ cellConfigReport.setMaxNumUesSchedPerTtiUl(max_num_ues_sched_per_tti_ul);
+ cellConfigReport.setDlfsSchedEnable(dlfs_sched_enable);
+
+ BerUTF8String ver = new BerUTF8String("2a");
+
+ XrancApiID apiID = new XrancApiID(1);
+ XrancPduBody body = new XrancPduBody();
+ body.setCellConfigReport(cellConfigReport);
+
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setBody(body);
+ pdu.setHdr(hdr);
+
+ return pdu;
+ }
+}
diff --git a/src/main/java/org.onosproject.xran/samplemessages/L2MeasConf.java b/src/main/java/org.onosproject.xran/samplemessages/L2MeasConf.java
new file mode 100644
index 0000000..5fa3087
--- /dev/null
+++ b/src/main/java/org.onosproject.xran/samplemessages/L2MeasConf.java
@@ -0,0 +1,81 @@
+package org.onosproject.xran.samplemessages;
+
+import org.onosproject.xran.codecs.api.ECGI;
+import org.onosproject.xran.codecs.api.EUTRANCellIdentifier;
+import org.onosproject.xran.codecs.api.PLMNIdentity;
+import org.onosproject.xran.codecs.pdu.*;
+import org.openmuc.jasn1.ber.types.BerInteger;
+import org.openmuc.jasn1.ber.types.string.BerUTF8String;
+
+import java.io.UnsupportedEncodingException;
+
+public class L2MeasConf {
+
+
+ public static XrancPdu constructPacket(ECGI ecgi, int l2MeasInterval) {
+
+ BerInteger reportIntervalMS = new BerInteger(l2MeasInterval);
+ L2MeasConfig measConfig = new L2MeasConfig();
+ measConfig.setEcgi(ecgi);
+ measConfig.setReportIntervalMs(reportIntervalMS);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("2a");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+
+ XrancApiID apiID = new XrancApiID(19);
+ XrancPduBody body = new XrancPduBody();
+ body.setL2MeasConfig(measConfig);
+
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setBody(body);
+ pdu.setHdr(hdr);
+
+ return pdu;
+
+ }
+
+ public XrancPdu setPacketProperties() {
+ PLMNIdentity plmnIdentity = new PLMNIdentity(new byte[]{(byte) 0x22, (byte) 0x08, (byte) 0x41});
+ EUTRANCellIdentifier eutranCellIdentifier = new EUTRANCellIdentifier(new byte[]{
+ (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xF0
+ }, 28);
+
+ ECGI ecgi = new ECGI();
+ ecgi.setPLMNIdentity(plmnIdentity);
+ ecgi.setEUTRANcellIdentifier(eutranCellIdentifier);
+
+ BerInteger reportIntervalMS = new BerInteger(10);
+ L2MeasConfig measConfig = new L2MeasConfig();
+ measConfig.setEcgi(ecgi);
+ measConfig.setReportIntervalMs(reportIntervalMS);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("2a");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+
+ XrancApiID apiID = new XrancApiID(19);
+ XrancPduBody body = new XrancPduBody();
+ body.setL2MeasConfig(measConfig);
+
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setBody(body);
+ pdu.setHdr(hdr);
+
+ return pdu;
+ }
+}
diff --git a/src/main/java/org.onosproject.xran/samplemessages/PDCPReportPerUE.java b/src/main/java/org.onosproject.xran/samplemessages/PDCPReportPerUE.java
new file mode 100644
index 0000000..2400cde
--- /dev/null
+++ b/src/main/java/org.onosproject.xran/samplemessages/PDCPReportPerUE.java
@@ -0,0 +1,96 @@
+package org.onosproject.xran.samplemessages;
+
+import org.onosproject.xran.codecs.api.CRNTI;
+import org.onosproject.xran.codecs.api.ECGI;
+import org.onosproject.xran.codecs.api.QCI;
+import org.onosproject.xran.codecs.pdu.*;
+import org.openmuc.jasn1.ber.types.BerInteger;
+import org.openmuc.jasn1.ber.types.string.BerUTF8String;
+
+import java.io.UnsupportedEncodingException;
+
+public class PDCPReportPerUE {
+
+ public XrancPdu setPacketProperties(XrancPdu recv_pdu) {
+ ECGI ecgi = recv_pdu.getBody().getL2MeasConfig().getEcgi();
+
+ //Need to get this from UE.
+ CRNTI crnti = new CRNTI(new byte[]{(byte) 0x44, (byte) 0x44}, 16);
+
+ PDCPMeasReportPerUe.QciVals qciVals = new PDCPMeasReportPerUe.QciVals();
+ qciVals.setQCI(new QCI(1));
+ qciVals.setQCI(new QCI(2));
+
+ PDCPMeasReportPerUe.DataVolDl dataVolDl = new PDCPMeasReportPerUe.DataVolDl();
+ dataVolDl.setBerInteger(new BerInteger(500));
+ dataVolDl.setBerInteger(new BerInteger(500));
+
+ PDCPMeasReportPerUe.DataVolUl dataVolUl = new PDCPMeasReportPerUe.DataVolUl();
+ dataVolUl.setBerInteger(new BerInteger(500));
+ dataVolUl.setBerInteger(new BerInteger(500));
+
+ PDCPMeasReportPerUe.PktDelayDl pktDelayDl = new PDCPMeasReportPerUe.PktDelayDl();
+ pktDelayDl.setBerInteger(new BerInteger(314));
+ pktDelayDl.setBerInteger(new BerInteger(314));
+
+ PDCPMeasReportPerUe.PktDelayUl pktDelayUl = new PDCPMeasReportPerUe.PktDelayUl();
+ pktDelayUl.setBerInteger(new BerInteger(314));
+ pktDelayUl.setBerInteger(new BerInteger(314));
+
+ PDCPMeasReportPerUe.PktDiscardRateDl pktDiscardRateDl = new PDCPMeasReportPerUe.PktDiscardRateDl();
+ pktDiscardRateDl.setBerInteger(new BerInteger(10));
+ pktDiscardRateDl.setBerInteger(new BerInteger(5));
+
+ PDCPMeasReportPerUe.PktLossRateDl pktLossRateDl = new PDCPMeasReportPerUe.PktLossRateDl();
+ pktLossRateDl.setBerInteger(new BerInteger(5));
+ pktLossRateDl.setBerInteger(new BerInteger(10));
+
+ PDCPMeasReportPerUe.PktLossRateUl pktLossRateUl = new PDCPMeasReportPerUe.PktLossRateUl();
+ pktLossRateUl.setBerInteger(new BerInteger(8));
+ pktLossRateUl.setBerInteger(new BerInteger(2));
+
+ PDCPMeasReportPerUe.ThroughputDl throughputDl = new PDCPMeasReportPerUe.ThroughputDl();
+ throughputDl.setBerInteger(new BerInteger(500));
+ throughputDl.setBerInteger(new BerInteger(500));
+
+ PDCPMeasReportPerUe.ThroughputUl throughputUl = new PDCPMeasReportPerUe.ThroughputUl();
+ throughputUl.setBerInteger(new BerInteger(500));
+ throughputUl.setBerInteger(new BerInteger(500));
+
+ PDCPMeasReportPerUe pdcpMeasReportPerUe = new PDCPMeasReportPerUe();
+ pdcpMeasReportPerUe.setCrnti(crnti);
+ pdcpMeasReportPerUe.setEcgi(ecgi);
+ pdcpMeasReportPerUe.setQciVals(qciVals);
+ pdcpMeasReportPerUe.setDataVolDl(dataVolDl);
+ pdcpMeasReportPerUe.setDataVolUl(dataVolUl);
+ pdcpMeasReportPerUe.setPktDelayDl(pktDelayDl);
+ pdcpMeasReportPerUe.setPktDelayUl(pktDelayUl);
+ pdcpMeasReportPerUe.setPktDiscardRateDl(pktDiscardRateDl);
+ pdcpMeasReportPerUe.setPktLossRateDl(pktLossRateDl);
+ pdcpMeasReportPerUe.setPktLossRateUl(pktLossRateUl);
+ pdcpMeasReportPerUe.setThroughputDl(throughputDl);
+ pdcpMeasReportPerUe.setThroughputUl(throughputUl);
+
+ XrancPduBody body = new XrancPduBody();
+ body.setPDCPMeasReportPerUe(pdcpMeasReportPerUe);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("4");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+
+ XrancApiID apiID = new XrancApiID(24);
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setHdr(hdr);
+ pdu.setBody(body);
+
+ return pdu;
+
+ }
+}
diff --git a/src/main/java/org.onosproject.xran/samplemessages/RXSigMeasRep.java b/src/main/java/org.onosproject.xran/samplemessages/RXSigMeasRep.java
new file mode 100644
index 0000000..e59b399
--- /dev/null
+++ b/src/main/java/org.onosproject.xran/samplemessages/RXSigMeasRep.java
@@ -0,0 +1,61 @@
+package org.onosproject.xran.samplemessages;
+
+import org.onosproject.xran.codecs.api.*;
+import org.onosproject.xran.codecs.pdu.*;
+import org.openmuc.jasn1.ber.types.string.BerUTF8String;
+
+import java.io.UnsupportedEncodingException;
+
+public class RXSigMeasRep {
+
+ public XrancPdu setPacketProperties(XrancPdu decoder) {
+ CRNTI crnti = decoder.getBody().getRXSigMeasConfig().getCrnti();
+ ECGI ecgi = decoder.getBody().getRXSigMeasConfig().getEcgi();
+
+ RXSigMeasReport.CellMeasReports cellMeasReports = new RXSigMeasReport.CellMeasReports();
+ RXSigReport rxSigReport = new RXSigReport();
+ PCIARFCN pciarfcn = new PCIARFCN();
+ pciarfcn.setPci(new PhysCellId(500));
+ pciarfcn.setEarfcnDl(new ARFCNValue(2100));
+ rxSigReport.setPciArfcn(pciarfcn);
+ rxSigReport.setRsrp(new RSRPRange(4));
+ rxSigReport.setRsrq(new RSRQRange(5));
+ cellMeasReports.setRXSigReport(rxSigReport);
+
+ RXSigReport rxSigReport1 = new RXSigReport();
+ PCIARFCN pciarfcn1 = new PCIARFCN();
+ pciarfcn1.setPci(new PhysCellId(500));
+ pciarfcn1.setEarfcnDl(new ARFCNValue(2100));
+ rxSigReport1.setPciArfcn(pciarfcn);
+ rxSigReport1.setRsrp(new RSRPRange(4));
+ rxSigReport1.setRsrq(new RSRQRange(5));
+ cellMeasReports.setRXSigReport(rxSigReport1);
+
+ RXSigMeasReport rxSigMeasReport = new RXSigMeasReport();
+ rxSigMeasReport.setCrnti(crnti);
+ rxSigMeasReport.setEcgi(ecgi);
+ rxSigMeasReport.setCellMeasReports(cellMeasReports);
+
+ XrancPduBody body = new XrancPduBody();
+ body.setRXSigMeasReport(rxSigMeasReport);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("4");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+
+ XrancApiID apiID = new XrancApiID(18);
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setHdr(hdr);
+ pdu.setBody(body);
+
+ return pdu;
+
+ }
+}
diff --git a/src/main/java/org.onosproject.xran/samplemessages/RadioReportPerCell.java b/src/main/java/org.onosproject.xran/samplemessages/RadioReportPerCell.java
new file mode 100644
index 0000000..9f6218b
--- /dev/null
+++ b/src/main/java/org.onosproject.xran/samplemessages/RadioReportPerCell.java
@@ -0,0 +1,78 @@
+package org.onosproject.xran.samplemessages;
+
+import org.onosproject.xran.codecs.api.ECGI;
+import org.onosproject.xran.codecs.pdu.*;
+import org.openmuc.jasn1.ber.types.BerInteger;
+import org.openmuc.jasn1.ber.types.string.BerUTF8String;
+
+import java.io.UnsupportedEncodingException;
+
+public class RadioReportPerCell {
+ public XrancPdu setPacketProperties(XrancPdu recv_pdu) {
+
+ ECGI ecgi = recv_pdu.getBody().getL2MeasConfig().getEcgi();
+ RadioMeasReportPerCell.PuschIntfPowerHist puschIntfPowerHist = new RadioMeasReportPerCell.PuschIntfPowerHist();
+ puschIntfPowerHist.setBerInteger(new BerInteger(1));
+ puschIntfPowerHist.setBerInteger(new BerInteger(2));
+ puschIntfPowerHist.setBerInteger(new BerInteger(3));
+ puschIntfPowerHist.setBerInteger(new BerInteger(4));
+ puschIntfPowerHist.setBerInteger(new BerInteger(5));
+ puschIntfPowerHist.setBerInteger(new BerInteger(6));
+ puschIntfPowerHist.setBerInteger(new BerInteger(7));
+ puschIntfPowerHist.setBerInteger(new BerInteger(8));
+ puschIntfPowerHist.setBerInteger(new BerInteger(9));
+ puschIntfPowerHist.setBerInteger(new BerInteger(10));
+ puschIntfPowerHist.setBerInteger(new BerInteger(11));
+ puschIntfPowerHist.setBerInteger(new BerInteger(12));
+ puschIntfPowerHist.setBerInteger(new BerInteger(13));
+ puschIntfPowerHist.setBerInteger(new BerInteger(14));
+ puschIntfPowerHist.setBerInteger(new BerInteger(15));
+ puschIntfPowerHist.setBerInteger(new BerInteger(16));
+ puschIntfPowerHist.setBerInteger(new BerInteger(17));
+
+ RadioMeasReportPerCell.PucchIntfPowerHist pucchIntfPowerHist = new RadioMeasReportPerCell.PucchIntfPowerHist();
+ pucchIntfPowerHist.setBerInteger(new BerInteger(1));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(2));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(3));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(4));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(5));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(6));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(7));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(8));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(9));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(10));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(11));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(12));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(13));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(14));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(15));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(16));
+ pucchIntfPowerHist.setBerInteger(new BerInteger(17));
+
+ RadioMeasReportPerCell radioMeasReportPerCell = new RadioMeasReportPerCell();
+ radioMeasReportPerCell.setEcgi(ecgi);
+ radioMeasReportPerCell.setPuschIntfPowerHist(puschIntfPowerHist);
+ radioMeasReportPerCell.setPucchIntfPowerHist(pucchIntfPowerHist);
+
+ XrancPduBody body = new XrancPduBody();
+ body.setRadioMeasReportPerCell(radioMeasReportPerCell);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("4");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+
+ XrancApiID apiID = new XrancApiID(21);
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setHdr(hdr);
+ pdu.setBody(body);
+
+ return pdu;
+ }
+}
diff --git a/src/main/java/org.onosproject.xran/samplemessages/RadioReportPerUE.java b/src/main/java/org.onosproject.xran/samplemessages/RadioReportPerUE.java
new file mode 100644
index 0000000..003d973
--- /dev/null
+++ b/src/main/java/org.onosproject.xran/samplemessages/RadioReportPerUE.java
@@ -0,0 +1,112 @@
+package org.onosproject.xran.samplemessages;
+
+import org.onosproject.xran.codecs.api.*;
+import org.onosproject.xran.codecs.pdu.*;
+import org.openmuc.jasn1.ber.types.BerInteger;
+import org.openmuc.jasn1.ber.types.string.BerUTF8String;
+
+import java.io.UnsupportedEncodingException;
+
+public class RadioReportPerUE {
+
+ public XrancPdu setPacketProperties(XrancPdu recv_pdu) {
+ ECGI ecgi = recv_pdu.getBody().getL2MeasConfig().getEcgi();
+
+ //Need to get this from UE.
+ CRNTI crnti = new CRNTI(new byte[]{(byte) 0x44, (byte) 0x44}, 16);
+ RadioRepPerServCell radioRepPerServCell = new RadioRepPerServCell();
+ PCIARFCN pciarfcn = new PCIARFCN();
+ pciarfcn.setPci(new PhysCellId(500));
+ pciarfcn.setEarfcnDl(new ARFCNValue(2100));
+ radioRepPerServCell.setPciArfcn(pciarfcn);
+
+ RadioRepPerServCell.CqiHist cqiHist = new RadioRepPerServCell.CqiHist();
+ cqiHist.setBerInteger(new BerInteger(1));
+ cqiHist.setBerInteger(new BerInteger(2));
+ cqiHist.setBerInteger(new BerInteger(3));
+ cqiHist.setBerInteger(new BerInteger(4));
+ cqiHist.setBerInteger(new BerInteger(5));
+ cqiHist.setBerInteger(new BerInteger(6));
+ cqiHist.setBerInteger(new BerInteger(7));
+ cqiHist.setBerInteger(new BerInteger(8));
+ cqiHist.setBerInteger(new BerInteger(9));
+ cqiHist.setBerInteger(new BerInteger(10));
+ cqiHist.setBerInteger(new BerInteger(11));
+ cqiHist.setBerInteger(new BerInteger(12));
+ cqiHist.setBerInteger(new BerInteger(13));
+ cqiHist.setBerInteger(new BerInteger(14));
+ cqiHist.setBerInteger(new BerInteger(15));
+ cqiHist.setBerInteger(new BerInteger(16));
+ radioRepPerServCell.setCqiHist(cqiHist);
+
+ RadioRepPerServCell.RiHist riHist = new RadioRepPerServCell.RiHist();
+ riHist.setBerInteger(new BerInteger(1));
+ riHist.setBerInteger(new BerInteger(1));
+ radioRepPerServCell.setRiHist(riHist);
+
+ RadioRepPerServCell.PuschSinrHist puschSinrHist = new RadioRepPerServCell.PuschSinrHist();
+ puschSinrHist.setBerInteger(new BerInteger(1));
+ puschSinrHist.setBerInteger(new BerInteger(2));
+ puschSinrHist.setBerInteger(new BerInteger(3));
+ puschSinrHist.setBerInteger(new BerInteger(4));
+ puschSinrHist.setBerInteger(new BerInteger(5));
+ puschSinrHist.setBerInteger(new BerInteger(6));
+ puschSinrHist.setBerInteger(new BerInteger(7));
+ puschSinrHist.setBerInteger(new BerInteger(8));
+ puschSinrHist.setBerInteger(new BerInteger(9));
+ puschSinrHist.setBerInteger(new BerInteger(10));
+ puschSinrHist.setBerInteger(new BerInteger(11));
+ puschSinrHist.setBerInteger(new BerInteger(12));
+ puschSinrHist.setBerInteger(new BerInteger(13));
+ puschSinrHist.setBerInteger(new BerInteger(14));
+ radioRepPerServCell.setPuschSinrHist(puschSinrHist);
+
+ RadioRepPerServCell.PucchSinrHist pucchSinrHist = new RadioRepPerServCell.PucchSinrHist();
+ pucchSinrHist.setBerInteger(new BerInteger(1));
+ pucchSinrHist.setBerInteger(new BerInteger(2));
+ pucchSinrHist.setBerInteger(new BerInteger(3));
+ pucchSinrHist.setBerInteger(new BerInteger(4));
+ pucchSinrHist.setBerInteger(new BerInteger(5));
+ pucchSinrHist.setBerInteger(new BerInteger(6));
+ pucchSinrHist.setBerInteger(new BerInteger(7));
+ pucchSinrHist.setBerInteger(new BerInteger(8));
+ pucchSinrHist.setBerInteger(new BerInteger(9));
+ pucchSinrHist.setBerInteger(new BerInteger(10));
+ pucchSinrHist.setBerInteger(new BerInteger(11));
+ pucchSinrHist.setBerInteger(new BerInteger(12));
+ pucchSinrHist.setBerInteger(new BerInteger(13));
+ pucchSinrHist.setBerInteger(new BerInteger(14));
+ radioRepPerServCell.setPucchSinrHist(pucchSinrHist);
+
+
+ RadioMeasReportPerUE.RadioReportServCells radioReportServCells = new RadioMeasReportPerUE.RadioReportServCells();
+ radioReportServCells.setRadioRepPerServCell(radioRepPerServCell);
+
+ RadioMeasReportPerUE radioMeasReportPerUE = new RadioMeasReportPerUE();
+ radioMeasReportPerUE.setRadioReportServCells(radioReportServCells);
+ radioMeasReportPerUE.setCrnti(crnti);
+ radioMeasReportPerUE.setEcgi(ecgi);
+
+ XrancPduBody body = new XrancPduBody();
+ body.setRadioMeasReportPerUE(radioMeasReportPerUE);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("4");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+
+ XrancApiID apiID = new XrancApiID(20);
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setHdr(hdr);
+ pdu.setBody(body);
+
+ return pdu;
+
+ }
+}
diff --git a/src/main/java/org.onosproject.xran/samplemessages/SchedReportPerCell.java b/src/main/java/org.onosproject.xran/samplemessages/SchedReportPerCell.java
new file mode 100644
index 0000000..43ccecc
--- /dev/null
+++ b/src/main/java/org.onosproject.xran/samplemessages/SchedReportPerCell.java
@@ -0,0 +1,69 @@
+package org.onosproject.xran.samplemessages;
+
+import org.onosproject.xran.codecs.api.ECGI;
+import org.onosproject.xran.codecs.api.PRBUsage;
+import org.onosproject.xran.codecs.api.QCI;
+import org.onosproject.xran.codecs.pdu.*;
+import org.openmuc.jasn1.ber.types.BerInteger;
+import org.openmuc.jasn1.ber.types.string.BerUTF8String;
+
+import java.io.UnsupportedEncodingException;
+
+public class SchedReportPerCell {
+
+ public XrancPdu setPacketProperties(XrancPdu recv_pdu) {
+ ECGI ecgi = recv_pdu.getBody().getL2MeasConfig().getEcgi();
+
+ SchedMeasReportPerCell.QciVals qciVals = new SchedMeasReportPerCell.QciVals();
+ qciVals.setQCI(new QCI(1));
+ qciVals.setQCI(new QCI(2));
+
+ PRBUsage pcell = new PRBUsage();
+ PRBUsage.PrbUsageDl prbUsageDl = new PRBUsage.PrbUsageDl();
+ prbUsageDl.setBerInteger(new BerInteger(50));
+ prbUsageDl.setBerInteger(new BerInteger(100));
+ pcell.setPrbUsageDl(prbUsageDl);
+
+ PRBUsage.PrbUsageUl prbUsageUl = new PRBUsage.PrbUsageUl();
+ prbUsageUl.setBerInteger(new BerInteger(50));
+ prbUsageUl.setBerInteger(new BerInteger(100));
+ pcell.setPrbUsageUl(prbUsageUl);
+
+ PRBUsage scell = new PRBUsage();
+ prbUsageDl.setBerInteger(new BerInteger(50));
+ prbUsageDl.setBerInteger(new BerInteger(100));
+ scell.setPrbUsageDl(prbUsageDl);
+
+ prbUsageUl.setBerInteger(new BerInteger(50));
+ prbUsageUl.setBerInteger(new BerInteger(100));
+ scell.setPrbUsageUl(prbUsageUl);
+
+ SchedMeasReportPerCell schedMeasReportPerCell = new SchedMeasReportPerCell();
+ schedMeasReportPerCell.setEcgi(ecgi);
+ schedMeasReportPerCell.setQciVals(qciVals);
+ schedMeasReportPerCell.setPrbUsagePcell(pcell);
+ schedMeasReportPerCell.setPrbUsageScell(scell);
+
+ XrancPduBody body = new XrancPduBody();
+ body.setSchedMeasReportPerCell(schedMeasReportPerCell);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("4");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+
+ XrancApiID apiID = new XrancApiID(23);
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setHdr(hdr);
+ pdu.setBody(body);
+
+ return pdu;
+
+ }
+}
diff --git a/src/main/java/org.onosproject.xran/samplemessages/SchedReportPerUE.java b/src/main/java/org.onosproject.xran/samplemessages/SchedReportPerUE.java
new file mode 100644
index 0000000..5e7676c
--- /dev/null
+++ b/src/main/java/org.onosproject.xran/samplemessages/SchedReportPerUE.java
@@ -0,0 +1,103 @@
+package org.onosproject.xran.samplemessages;
+
+import org.onosproject.xran.codecs.api.*;
+import org.onosproject.xran.codecs.pdu.*;
+import org.openmuc.jasn1.ber.types.BerInteger;
+import org.openmuc.jasn1.ber.types.string.BerUTF8String;
+
+import java.io.UnsupportedEncodingException;
+
+public class SchedReportPerUE {
+
+ public XrancPdu setPacketProperties(XrancPdu recv_pdu) {
+ ECGI ecgi = recv_pdu.getBody().getL2MeasConfig().getEcgi();
+
+ //Need to get this from UE.
+ CRNTI crnti = new CRNTI(new byte[]{(byte) 0x44, (byte) 0x44}, 16);
+
+ SchedMeasRepPerServCell schedMeasRepPerServCell = new SchedMeasRepPerServCell();
+ PCIARFCN pciarfcn = new PCIARFCN();
+ pciarfcn.setPci(new PhysCellId(500));
+ pciarfcn.setEarfcnDl(new ARFCNValue(2100));
+
+ SchedMeasRepPerServCell.QciVals qciVals = new SchedMeasRepPerServCell.QciVals();
+ qciVals.setQCI(new QCI(1));
+ qciVals.setQCI(new QCI(2));
+
+ PRBUsage prbUsage = new PRBUsage();
+ PRBUsage.PrbUsageDl prbUsageDl = new PRBUsage.PrbUsageDl();
+ prbUsageDl.setBerInteger(new BerInteger(50));
+ prbUsageDl.setBerInteger(new BerInteger(100));
+ prbUsage.setPrbUsageDl(prbUsageDl);
+
+ PRBUsage.PrbUsageUl prbUsageUl = new PRBUsage.PrbUsageUl();
+ prbUsageUl.setBerInteger(new BerInteger(50));
+ prbUsageUl.setBerInteger(new BerInteger(100));
+ prbUsage.setPrbUsageUl(prbUsageUl);
+
+ SchedMeasRepPerServCell.McsDl mcsDl = new SchedMeasRepPerServCell.McsDl();
+ mcsDl.setBerInteger(new BerInteger(1));
+ mcsDl.setBerInteger(new BerInteger(4));
+
+ SchedMeasRepPerServCell.McsUl mcsUl = new SchedMeasRepPerServCell.McsUl();
+ mcsUl.setBerInteger(new BerInteger(5));
+ mcsUl.setBerInteger(new BerInteger(6));
+
+ SchedMeasRepPerServCell.NumSchedTtisDl numSchedTtisDl = new SchedMeasRepPerServCell.NumSchedTtisDl();
+ numSchedTtisDl.setBerInteger(new BerInteger(1000));
+ numSchedTtisDl.setBerInteger(new BerInteger(1000));
+
+ SchedMeasRepPerServCell.NumSchedTtisUl numSchedTtisUl = new SchedMeasRepPerServCell.NumSchedTtisUl();
+ numSchedTtisUl.setBerInteger(new BerInteger(1000));
+ numSchedTtisUl.setBerInteger(new BerInteger(1000));
+
+ SchedMeasRepPerServCell.RankDl1 rankDl1 = new SchedMeasRepPerServCell.RankDl1();
+ rankDl1.setBerInteger(new BerInteger(1));
+ rankDl1.setBerInteger(new BerInteger(1));
+
+ SchedMeasRepPerServCell.RankDl2 rankDl2 = new SchedMeasRepPerServCell.RankDl2();
+ rankDl2.setBerInteger(new BerInteger(1));
+ rankDl2.setBerInteger(new BerInteger(1));
+
+ schedMeasRepPerServCell.setPciArfcn(pciarfcn);
+ schedMeasRepPerServCell.setQciVals(qciVals);
+ schedMeasRepPerServCell.setPrbUsage(prbUsage);
+ schedMeasRepPerServCell.setMcsDl(mcsDl);
+ schedMeasRepPerServCell.setMcsUl(mcsUl);
+ schedMeasRepPerServCell.setNumSchedTtisDl(numSchedTtisDl);
+ schedMeasRepPerServCell.setNumSchedTtisUl(numSchedTtisUl);
+ schedMeasRepPerServCell.setRankDl1(rankDl1);
+ schedMeasRepPerServCell.setRankDl2(rankDl2);
+
+ SchedMeasReportPerUE.SchedReportServCells schedReportServCells = new SchedMeasReportPerUE.SchedReportServCells();
+ schedReportServCells.setSchedMeasRepPerServCell(schedMeasRepPerServCell);
+
+ SchedMeasReportPerUE schedMeasReportPerUE = new SchedMeasReportPerUE();
+ schedMeasReportPerUE.setCrnti(crnti);
+ schedMeasReportPerUE.setEcgi(ecgi);
+ schedMeasReportPerUE.setSchedReportServCells(schedReportServCells);
+
+ XrancPduBody body = new XrancPduBody();
+ body.setSchedMeasReportPerUE(schedMeasReportPerUE);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("4");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+
+ XrancApiID apiID = new XrancApiID(22);
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setHdr(hdr);
+ pdu.setBody(body);
+
+ return pdu;
+
+
+ }
+}
diff --git a/src/main/java/org.onosproject.xran/samplemessages/SignalMeasConfig.java b/src/main/java/org.onosproject.xran/samplemessages/SignalMeasConfig.java
new file mode 100644
index 0000000..b7f5eaa
--- /dev/null
+++ b/src/main/java/org.onosproject.xran/samplemessages/SignalMeasConfig.java
@@ -0,0 +1,93 @@
+package org.onosproject.xran.samplemessages;
+
+import org.onosproject.xran.codecs.api.*;
+import org.onosproject.xran.codecs.pdu.*;
+import org.openmuc.jasn1.ber.types.string.BerUTF8String;
+
+import java.io.UnsupportedEncodingException;
+
+public class SignalMeasConfig {
+ public static XrancPdu constructPacket(ECGI ecgi, CRNTI crnti, RXSigMeasConfig.MeasCells measCells, int interval) {
+ RXSigRepQty rxSigRepQty = new RXSigRepQty(2);
+ RXSigMeasRepInterval repInterval = new RXSigMeasRepInterval(interval);
+
+ RXSigMeasConfig sigMeasConfig = new RXSigMeasConfig();
+ sigMeasConfig.setCrnti(crnti);
+ sigMeasConfig.setEcgi(ecgi);
+ sigMeasConfig.setReportQty(rxSigRepQty);
+ sigMeasConfig.setMeasCells(measCells);
+ sigMeasConfig.setReportInterval(repInterval);
+
+ XrancPduBody body = new XrancPduBody();
+ body.setRXSigMeasConfig(sigMeasConfig);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("4");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ XrancApiID apiID = new XrancApiID(17);
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setHdr(hdr);
+ pdu.setBody(body);
+
+ return pdu;
+ }
+
+ public XrancPdu setPacketProperties() {
+ CRNTI crnti = new CRNTI(new byte[]{(byte) 0x44, (byte) 0x44});
+
+ PLMNIdentity plmnIdentity = new PLMNIdentity(new byte[]{(byte) 0xFC, (byte) 0xFF, (byte) 0x3F});
+ EUTRANCellIdentifier eutranCellIdentifier = new EUTRANCellIdentifier(new byte[]{
+ (byte) 0xCF, (byte) 0xFE, (byte) 0x7C, (byte) 0xF0
+ }, 28);
+
+ ECGI ecgi = new ECGI();
+ ecgi.setPLMNIdentity(plmnIdentity);
+ ecgi.setEUTRANcellIdentifier(eutranCellIdentifier);
+
+ RXSigRepQty rxSigRepQty = new RXSigRepQty(2);
+ PCIARFCN pciarfcn = new PCIARFCN();
+ pciarfcn.setPci(new PhysCellId(500));
+ pciarfcn.setEarfcnDl(new ARFCNValue(2100));
+ RXSigMeasConfig.MeasCells measCells = new RXSigMeasConfig.MeasCells();
+ measCells.setPCIARFCN(pciarfcn);
+ RXSigMeasRepInterval repInterval = new RXSigMeasRepInterval(1);
+
+
+ RXSigMeasConfig sigMeasConfig = new RXSigMeasConfig();
+ sigMeasConfig.setCrnti(crnti);
+ sigMeasConfig.setEcgi(ecgi);
+ sigMeasConfig.setReportQty(rxSigRepQty);
+ sigMeasConfig.setMeasCells(measCells);
+ sigMeasConfig.setReportInterval(repInterval);
+
+
+ XrancPduBody body = new XrancPduBody();
+ body.setRXSigMeasConfig(sigMeasConfig);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("4");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ XrancApiID apiID = new XrancApiID(17);
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setHdr(hdr);
+ pdu.setBody(body);
+
+ return pdu;
+ }
+
+
+}
diff --git a/src/main/java/org.onosproject.xran/samplemessages/UEAdmEncoderDecoder.java b/src/main/java/org.onosproject.xran/samplemessages/UEAdmEncoderDecoder.java
new file mode 100644
index 0000000..0ec5ce6
--- /dev/null
+++ b/src/main/java/org.onosproject.xran/samplemessages/UEAdmEncoderDecoder.java
@@ -0,0 +1,95 @@
+package org.onosproject.xran.samplemessages;
+
+import org.onosproject.xran.codecs.api.AdmEstResponse;
+import org.onosproject.xran.codecs.api.CRNTI;
+import org.onosproject.xran.codecs.api.ECGI;
+import org.onosproject.xran.codecs.pdu.*;
+import org.openmuc.jasn1.ber.BerByteArrayOutputStream;
+import org.openmuc.jasn1.ber.types.string.BerUTF8String;
+
+import java.io.UnsupportedEncodingException;
+
+public class UEAdmEncoderDecoder {
+
+ private int flag;
+ private BerByteArrayOutputStream os;
+ private XrancPdu pdu;
+
+ public UEAdmEncoderDecoder() {
+ os = new BerByteArrayOutputStream(4096);
+ }
+
+ public static XrancPdu constructPacket(ECGI ecgi, CRNTI crnti) {
+ AdmEstResponse response = new AdmEstResponse(1);
+
+ UEAdmissionResponse ueAdmissionResponse = new UEAdmissionResponse();
+ ueAdmissionResponse.setCrnti(crnti);
+ ueAdmissionResponse.setEcgi(ecgi);
+ ueAdmissionResponse.setAdmEstResponse(response);
+
+ XrancPduBody body = new XrancPduBody();
+ body.setUEAdmissionResponse(ueAdmissionResponse);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("4");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ XrancApiID apiID = new XrancApiID(3);
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setHdr(hdr);
+ pdu.setBody(body);
+ return pdu;
+ }
+
+ public XrancPdu setPacketProperties(UEAdmissionRequest pdu_decoded) {
+ /*XrancPdu pdu_decoded = new XrancPdu();
+ byte[] bytearray = DatatypeConverter.parseHexBinary(decodedString);
+ InputStream inputStream = new ByteArrayInputStream(bytearray);
+ try {
+ pdu_decoded.decode(inputStream);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }*/
+ CRNTI crnti = pdu_decoded.getCrnti();
+ ECGI ecgi = pdu_decoded.getEcgi();
+
+ AdmEstResponse response = new AdmEstResponse(1);
+ /*if (flag == 1) {
+ response = new AdmEstResponse(0);
+ } else {
+ response = new AdmEstResponse(1);
+ }*/
+
+ UEAdmissionResponse ueAdmissionResponse = new UEAdmissionResponse();
+ ueAdmissionResponse.setCrnti(crnti);
+ ueAdmissionResponse.setEcgi(ecgi);
+ ueAdmissionResponse.setAdmEstResponse(response);
+
+ XrancPduBody body = new XrancPduBody();
+ body.setUEAdmissionResponse(ueAdmissionResponse);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("4");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ XrancApiID apiID = new XrancApiID(3);
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setHdr(hdr);
+ pdu.setBody(body);
+ return pdu;
+
+ }
+
+}
diff --git a/src/main/java/org.onosproject.xran/samplemessages/UEAdmRequest.java b/src/main/java/org.onosproject.xran/samplemessages/UEAdmRequest.java
new file mode 100644
index 0000000..e47f366
--- /dev/null
+++ b/src/main/java/org.onosproject.xran/samplemessages/UEAdmRequest.java
@@ -0,0 +1,65 @@
+package org.onosproject.xran.samplemessages;
+
+import org.onosproject.xran.codecs.api.*;
+import org.onosproject.xran.codecs.pdu.*;
+import org.openmuc.jasn1.ber.BerByteArrayOutputStream;
+import org.openmuc.jasn1.ber.types.string.BerUTF8String;
+
+import java.io.UnsupportedEncodingException;
+
+public class UEAdmRequest {
+
+ BerByteArrayOutputStream os;
+
+ public UEAdmRequest() {
+ os = new BerByteArrayOutputStream(4096);
+ }
+
+ /*public String encodeResponse() {
+ pdu = setPacketProperties();
+ try {
+ pdu.encode(os);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return DatatypeConverter.printHexBinary(os.getArray());
+ }*/
+
+ public XrancPdu setPacketProperties() throws UnsupportedEncodingException {
+ CRNTI crnti = new CRNTI(new byte[]{(byte) 0x44, (byte) 0x44}, 16);
+
+ PLMNIdentity plmnIdentity = new PLMNIdentity(new byte[]{(byte) 0x22, (byte) 0x08, (byte) 0x41});
+ EUTRANCellIdentifier eutranCellIdentifier = new EUTRANCellIdentifier(new byte[]{
+ (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xF0
+ }, 28);
+
+ ECGI ecgi = new ECGI();
+ ecgi.setPLMNIdentity(plmnIdentity);
+ ecgi.setEUTRANcellIdentifier(eutranCellIdentifier);
+
+ AdmEstCause admEstCause = new AdmEstCause(4);
+
+ UEAdmissionRequest admissionRequest = new UEAdmissionRequest();
+
+ admissionRequest.setCrnti(crnti);
+ admissionRequest.setEcgi(ecgi);
+ admissionRequest.setAdmEstCause(admEstCause);
+
+ XrancPduBody body = new XrancPduBody();
+ body.setUEAdmissionRequest(admissionRequest);
+
+ BerUTF8String ver = new BerUTF8String("4");
+
+ XrancApiID apiID = new XrancApiID(2);
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setHdr(hdr);
+ pdu.setBody(body);
+
+ return pdu;
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/org.onosproject.xran/samplemessages/UECapabilityEnq.java b/src/main/java/org.onosproject.xran/samplemessages/UECapabilityEnq.java
new file mode 100644
index 0000000..1ea246f
--- /dev/null
+++ b/src/main/java/org.onosproject.xran/samplemessages/UECapabilityEnq.java
@@ -0,0 +1,68 @@
+package org.onosproject.xran.samplemessages;
+
+import org.onosproject.xran.codecs.api.CRNTI;
+import org.onosproject.xran.codecs.api.ECGI;
+import org.onosproject.xran.codecs.pdu.*;
+import org.openmuc.jasn1.ber.types.string.BerUTF8String;
+
+import java.io.UnsupportedEncodingException;
+
+public class UECapabilityEnq {
+
+ public static XrancPdu constructPacket(ECGI ecgi, CRNTI crnti) {
+ UECapabilityEnquiry capabilityEnquiry = new UECapabilityEnquiry();
+ capabilityEnquiry.setCrnti(crnti);
+ capabilityEnquiry.setEcgi(ecgi);
+
+ XrancPduBody body = new XrancPduBody();
+ body.setUECapabilityEnquiry(capabilityEnquiry);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("4");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ XrancApiID apiID = new XrancApiID(12);
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setHdr(hdr);
+ pdu.setBody(body);
+
+ return pdu;
+ }
+
+ public XrancPdu setPacketProperties(XrancPdu mainDecoder) {
+ CRNTI crnti = mainDecoder.getBody().getUECapabilityEnquiry().getCrnti();
+
+ //TODO: ECGI Value has to be read as CELL ID.
+ ECGI ecgi = mainDecoder.getBody().getUECapabilityEnquiry().getEcgi();
+
+ UECapabilityEnquiry capabilityEnquiry = new UECapabilityEnquiry();
+ capabilityEnquiry.setCrnti(crnti);
+ capabilityEnquiry.setEcgi(ecgi);
+
+ XrancPduBody body = new XrancPduBody();
+ body.setUECapabilityEnquiry(capabilityEnquiry);
+
+ BerUTF8String ver = null;
+ try {
+ ver = new BerUTF8String("4");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ XrancApiID apiID = new XrancApiID(12);
+ XrancPduHdr hdr = new XrancPduHdr();
+ hdr.setVer(ver);
+ hdr.setApiId(apiID);
+
+ XrancPdu pdu = new XrancPdu();
+ pdu.setHdr(hdr);
+ pdu.setBody(body);
+
+ return pdu;
+ }
+}
diff --git a/src/main/java/org.onosproject.xran/samplemessages/package-info.java b/src/main/java/org.onosproject.xran/samplemessages/package-info.java
new file mode 100644
index 0000000..175bb66
--- /dev/null
+++ b/src/main/java/org.onosproject.xran/samplemessages/package-info.java
@@ -0,0 +1,17 @@
+/*
+ * Copyright 2015-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.xran.samplemessages;
\ No newline at end of file