2 #ifndef ENCODE_E2APV1_HPP
3 #define ENCODE_E2APV1_HPP
15 //#include "e2sim_sctp.hpp"
16 //#include "e2ap_message_handler.hpp"
17 #include "encode_kpm.hpp"
21 //#include "e2sim_defs.h"
27 struct ran_func_info {
29 OCTET_STRING_t *ranFunctionDesc;
33 long get_function_id_from_subscription(E2AP_PDU_t *e2ap_pdu);
35 void buildSubsReq(E2AP_PDU_t *pdu);
37 void generate_e2apv1_setup_request(E2AP_PDU_t *setup_req_pdu);
39 //void generate_e2apv1_setup_request_parameterized(E2AP_PDU_t *setup_req_pdu, long ranFuncId, uint8_t* ranFuncDesc, int ranFuncLength);
40 void generate_e2apv1_setup_request_parameterized(E2AP_PDU_t *setup_req_pdu, std::vector<ran_func_info> all_funcs);
42 void generate_e2apv1_setup_response(E2AP_PDU_t *setup_resp_pdu);
44 void generate_e2apv1_subscription_request(E2AP_PDU_t *sub_req_pdu);
46 void generate_e2apv1_subscription_response(E2AP_PDU_t *sub_resp_pdu, E2AP_PDU_t *sub_req_pdu);
48 void generate_e2apv1_indication_request(E2AP_PDU_t *ind_req_pdu);
50 void generate_e2apv1_subscription_response_success(E2AP_PDU *e2ap_pdu, long reqActionIdsAccepted[], long reqActionIdsRejected[], int accept_size, int reject_size, long reqRequestorId, long reqInstanceId);
52 void generate_e2apv1_indication_request_parameterized(E2AP_PDU *e2ap_pdu, long requestorId, long instanceId, long ranFunctionId, long actionId, long seqNum, uint8_t *ind_header_buf, int header_length, uint8_t *ind_message_buf, int message_length);