initial commit
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;
+
+    }
+}