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