Merge remote-tracking branch 'origin/NR_UE_data_inactivity_timer' into integration_2024_w31
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
#include "PHY/INIT/nr_phy_init.h"
|
||||
#include "NR_MAC_UE/mac_proto.h"
|
||||
#include "RRC/NR_UE/rrc_proto.h"
|
||||
#include "RRC/NR_UE/L2_interface_ue.h"
|
||||
#include "SCHED_NR_UE/phy_frame_config_nr.h"
|
||||
#include "SCHED_NR_UE/defs.h"
|
||||
#include "PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h"
|
||||
|
||||
@@ -36,6 +36,8 @@ void nr_mac_rrc_msg3_ind(const module_id_t mod_id, int rnti, int gnb_id) {}
|
||||
|
||||
void nr_mac_rrc_ra_ind(const module_id_t mod_id, int frame, bool success) {}
|
||||
|
||||
void nr_mac_rrc_inactivity_timer_ind(const module_id_t mod_id) {}
|
||||
|
||||
void rrc_data_ind(const protocol_ctxt_t *const ctxt_pP,
|
||||
const rb_id_t Srb_id,
|
||||
const sdu_size_t sdu_sizeP,
|
||||
|
||||
@@ -50,6 +50,7 @@ MESSAGE_DEF(RRC_MAC_PCCH_DATA_REQ, MESSAGE_PRIORITY_MED_PLUS, RrcMacPcchDat
|
||||
|
||||
MESSAGE_DEF(NR_RRC_MAC_RA_IND, MESSAGE_PRIORITY_MED_PLUS, NRRrcMacRaInd, nr_rrc_mac_ra_ind)
|
||||
MESSAGE_DEF(NR_RRC_MAC_MSG3_IND, MESSAGE_PRIORITY_MED_PLUS, NRRrcMacMsg3Ind, nr_rrc_mac_msg3_ind)
|
||||
MESSAGE_DEF(NR_RRC_MAC_INAC_IND, MESSAGE_PRIORITY_MED_PLUS, NRRrcMacInacInd, nr_rrc_mac_inac_ind)
|
||||
|
||||
/* RRC configures DRX context (MAC timers) of a UE */
|
||||
MESSAGE_DEF(RRC_MAC_DRX_CONFIG_REQ, MESSAGE_PRIORITY_MED, rrc_mac_drx_config_req_t, rrc_mac_drx_config_req)
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
|
||||
#define NR_RRC_MAC_RA_IND(mSGpTR) (mSGpTR)->ittiMsg.nr_rrc_mac_ra_ind
|
||||
#define NR_RRC_MAC_MSG3_IND(mSGpTR) (mSGpTR)->ittiMsg.nr_rrc_mac_msg3_ind
|
||||
#define NR_RRC_MAC_INAC_IND(mSGpTR) (mSGpTR)->ittiMsg.nr_rrc_mac_inac_ind
|
||||
|
||||
#define RRC_MAC_DRX_CONFIG_REQ(mSGpTR) (mSGpTR)->ittiMsg.rrc_mac_drx_config_req
|
||||
|
||||
@@ -80,6 +81,10 @@ typedef struct NRRrcMacMsg3Ind_s {
|
||||
int gnb_id;
|
||||
} NRRrcMacMsg3Ind;
|
||||
|
||||
typedef struct NRRrcMacInacInd_s {
|
||||
bool inactivity_timer_expired; // not to leave the struct empty
|
||||
} NRRrcMacInacInd;
|
||||
|
||||
typedef struct RrcMacInSyncInd_s {
|
||||
uint32_t frame;
|
||||
uint8_t sub_frame;
|
||||
|
||||
@@ -1814,6 +1814,64 @@ static uint32_t nr_get_sf_periodicBSRTimer(long periodicBSR)
|
||||
return timer;
|
||||
}
|
||||
|
||||
static uint32_t get_data_inactivity_timer(long setup)
|
||||
{
|
||||
uint32_t timer_s = 0;
|
||||
switch (setup) {
|
||||
case NR_DataInactivityTimer_s1 :
|
||||
timer_s = 1;
|
||||
break;
|
||||
case NR_DataInactivityTimer_s2 :
|
||||
timer_s = 2;
|
||||
break;
|
||||
case NR_DataInactivityTimer_s3 :
|
||||
timer_s = 3;
|
||||
break;
|
||||
case NR_DataInactivityTimer_s5 :
|
||||
timer_s = 5;
|
||||
break;
|
||||
case NR_DataInactivityTimer_s7 :
|
||||
timer_s = 7;
|
||||
break;
|
||||
case NR_DataInactivityTimer_s10 :
|
||||
timer_s = 10;
|
||||
break;
|
||||
case NR_DataInactivityTimer_s15 :
|
||||
timer_s = 15;
|
||||
break;
|
||||
case NR_DataInactivityTimer_s20 :
|
||||
timer_s = 20;
|
||||
break;
|
||||
case NR_DataInactivityTimer_s40 :
|
||||
timer_s = 40;
|
||||
break;
|
||||
case NR_DataInactivityTimer_s50 :
|
||||
timer_s = 50;
|
||||
break;
|
||||
case NR_DataInactivityTimer_s60 :
|
||||
timer_s = 60;
|
||||
break;
|
||||
case NR_DataInactivityTimer_s80 :
|
||||
timer_s = 80;
|
||||
break;
|
||||
case NR_DataInactivityTimer_s100 :
|
||||
timer_s = 100;
|
||||
break;
|
||||
case NR_DataInactivityTimer_s120 :
|
||||
timer_s = 120;
|
||||
break;
|
||||
case NR_DataInactivityTimer_s150 :
|
||||
timer_s = 150;
|
||||
break;
|
||||
case NR_DataInactivityTimer_s180 :
|
||||
timer_s = 180;
|
||||
break;
|
||||
default :
|
||||
AssertFatal(false, "Invalid data inactivity timer\n");
|
||||
}
|
||||
return timer_s;
|
||||
}
|
||||
|
||||
static void configure_maccellgroup(NR_UE_MAC_INST_t *mac, const NR_MAC_CellGroupConfig_t *mcg)
|
||||
{
|
||||
NR_UE_SCHEDULING_INFO *si = &mac->scheduling_info;
|
||||
@@ -1895,6 +1953,19 @@ static void configure_maccellgroup(NR_UE_MAC_INST_t *mac, const NR_MAC_CellGroup
|
||||
phr_info->phr_reporting = (1 << phr_cause_phr_config);
|
||||
}
|
||||
}
|
||||
|
||||
if (mcg->ext1 && mcg->ext1->dataInactivityTimer) {
|
||||
struct NR_SetupRelease_DataInactivityTimer *setup_release = mcg->ext1->dataInactivityTimer;
|
||||
if (setup_release->present == NR_SetupRelease_DataInactivityTimer_PR_release)
|
||||
free(mac->data_inactivity_timer);
|
||||
if (setup_release->present == NR_SetupRelease_DataInactivityTimer_PR_setup) {
|
||||
if (!mac->data_inactivity_timer)
|
||||
mac->data_inactivity_timer = calloc(1, sizeof(*mac->data_inactivity_timer));
|
||||
uint32_t timer_s = get_data_inactivity_timer(setup_release->choice.setup); // timer in seconds
|
||||
int scs = mac->current_DL_BWP->scs;
|
||||
nr_timer_setup(mac->data_inactivity_timer, (timer_s * 1000) << scs, 1); // 1 slot update rate
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void configure_csirs_resource(NR_NZP_CSI_RS_Resource_t *target, NR_NZP_CSI_RS_Resource_t *source)
|
||||
|
||||
@@ -571,8 +571,8 @@ typedef struct NR_UE_MAC_INST_s {
|
||||
|
||||
// order lc info
|
||||
A_SEQUENCE_OF(nr_lcordered_info_t) lc_ordered_list;
|
||||
|
||||
NR_UE_SCHEDULING_INFO scheduling_info;
|
||||
NR_timer_t *data_inactivity_timer;
|
||||
|
||||
int dmrs_TypeA_Position;
|
||||
int p_Max;
|
||||
|
||||
@@ -198,6 +198,8 @@ void reset_mac_inst(NR_UE_MAC_INST_t *nr_mac)
|
||||
nr_mac->scheduling_info.lc_sched_info[i].Bj = 0;
|
||||
nr_timer_stop(&nr_mac->scheduling_info.lc_sched_info[i].Bj_timer);
|
||||
}
|
||||
if (nr_mac->data_inactivity_timer)
|
||||
nr_timer_stop(nr_mac->data_inactivity_timer);
|
||||
nr_timer_stop(&nr_mac->ra.contention_resolution_timer);
|
||||
nr_timer_stop(&nr_mac->scheduling_info.sr_DelayTimer);
|
||||
nr_timer_stop(&nr_mac->scheduling_info.retxBSR_Timer);
|
||||
@@ -249,8 +251,7 @@ void reset_mac_inst(NR_UE_MAC_INST_t *nr_mac)
|
||||
// TODO beam failure procedure not implemented
|
||||
}
|
||||
|
||||
void release_mac_configuration(NR_UE_MAC_INST_t *mac,
|
||||
NR_UE_MAC_reset_cause_t cause)
|
||||
void release_mac_configuration(NR_UE_MAC_INST_t *mac, NR_UE_MAC_reset_cause_t cause)
|
||||
{
|
||||
NR_UE_ServingCell_Info_t *sc = &mac->sc_info;
|
||||
// if cause is Re-establishment, release spCellConfig only
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
/* RRC */
|
||||
#include "RRC/NR_UE/rrc_proto.h"
|
||||
#include "RRC/NR_UE/L2_interface_ue.h"
|
||||
|
||||
/* MAC */
|
||||
#include "LAYER2/NR_MAC_COMMON/nr_mac_extern.h"
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#include "executables/nr-softmodem.h"
|
||||
|
||||
/* RRC*/
|
||||
#include "RRC/NR_UE/rrc_proto.h"
|
||||
#include "RRC/NR_UE/L2_interface_ue.h"
|
||||
|
||||
/* MAC */
|
||||
#include "NR_MAC_COMMON/nr_mac.h"
|
||||
@@ -2957,19 +2957,22 @@ void nr_ue_send_sdu(NR_UE_MAC_INST_t *mac, nr_downlink_indication_t *dl_info, in
|
||||
|
||||
// Processing MAC PDU
|
||||
// it parses MAC CEs subheaders, MAC CEs, SDU subheaderds and SDUs
|
||||
switch (dl_info->rx_ind->rx_indication_body[pdu_id].pdu_type){
|
||||
case FAPI_NR_RX_PDU_TYPE_DLSCH:
|
||||
nr_ue_process_mac_pdu(mac, dl_info, pdu_id);
|
||||
break;
|
||||
case FAPI_NR_RX_PDU_TYPE_RAR:
|
||||
switch (dl_info->rx_ind->rx_indication_body[pdu_id].pdu_type) {
|
||||
case FAPI_NR_RX_PDU_TYPE_DLSCH :
|
||||
// start or restart dataInactivityTimer if any MAC entity receives a MAC SDU for DTCH logical channel,
|
||||
// DCCH logical channel, or CCCH logical channel
|
||||
if (mac->data_inactivity_timer)
|
||||
nr_timer_start(mac->data_inactivity_timer);
|
||||
nr_ue_process_mac_pdu(mac, dl_info, pdu_id);
|
||||
break;
|
||||
case FAPI_NR_RX_PDU_TYPE_RAR :
|
||||
nr_ue_process_rar(mac, dl_info, pdu_id);
|
||||
break;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
AssertFatal(false, "Invalid PDU type\n");
|
||||
}
|
||||
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SEND_SDU, VCD_FUNCTION_OUT);
|
||||
|
||||
}
|
||||
|
||||
// #define EXTRACT_DCI_ITEM(val,size) val= readBits(dci_pdu, &pos, size);
|
||||
|
||||
@@ -54,6 +54,7 @@
|
||||
|
||||
#include "LAYER2/NR_MAC_COMMON/nr_mac_extern.h"
|
||||
#include "LAYER2/RLC/rlc.h"
|
||||
#include "RRC/NR_UE/L2_interface_ue.h"
|
||||
|
||||
//#define SRS_DEBUG
|
||||
#define verifyMutex(a) \
|
||||
@@ -156,6 +157,11 @@ static void trigger_regular_bsr(NR_UE_MAC_INST_t *mac, NR_LogicalChannelIdentity
|
||||
|
||||
void update_mac_timers(NR_UE_MAC_INST_t *mac)
|
||||
{
|
||||
if (mac->data_inactivity_timer) {
|
||||
bool inactivity_timer_expired = nr_timer_tick(mac->data_inactivity_timer);
|
||||
if (inactivity_timer_expired)
|
||||
nr_mac_rrc_inactivity_timer_ind(mac->ue_id);
|
||||
}
|
||||
nr_timer_tick(&mac->ra.contention_resolution_timer);
|
||||
for (int j = 0; j < NR_MAX_SR_ID; j++)
|
||||
nr_timer_tick(&mac->scheduling_info.sr_info[j].prohibitTimer);
|
||||
@@ -1476,6 +1482,10 @@ void nr_ue_ul_scheduler(NR_UE_MAC_INST_t *mac, nr_uplink_indication_t *ul_info)
|
||||
ulcfg_pdu->pusch_config_pdu.tx_request_body.fapiTxPdu = ulsch_input_buffer;
|
||||
ulcfg_pdu->pusch_config_pdu.tx_request_body.pdu_length = TBS_bytes;
|
||||
number_of_pdus++;
|
||||
// start or restart dataInactivityTimer if any MAC entity transmits a MAC SDU for DTCH logical channel,
|
||||
// or DCCH logical channel
|
||||
if (mac->data_inactivity_timer)
|
||||
nr_timer_start(mac->data_inactivity_timer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
#include "NR_MAC_UE/mac_extern.h"
|
||||
#include "SCHED_NR_UE/fapi_nr_ue_l1.h"
|
||||
#include "executables/softmodem-common.h"
|
||||
#include "openair2/RRC/NR_UE/rrc_proto.h"
|
||||
#include "openair2/RRC/NR_UE/L2_interface_ue.h"
|
||||
#include "openair2/GNB_APP/L1_nr_paramdef.h"
|
||||
#include "openair2/GNB_APP/gnb_paramdef.h"
|
||||
#include "radio/ETHERNET/if_defs.h"
|
||||
|
||||
@@ -51,6 +51,17 @@ typedef enum sl_sidelink_slot_type {
|
||||
|
||||
} sl_sidelink_slot_type_t;
|
||||
|
||||
extern queue_t nr_rach_ind_queue;
|
||||
extern queue_t nr_rx_ind_queue;
|
||||
extern queue_t nr_crc_ind_queue;
|
||||
extern queue_t nr_uci_ind_queue;
|
||||
extern queue_t nr_sfn_slot_queue;
|
||||
extern queue_t nr_chan_param_queue;
|
||||
extern queue_t nr_dl_tti_req_queue;
|
||||
extern queue_t nr_tx_req_queue;
|
||||
extern queue_t nr_ul_dci_req_queue;
|
||||
extern queue_t nr_ul_tti_req_queue;
|
||||
|
||||
extern slot_rnti_mcs_s slot_rnti_mcs[NUM_NFAPI_SLOT];
|
||||
|
||||
typedef struct NR_UL_TIME_ALIGNMENT NR_UL_TIME_ALIGNMENT_t;
|
||||
|
||||
@@ -31,16 +31,14 @@
|
||||
*/
|
||||
|
||||
#include "rrc_defs.h"
|
||||
#include "rrc_proto.h"
|
||||
#include "L2_interface_ue.h"
|
||||
#include "assertions.h"
|
||||
#include "LAYER2/NR_MAC_COMMON/nr_mac.h"
|
||||
#include "openair2/LAYER2/NR_MAC_UE/mac_proto.h"
|
||||
|
||||
typedef uint32_t channel_t;
|
||||
|
||||
void nr_mac_rrc_sync_ind(const module_id_t module_id,
|
||||
const frame_t frame,
|
||||
const bool in_sync)
|
||||
void nr_mac_rrc_sync_ind(const module_id_t module_id, const frame_t frame, const bool in_sync)
|
||||
{
|
||||
MessageDef *message_p = itti_alloc_new_message(TASK_MAC_UE, 0, NR_RRC_MAC_SYNC_IND);
|
||||
NR_RRC_MAC_SYNC_IND (message_p).frame = frame;
|
||||
@@ -48,17 +46,17 @@ void nr_mac_rrc_sync_ind(const module_id_t module_id,
|
||||
itti_send_msg_to_task(TASK_RRC_NRUE, GNB_MODULE_ID_TO_INSTANCE(module_id), message_p);
|
||||
}
|
||||
|
||||
int8_t nr_mac_rrc_data_ind_ue(const module_id_t module_id,
|
||||
const int CC_id,
|
||||
const uint8_t gNB_index,
|
||||
const frame_t frame,
|
||||
const int slot,
|
||||
const rnti_t rnti,
|
||||
const uint32_t cellid,
|
||||
const long arfcn,
|
||||
const channel_t channel,
|
||||
const uint8_t* pduP,
|
||||
const sdu_size_t pdu_len)
|
||||
void nr_mac_rrc_data_ind_ue(const module_id_t module_id,
|
||||
const int CC_id,
|
||||
const uint8_t gNB_index,
|
||||
const frame_t frame,
|
||||
const int slot,
|
||||
const rnti_t rnti,
|
||||
const uint32_t cellid,
|
||||
const long arfcn,
|
||||
const channel_t channel,
|
||||
const uint8_t* pduP,
|
||||
const sdu_size_t pdu_len)
|
||||
{
|
||||
sdu_size_t sdu_size = 0;
|
||||
|
||||
@@ -121,8 +119,13 @@ int8_t nr_mac_rrc_data_ind_ue(const module_id_t module_id,
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return(0);
|
||||
void nr_mac_rrc_inactivity_timer_ind(const module_id_t mod_id)
|
||||
{
|
||||
MessageDef *message_p = itti_alloc_new_message(TASK_MAC_UE, 0, NR_RRC_MAC_INAC_IND);
|
||||
NR_RRC_MAC_INAC_IND (message_p).inactivity_timer_expired = true;
|
||||
itti_send_msg_to_task(TASK_RRC_NRUE, GNB_MODULE_ID_TO_INSTANCE(mod_id), message_p);
|
||||
}
|
||||
|
||||
void nr_mac_rrc_msg3_ind(const module_id_t mod_id, const int rnti, int gnb_id)
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#include "rrc_defs.h"
|
||||
#include "common/utils/ocp_itti/intertask_interface.h"
|
||||
|
||||
#ifndef _L2_INTERFACE_UE_H_
|
||||
#define _L2_INTERFACE_UE_H_
|
||||
void nr_mac_rrc_sync_ind(const module_id_t module_id, const frame_t frame, const bool in_sync);
|
||||
void nr_mac_rrc_data_ind_ue(const module_id_t module_id,
|
||||
const int CC_id,
|
||||
const uint8_t gNB_index,
|
||||
const frame_t frame,
|
||||
const int slot,
|
||||
const rnti_t rnti,
|
||||
const uint32_t cellid,
|
||||
const long arfcn,
|
||||
const channel_t channel,
|
||||
const uint8_t* pduP,
|
||||
const sdu_size_t pdu_len);
|
||||
void nr_mac_rrc_inactivity_timer_ind(const module_id_t mod_id);
|
||||
void nr_mac_rrc_msg3_ind(const module_id_t mod_id, const int rnti, int gnb_id);
|
||||
void nr_ue_rrc_timer_trigger(int instance, int frame, int gnb_id);
|
||||
void nr_mac_rrc_ra_ind(const module_id_t mod_id, int frame, bool success);
|
||||
void nsa_sendmsg_to_lte_ue(const void *message, size_t msg_len, Rrc_Msg_Type_t msg_type);
|
||||
#endif
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
|
||||
#include "rrc_defs.h"
|
||||
#include "rrc_proto.h"
|
||||
#include "L2_interface_ue.h"
|
||||
#include "LAYER2/NR_MAC_UE/mac_proto.h"
|
||||
|
||||
#include "intertask_interface.h"
|
||||
@@ -1750,6 +1751,12 @@ void *rrc_nrue(void *notUsed)
|
||||
nr_rrc_SI_timers(SInfo);
|
||||
break;
|
||||
|
||||
case NR_RRC_MAC_INAC_IND:
|
||||
LOG_D(NR_RRC, "Received data inactivity indication from lower layers\n");
|
||||
NR_Release_Cause_t release_cause = RRC_CONNECTION_FAILURE;
|
||||
nr_rrc_going_to_IDLE(rrc, release_cause, NULL);
|
||||
break;
|
||||
|
||||
case NR_RRC_MAC_MSG3_IND:
|
||||
nr_rrc_handle_msg3_indication(rrc, NR_RRC_MAC_MSG3_IND(msg_p).rnti);
|
||||
break;
|
||||
|
||||
@@ -39,56 +39,22 @@
|
||||
#include "NR_MeasConfig.h"
|
||||
#include "NR_CellGroupConfig.h"
|
||||
#include "NR_RadioBearerConfig.h"
|
||||
#include "openair2/PHY_INTERFACE/queue_t.h"
|
||||
#include "common/utils/ocp_itti/intertask_interface.h"
|
||||
|
||||
extern queue_t nr_rach_ind_queue;
|
||||
extern queue_t nr_rx_ind_queue;
|
||||
extern queue_t nr_crc_ind_queue;
|
||||
extern queue_t nr_uci_ind_queue;
|
||||
extern queue_t nr_sfn_slot_queue;
|
||||
extern queue_t nr_chan_param_queue;
|
||||
extern queue_t nr_dl_tti_req_queue;
|
||||
extern queue_t nr_tx_req_queue;
|
||||
extern queue_t nr_ul_dci_req_queue;
|
||||
extern queue_t nr_ul_tti_req_queue;
|
||||
|
||||
NR_UE_RRC_INST_t *nr_rrc_init_ue(char* uecap_file, int nb_inst, int num_ant_tx);
|
||||
|
||||
void init_nsa_message (NR_UE_RRC_INST_t *rrc, char* reconfig_file, char* rbconfig_file);
|
||||
|
||||
void process_nsa_message(NR_UE_RRC_INST_t *rrc, nsa_message_t nsa_message_type, void *message, int msg_len);
|
||||
|
||||
void nr_rrc_cellgroup_configuration(NR_UE_RRC_INST_t *rrc, NR_CellGroupConfig_t *cellGroupConfig);
|
||||
|
||||
/**\brief interface between MAC and RRC thru SRB0 (RLC TM/no PDCP)
|
||||
\param module_id module id
|
||||
\param CC_id component carrier id
|
||||
\param gNB_index gNB index
|
||||
\param channel indicator for channel of the pdu
|
||||
\param pduP pointer to pdu
|
||||
\param pdu_len data length of pdu*/
|
||||
int8_t nr_mac_rrc_data_ind_ue(const module_id_t module_id,
|
||||
const int CC_id,
|
||||
const uint8_t gNB_index,
|
||||
const frame_t frame,
|
||||
const int slot,
|
||||
const rnti_t rnti,
|
||||
const uint32_t cellid,
|
||||
const long arfcn,
|
||||
const channel_t channel,
|
||||
const uint8_t* pduP,
|
||||
const sdu_size_t pdu_len);
|
||||
|
||||
void nr_mac_rrc_sync_ind(const module_id_t module_id,
|
||||
const frame_t frame,
|
||||
const bool in_sync);
|
||||
|
||||
void nr_rrc_going_to_IDLE(NR_UE_RRC_INST_t *rrc,
|
||||
NR_Release_Cause_t release_cause,
|
||||
NR_RRCRelease_t *RRCRelease);
|
||||
|
||||
void handle_RRCRelease(NR_UE_RRC_INST_t *rrc);
|
||||
void nr_mac_rrc_ra_ind(const module_id_t mod_id, int frame, bool success);
|
||||
void nr_mac_rrc_msg3_ind(const module_id_t mod_id, const int rnti, int gnb_id);
|
||||
|
||||
void set_rlf_sib1_timers_and_constants(NR_UE_Timers_Constants_t *tac, NR_SIB1_t *sib1);
|
||||
|
||||
/**\brief RRC UE task.
|
||||
@@ -104,8 +70,6 @@ void *recv_msgs_from_lte_ue(void *args_p);
|
||||
|
||||
void init_connections_with_lte_ue(void);
|
||||
|
||||
void nsa_sendmsg_to_lte_ue(const void *message, size_t msg_len, Rrc_Msg_Type_t msg_type);
|
||||
|
||||
extern void start_oai_nrue_threads(void);
|
||||
|
||||
int get_from_lte_ue_fd();
|
||||
|
||||
Reference in New Issue
Block a user