+//func unpackX2apPduUPer(logger *logger.Logger, allocationBufferSize int, packedBufferSize int, packedBuf []byte, maxMessageBufferSize int) (*C.E2AP_PDU_t, error) {
+// pdu := C.new_pdu(C.ulong(allocationBufferSize))
+//
+// if pdu == nil {
+// return nil, errors.New("allocation failure (pdu)")
+// }
+//
+// logger.Debugf("#x2apPdu_asn1_unpacker.unpackX2apPduUPer - Packed pdu(%d):%x", packedBufferSize, packedBuf)
+//
+// errBuf := make([]C.char, maxMessageBufferSize)
+// if !C.unpack_pdu_aux(pdu, C.ulong(packedBufferSize), (*C.uchar)(unsafe.Pointer(&packedBuf[0])), C.ulong(len(errBuf)), &errBuf[0], C.ATS_UNALIGNED_BASIC_PER) {
+// return nil, errors.New(fmt.Sprintf("unpacking error: %s", C.GoString(&errBuf[0])))
+// }
+//
+// if logger.DebugEnabled() {
+// C.asn1_pdu_printer(pdu, C.size_t(len(errBuf)), &errBuf[0])
+// logger.Debugf("#x2apPdu_asn1_unpacker.unpackX2apPduUPer - PDU: %v packed size:%d", C.GoString(&errBuf[0]), packedBufferSize)
+// }
+//
+// return pdu, nil
+//}
+