Files
openairinterface5g/openair2/F1AP/lib/f1ap_positioning.h
T
Rakesh Mundlamuri 180e06112f Add F1AP positioning measurement update message enc/dec + test
Reference: 3GPP 38.473 v16.21.0
Mandatory fields:
Transaction ID (supported)
LMF Measurement ID (supported)
RAN Measurement ID (supported)
Optional fields:
SRS Configuration (supported)
2026-01-15 15:26:35 +05:30

166 lines
12 KiB
C

/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
*
* 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.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#ifndef F1AP_POSITIONING_H_
#define F1AP_POSITIONING_H_
#include <stdbool.h>
#include "f1ap_messages_types.h"
struct F1AP_F1AP_PDU;
// positioning information request
struct F1AP_F1AP_PDU *encode_positioning_information_req(const f1ap_positioning_information_req_t *msg);
bool decode_positioning_information_req(const struct F1AP_F1AP_PDU *pdu, f1ap_positioning_information_req_t *out);
f1ap_positioning_information_req_t cp_positioning_information_req(const f1ap_positioning_information_req_t *orig);
bool eq_positioning_information_req(const f1ap_positioning_information_req_t *a, const f1ap_positioning_information_req_t *b);
void free_positioning_information_req(f1ap_positioning_information_req_t *msg);
// positioning information response
struct F1AP_F1AP_PDU *encode_positioning_information_resp(const f1ap_positioning_information_resp_t *msg);
bool decode_positioning_information_resp(const struct F1AP_F1AP_PDU *pdu, f1ap_positioning_information_resp_t *out);
f1ap_positioning_information_resp_t cp_positioning_information_resp(const f1ap_positioning_information_resp_t *orig);
bool eq_positioning_information_resp(const f1ap_positioning_information_resp_t *a, const f1ap_positioning_information_resp_t *b);
void free_positioning_information_resp(f1ap_positioning_information_resp_t *msg);
// positioning information failure
struct F1AP_F1AP_PDU *encode_positioning_information_failure(const f1ap_positioning_information_failure_t *msg);
bool decode_positioning_information_failure(const struct F1AP_F1AP_PDU *pdu, f1ap_positioning_information_failure_t *out);
f1ap_positioning_information_failure_t cp_positioning_information_failure(const f1ap_positioning_information_failure_t *orig);
bool eq_positioning_information_failure(const f1ap_positioning_information_failure_t *a,
const f1ap_positioning_information_failure_t *b);
void free_positioning_information_failure(f1ap_positioning_information_failure_t *msg);
// positioning activation request
struct F1AP_F1AP_PDU *encode_positioning_activation_req(const f1ap_positioning_activation_req_t *msg);
bool decode_positioning_activation_req(const struct F1AP_F1AP_PDU *pdu, f1ap_positioning_activation_req_t *out);
f1ap_positioning_activation_req_t cp_positioning_activation_req(const f1ap_positioning_activation_req_t *orig);
bool eq_positioning_activation_req(const f1ap_positioning_activation_req_t *a, const f1ap_positioning_activation_req_t *b);
void free_positioning_activation_req(f1ap_positioning_activation_req_t *msg);
// positioning activation response
struct F1AP_F1AP_PDU *encode_positioning_activation_resp(const f1ap_positioning_activation_resp_t *msg);
bool decode_positioning_activation_resp(const struct F1AP_F1AP_PDU *pdu, f1ap_positioning_activation_resp_t *out);
f1ap_positioning_activation_resp_t cp_positioning_activation_resp(const f1ap_positioning_activation_resp_t *orig);
bool eq_positioning_activation_resp(const f1ap_positioning_activation_resp_t *a, const f1ap_positioning_activation_resp_t *b);
void free_positioning_activation_resp(f1ap_positioning_activation_resp_t *msg);
// positioning activation failure
struct F1AP_F1AP_PDU *encode_positioning_activation_failure(const f1ap_positioning_activation_failure_t *msg);
bool decode_positioning_activation_failure(const struct F1AP_F1AP_PDU *pdu, f1ap_positioning_activation_failure_t *out);
f1ap_positioning_activation_failure_t cp_positioning_activation_failure(const f1ap_positioning_activation_failure_t *orig);
bool eq_positioning_activation_failure(const f1ap_positioning_activation_failure_t *a,
const f1ap_positioning_activation_failure_t *b);
void free_positioning_activation_failure(f1ap_positioning_activation_failure_t *msg);
// positioning deactivation
struct F1AP_F1AP_PDU *encode_positioning_deactivation(const f1ap_positioning_deactivation_t *msg);
bool decode_positioning_deactivation(const struct F1AP_F1AP_PDU *pdu, f1ap_positioning_deactivation_t *out);
f1ap_positioning_deactivation_t cp_positioning_deactivation(const f1ap_positioning_deactivation_t *orig);
bool eq_positioning_deactivation(const f1ap_positioning_deactivation_t *a, const f1ap_positioning_deactivation_t *b);
void free_positioning_deactivation(f1ap_positioning_deactivation_t *msg);
// positioning information update
struct F1AP_F1AP_PDU *encode_positioning_information_update(const f1ap_positioning_information_update_t *msg);
bool decode_positioning_information_update(const struct F1AP_F1AP_PDU *pdu, f1ap_positioning_information_update_t *out);
f1ap_positioning_information_update_t cp_positioning_information_update(const f1ap_positioning_information_update_t *orig);
bool eq_positioning_information_update(const f1ap_positioning_information_update_t *a,
const f1ap_positioning_information_update_t *b);
void free_positioning_information_update(f1ap_positioning_information_update_t *msg);
// trp information request
struct F1AP_F1AP_PDU *encode_trp_information_req(const f1ap_trp_information_req_t *msg);
bool decode_trp_information_req(const struct F1AP_F1AP_PDU *pdu, f1ap_trp_information_req_t *out);
f1ap_trp_information_req_t cp_trp_information_req(const f1ap_trp_information_req_t *orig);
bool eq_trp_information_req(const f1ap_trp_information_req_t *a, const f1ap_trp_information_req_t *b);
void free_trp_information_req(f1ap_trp_information_req_t *msg);
// trp information response
struct F1AP_F1AP_PDU *encode_trp_information_resp(const f1ap_trp_information_resp_t *msg);
bool decode_trp_information_resp(const struct F1AP_F1AP_PDU *pdu, f1ap_trp_information_resp_t *out);
f1ap_trp_information_resp_t cp_trp_information_resp(const f1ap_trp_information_resp_t *orig);
bool eq_trp_information_resp(const f1ap_trp_information_resp_t *a, const f1ap_trp_information_resp_t *b);
void free_trp_information_resp(f1ap_trp_information_resp_t *msg);
// trp information failure
struct F1AP_F1AP_PDU *encode_trp_information_failure(const f1ap_trp_information_failure_t *msg);
bool decode_trp_information_failure(const struct F1AP_F1AP_PDU *pdu, f1ap_trp_information_failure_t *out);
f1ap_trp_information_failure_t cp_trp_information_failure(const f1ap_trp_information_failure_t *orig);
bool eq_trp_information_failure(const f1ap_trp_information_failure_t *a, const f1ap_trp_information_failure_t *b);
void free_trp_information_failure(f1ap_trp_information_failure_t *msg);
// positioning measurement request
struct F1AP_F1AP_PDU *encode_positioning_measurement_req(const f1ap_positioning_measurement_req_t *msg);
bool decode_positioning_measurement_req(const struct F1AP_F1AP_PDU *pdu, f1ap_positioning_measurement_req_t *out);
f1ap_positioning_measurement_req_t cp_positioning_measurement_req(const f1ap_positioning_measurement_req_t *orig);
bool eq_positioning_measurement_req(const f1ap_positioning_measurement_req_t *a, const f1ap_positioning_measurement_req_t *b);
void free_positioning_measurement_req(f1ap_positioning_measurement_req_t *msg);
// positioning measurement response
struct F1AP_F1AP_PDU *encode_positioning_measurement_resp(const f1ap_positioning_measurement_resp_t *msg);
bool decode_positioning_measurement_resp(const struct F1AP_F1AP_PDU *pdu, f1ap_positioning_measurement_resp_t *out);
f1ap_positioning_measurement_resp_t cp_positioning_measurement_resp(const f1ap_positioning_measurement_resp_t *orig);
bool eq_positioning_measurement_resp(const f1ap_positioning_measurement_resp_t *a, const f1ap_positioning_measurement_resp_t *b);
void free_positioning_measurement_resp(f1ap_positioning_measurement_resp_t *msg);
// positioning measurement failure
struct F1AP_F1AP_PDU *encode_positioning_measurement_failure(const f1ap_positioning_measurement_failure_t *msg);
bool decode_positioning_measurement_failure(const struct F1AP_F1AP_PDU *pdu, f1ap_positioning_measurement_failure_t *out);
f1ap_positioning_measurement_failure_t cp_positioning_measurement_failure(const f1ap_positioning_measurement_failure_t *orig);
bool eq_positioning_measurement_failure(const f1ap_positioning_measurement_failure_t *a,
const f1ap_positioning_measurement_failure_t *b);
void free_positioning_measurement_failure(f1ap_positioning_measurement_failure_t *msg);
// positioning measurement report
struct F1AP_F1AP_PDU *encode_positioning_measurement_report(const f1ap_positioning_measurement_report_t *msg);
bool decode_positioning_measurement_report(const struct F1AP_F1AP_PDU *pdu, f1ap_positioning_measurement_report_t *out);
f1ap_positioning_measurement_report_t cp_positioning_measurement_report(const f1ap_positioning_measurement_report_t *orig);
bool eq_positioning_measurement_report(const f1ap_positioning_measurement_report_t *a,
const f1ap_positioning_measurement_report_t *b);
void free_positioning_measurement_report(f1ap_positioning_measurement_report_t *msg);
// positioning measurement abort
struct F1AP_F1AP_PDU *encode_positioning_measurement_abort(const f1ap_positioning_measurement_abort_t *msg);
bool decode_positioning_measurement_abort(const struct F1AP_F1AP_PDU *pdu, f1ap_positioning_measurement_abort_t *out);
f1ap_positioning_measurement_abort_t cp_positioning_measurement_abort(const f1ap_positioning_measurement_abort_t *orig);
bool eq_positioning_measurement_abort(const f1ap_positioning_measurement_abort_t *a, const f1ap_positioning_measurement_abort_t *b);
void free_positioning_measurement_abort(f1ap_positioning_measurement_abort_t *msg);
// positioning measurement failure indication
struct F1AP_F1AP_PDU *encode_positioning_measurement_failure_indication(
const f1ap_positioning_measurement_failure_indication_t *msg);
bool decode_positioning_measurement_failure_indication(const struct F1AP_F1AP_PDU *pdu,
f1ap_positioning_measurement_failure_indication_t *out);
f1ap_positioning_measurement_failure_indication_t cp_positioning_measurement_failure_indication(
const f1ap_positioning_measurement_failure_indication_t *orig);
bool eq_positioning_measurement_failure_indication(const f1ap_positioning_measurement_failure_indication_t *a,
const f1ap_positioning_measurement_failure_indication_t *b);
void free_positioning_measurement_failure_indication(f1ap_positioning_measurement_failure_indication_t *msg);
// positioning measurement update
struct F1AP_F1AP_PDU *encode_positioning_measurement_update(const f1ap_positioning_measurement_update_t *msg);
bool decode_positioning_measurement_update(const struct F1AP_F1AP_PDU *pdu, f1ap_positioning_measurement_update_t *out);
f1ap_positioning_measurement_update_t cp_positioning_measurement_update(const f1ap_positioning_measurement_update_t *orig);
bool eq_positioning_measurement_update(const f1ap_positioning_measurement_update_t *a,
const f1ap_positioning_measurement_update_t *b);
void free_positioning_measurement_update(f1ap_positioning_measurement_update_t *msg);
#endif /* F1AP_POSITIONING_H_ */