diff --git a/CMakeLists.txt b/CMakeLists.txt index dd4d7161e3..014a67c9f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -525,11 +525,6 @@ target_link_libraries(f1ap PRIVATE ngap nr_rrc) ############## # target asn1_lpp in openair3/LPP/MESSAGES/CMakeLists.txt used below -# NRPPA -############## -add_executable(main_nrppa ${OPENAIR3_DIR}/NRPPA/main_nrppa.c ) -target_link_libraries(main_nrppa asn1_nrppa) - # Hardware dependant options ################################### add_list1_option(NB_ANTENNAS_RX "4" "Number of antennas in reception" "1" "2" "4") diff --git a/openair3/CMakeLists.txt b/openair3/CMakeLists.txt index be9574aef6..555ca7cbc8 100644 --- a/openair3/CMakeLists.txt +++ b/openair3/CMakeLists.txt @@ -2,4 +2,4 @@ add_subdirectory(LPP) add_subdirectory(M3AP) add_subdirectory(S1AP) add_subdirectory(NGAP) -add_subdirectory(NRPPA) \ No newline at end of file +add_subdirectory(NRPPA) diff --git a/openair3/NRPPA/CMakeLists.txt b/openair3/NRPPA/CMakeLists.txt index 7537bd661d..613cbfc3ce 100644 --- a/openair3/NRPPA/CMakeLists.txt +++ b/openair3/NRPPA/CMakeLists.txt @@ -1 +1,5 @@ add_subdirectory(MESSAGES) + +add_executable(test_nrppa ${OPENAIR3_DIR}/NRPPA/test_nrppa.c ) +target_link_libraries(test_nrppa asn1_nrppa) + diff --git a/openair3/NRPPA/main_nrppa.c b/openair3/NRPPA/main_nrppa.c deleted file mode 100755 index 7f4995726a..0000000000 --- a/openair3/NRPPA/main_nrppa.c +++ /dev/null @@ -1,91 +0,0 @@ -#include -#include -#include -#include -/* - * This is a custom function which writes the - * encoded output into some FILE stream. - */ - -static int write_out(const void *buffer, size_t size, void *app_key) { - FILE *out_fp = app_key; - size_t wrote; - - wrote = fwrite(buffer, 1, size, out_fp); - - return (wrote == size) ? 0 : -1; -} - -int main(int ac, char **av) { - NRPPA_MeasurementRequest_t *NRPPA_MeasurementRequest; /* Type to encode */ - asn_enc_rval_t ec; /* Encoder return value */ - - /* Allocate the NRPPA_MeasurementRequest_t */ - NRPPA_MeasurementRequest = calloc(1, sizeof(NRPPA_MeasurementRequest_t)); /* not malloc! */ - if(!NRPPA_MeasurementRequest) { - perror("calloc() failed"); - exit(71); /* better, EX_OSERR */ - } - - NRPPA_MeasurementRequest_IEs_t xyz; - ASN_SEQUENCE_ADD(&NRPPA_MeasurementRequest->protocolIEs.list,&xyz); - - - /* MeasurementRequest ::= SEQUENCE { - protocolIEs ProtocolIE-Container {{MeasurementRequest-IEs}}, - ... - } */ - - /* Protocl IE container - id-LMF-Measurement-ID ProtocolIE-ID ::= 39 - id-RAN-Measurement-ID ProtocolIE-ID ::= 40 - ID id-TRP-MeasurementRequestList ProtocolIE-ID ::= 41 - ID id-ReportCharacteristics ProtocolIE-ID ::= 3 - ID id-MeasurementPeriodicity ProtocolIE-ID ::= 4 - ID id-TRPMeasurementQuantities ProtocolIE-ID ::= 52 - */ - NRPPA_MeasurementRequest->protocolIEs; - - /* Context for parsing across buffer boundaries */ - NRPPA_MeasurementRequest->_asn_ctx; - - /* BER encode the data if filename is given */ - if(ac < 2) { - fprintf(stderr, "Specify filename for BER output\n"); - } else { - const char *filename = av[1]; - FILE *fp = fopen(filename, "wb"); /* for BER output */ - - if(!fp) { - perror(filename); - exit(71); /* better, EX_OSERR */ - } - - -//asn_enc_rval_t der_encode(const struct asn_TYPE_descriptor_s *type_descriptor, -// const void *struct_ptr, /* Structure to be encoded */ -// asn_app_consume_bytes_f *consume_bytes_cb, -// void *app_key /* Arbitrary callback argument */); - - /* Encode the NRPPA_MeasurementRequest type as BER (DER) */ - ec = der_encode(&asn_DEF_NRPPA_MeasurementRequest, NRPPA_MeasurementRequest, write_out, fp); - - fclose(fp); - if(ec.encoded == -1) { - fprintf(stderr, - "Could not encode NRPPA_MeasurementRequest (at %s)\n", - ec.failed_type ? ec.failed_type->name : "unknown"); - exit(65); /* better, EX_DATAERR */ - } else { - fprintf(stderr, "Created %s with BER encoded NRPPA_MeasurementRequest\n", - filename); - } - } - - /* Also print the constructed NRPPA_MeasurementRequest XER encoded (XML) */ - xer_fprint(stdout, &asn_DEF_NRPPA_MeasurementRequest, NRPPA_MeasurementRequest); - - return 0; /* Encoding finished successfully */ -} - - diff --git a/openair3/NRPPA/test_nrppa.c b/openair3/NRPPA/test_nrppa.c new file mode 100755 index 0000000000..850d3db71b --- /dev/null +++ b/openair3/NRPPA/test_nrppa.c @@ -0,0 +1,86 @@ +#include +#include +#include +#include +/* + * This is a custom function which writes the + * encoded output into some FILE stream. + */ + +static int write_out(const void *buffer, size_t size, void *app_key) +{ + FILE *out_fp = app_key; + size_t wrote; + + wrote = fwrite(buffer, 1, size, out_fp); + + return (wrote == size) ? 0 : -1; +} + +int main(int ac, char **av) +{ + NRPPA_MeasurementRequest_t *NRPPA_MeasurementRequest; /* Type to encode */ + asn_enc_rval_t ec; /* Encoder return value */ + + /* Allocate the NRPPA_MeasurementRequest_t */ + NRPPA_MeasurementRequest = calloc(1, sizeof(NRPPA_MeasurementRequest_t)); /* not malloc! */ + if (!NRPPA_MeasurementRequest) { + perror("calloc() failed"); + exit(71); /* better, EX_OSERR */ + } + + NRPPA_MeasurementRequest_IEs_t xyz; + ASN_SEQUENCE_ADD(&NRPPA_MeasurementRequest->protocolIEs.list, &xyz); + + /* MeasurementRequest ::= SEQUENCE { +protocolIEs ProtocolIE-Container {{MeasurementRequest-IEs}}, +... +} */ + + /* Protocl IE container + id-LMF-Measurement-ID ProtocolIE-ID ::= 39 + id-RAN-Measurement-ID ProtocolIE-ID ::= 40 + ID id-TRP-MeasurementRequestList ProtocolIE-ID ::= 41 + ID id-ReportCharacteristics ProtocolIE-ID ::= 3 + ID id-MeasurementPeriodicity ProtocolIE-ID ::= 4 + ID id-TRPMeasurementQuantities ProtocolIE-ID ::= 52 + */ + //NRPPA_MeasurementRequest->protocolIEs; + + /* Context for parsing across buffer boundaries */ + //NRPPA_MeasurementRequest->_asn_ctx; + + /* BER encode the data if filename is given */ + if (ac < 2) { + fprintf(stderr, "Specify filename for BER output\n"); + } else { + const char *filename = av[1]; + FILE *fp = fopen(filename, "wb"); /* for BER output */ + + if (!fp) { + perror(filename); + exit(71); /* better, EX_OSERR */ + } + + // asn_enc_rval_t der_encode(const struct asn_TYPE_descriptor_s *type_descriptor, + // const void *struct_ptr, /* Structure to be encoded */ + // asn_app_consume_bytes_f *consume_bytes_cb, + // void *app_key /* Arbitrary callback argument */); + + /* Encode the NRPPA_MeasurementRequest type as BER (DER) */ + ec = der_encode(&asn_DEF_NRPPA_MeasurementRequest, NRPPA_MeasurementRequest, write_out, fp); + + fclose(fp); + if (ec.encoded == -1) { + fprintf(stderr, "Could not encode NRPPA_MeasurementRequest (at %s)\n", ec.failed_type ? ec.failed_type->name : "unknown"); + exit(65); /* better, EX_DATAERR */ + } else { + fprintf(stderr, "Created %s with BER encoded NRPPA_MeasurementRequest\n", filename); + } + } + + /* Also print the constructed NRPPA_MeasurementRequest XER encoded (XML) */ + xer_fprint(stdout, &asn_DEF_NRPPA_MeasurementRequest, NRPPA_MeasurementRequest); + + return 0; /* Encoding finished successfully */ +}