mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-13 04:30:28 +00:00
78 lines
2.3 KiB
C
78 lines
2.3 KiB
C
/*
|
|
* SPDX-License-Identifier: LicenseRef-CSSL-1.0
|
|
*/
|
|
|
|
#include "tree.h"
|
|
#include "queue.h"
|
|
|
|
#include "intertask_interface.h"
|
|
|
|
#include "assertions.h"
|
|
#include "conversions.h"
|
|
|
|
#include "nrppa_gNB.h"
|
|
#include "nrppa_common.h"
|
|
#include "nrppa_gNB_handlers.h"
|
|
#include "nrppa_gNB_location_information_transfer.h"
|
|
#include "nrppa_gNB_measurement_information_transfer.h"
|
|
|
|
void nrppa_gNB_init(void)
|
|
{
|
|
LOG_I(NRPPA, "Starting NRPPA layer\n");
|
|
itti_mark_task_ready(TASK_NRPPA);
|
|
}
|
|
|
|
void *nrppa_gNB_process_itti_msg(void *notUsed)
|
|
{
|
|
UNUSED(notUsed);
|
|
MessageDef *received_msg = NULL;
|
|
int result;
|
|
itti_receive_msg(TASK_NRPPA, &received_msg);
|
|
if (received_msg) {
|
|
instance_t instance = ITTI_MSG_DESTINATION_INSTANCE(received_msg);
|
|
LOG_I(NRPPA, "Received message %s\n", ITTI_MSG_NAME(received_msg));
|
|
switch (ITTI_MSG_ID(received_msg)) {
|
|
case TERMINATE_MESSAGE:
|
|
LOG_W(NRPPA, " *** Exiting NRPPA thread\n");
|
|
itti_exit_task();
|
|
break;
|
|
case NGAP_DOWNLINKUEASSOCIATEDNRPPA:
|
|
nrppa_handle_downlink_ue_associated_nrppa_transport(instance, &NGAP_DOWNLINKUEASSOCIATEDNRPPA(received_msg));
|
|
break;
|
|
case NGAP_DOWNLINKNONUEASSOCIATEDNRPPA:
|
|
nrppa_handle_downlink_non_ue_associated_nrppa_transport(instance, &NGAP_DOWNLINKNONUEASSOCIATEDNRPPA(received_msg));
|
|
break;
|
|
case NRPPA_TRP_INFORMATION_RESP:
|
|
nrppa_gNB_trp_information_response(instance, received_msg);
|
|
break;
|
|
case NRPPA_POSITIONING_INFORMATION_RESP:
|
|
nrppa_gNB_positioning_information_response(instance, received_msg);
|
|
break;
|
|
case NRPPA_POSITIONING_ACTIVATION_RESP:
|
|
nrppa_gNB_positioning_activation_response(instance, received_msg);
|
|
break;
|
|
case NRPPA_MEASUREMENT_RESP:
|
|
nrppa_gNB_measurement_response(instance, received_msg);
|
|
break;
|
|
default:
|
|
LOG_E(NRPPA, "Received unhandled message: %d:%s\n", ITTI_MSG_ID(received_msg), ITTI_MSG_NAME(received_msg));
|
|
break;
|
|
}
|
|
result = itti_free(ITTI_MSG_ORIGIN_ID(received_msg), received_msg);
|
|
AssertFatal(result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result);
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
void *nrppa_gNB_task(void *arg)
|
|
{
|
|
UNUSED(arg);
|
|
nrppa_gNB_init();
|
|
|
|
while (1) {
|
|
(void)nrppa_gNB_process_itti_msg(NULL);
|
|
}
|
|
|
|
return NULL;
|
|
}
|