X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fhandlers%2Fx2apPdu_asn1_unpacker.go;fp=E2Manager%2Fhandlers%2Fx2apPdu_asn1_unpacker.go;h=0000000000000000000000000000000000000000;hb=1ec13d4076e7c7abefac6176462c1fee31229213;hp=3a89e5c82de903fd8523e9e30be629d6e5b9973c;hpb=3f9a67b3d8e15bc725f2f66adf499617ffc0d2fc;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/handlers/x2apPdu_asn1_unpacker.go b/E2Manager/handlers/x2apPdu_asn1_unpacker.go deleted file mode 100644 index 3a89e5c..0000000 --- a/E2Manager/handlers/x2apPdu_asn1_unpacker.go +++ /dev/null @@ -1,99 +0,0 @@ -// -// Copyright 2019 AT&T Intellectual Property -// Copyright 2019 Nokia -// -// 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 handlers - -// #cgo CFLAGS: -I../asn1codec/inc/ -I../asn1codec/e2ap_engine/ -// #cgo LDFLAGS: -L ../asn1codec/lib/ -L../asn1codec/e2ap_engine/ -le2ap_codec -lasncodec -// #include -// #include -import "C" -import ( - "e2mgr/logger" - "fmt" - "github.com/pkg/errors" - "unsafe" -) - -type X2PduRefinedResponse struct { - pduPrint string -} - -//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 -//} - -func unpackX2apPdu(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.Infof("#x2apPdu_asn1_unpacker.unpackX2apPdu - Packed pdu(%d):%x", packedBufferSize, packedBuf) - - errBuf := make([]C.char, maxMessageBufferSize) - if !C.per_unpack_pdu(pdu, C.ulong(packedBufferSize), (*C.uchar)(unsafe.Pointer(&packedBuf[0])), C.ulong(len(errBuf)), &errBuf[0]) { - 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.unpackX2apPdu - PDU: %v packed size:%d", C.GoString(&errBuf[0]), packedBufferSize) - } - - return pdu, nil -} - -func unpackX2apPduAndRefine(logger *logger.Logger, allocationBufferSize int, packedBufferSize int, packedBuf []byte, maxMessageBufferSize int) (*X2PduRefinedResponse, error) { - pdu, err := unpackX2apPdu(logger, allocationBufferSize, packedBufferSize, packedBuf, maxMessageBufferSize) - if err != nil { - return nil, err - } - - defer C.delete_pdu(pdu) - - var refinedResponse = "" - if logger.DebugEnabled() { - buf := make([]C.char, 16*maxMessageBufferSize) - C.asn1_pdu_printer(pdu, C.size_t(len(buf)), &buf[0]) - refinedResponse = C.GoString(&buf[0]) - } - - return &X2PduRefinedResponse{pduPrint: refinedResponse}, nil -} - - -