Merge remote-tracking branch 'origin/fix-doxygen' into integration_2023_w43
This commit is contained in:
@@ -19,8 +19,8 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file openair2/COMMON/prs_nr_paramdef.f
|
||||
* \brief definition of configuration parameters for PRS
|
||||
/*! \file prs_nr_paramdef.h
|
||||
* \brief definition of configuration parameters for PRS
|
||||
* \author
|
||||
* \date 2022
|
||||
* \version 0.1
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file openair2/ENB_APP/L1_paramdef.f
|
||||
* \brief definition of configuration parameters for all eNodeB modules
|
||||
/*! \file L1_paramdef.h
|
||||
* \brief definition of configuration parameters for all eNodeB modules
|
||||
* \author Francois TABURET
|
||||
* \date 2017
|
||||
* \version 0.1
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file openair2/ENB_APP/MACRLC_paramdef.f
|
||||
* \brief definition of configuration parameters for all eNodeB modules
|
||||
/*! \file MACRLC_paramdef.h
|
||||
* \brief definition of configuration parameters for all eNodeB modules
|
||||
* \author Francois TABURET
|
||||
* \date 2017
|
||||
* \version 0.1
|
||||
@@ -30,7 +30,6 @@
|
||||
* \warning
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __ENB_APP_MACRLC_PARAMDEF__H__
|
||||
#define __ENB_APP_MACRLC_PARAMDEF__H__
|
||||
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file openair2/GNB_APP/L1_nr_paramdef.f
|
||||
* \brief definition of configuration parameters for all eNodeB modules
|
||||
/*! \file L1_nr_paramdef.h
|
||||
* \brief definition of configuration parameters for all eNodeB modules
|
||||
* \author Francois TABURET, WEI-TAI CHEN
|
||||
* \date 2018
|
||||
* \version 0.1
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file openair2/GNB_APP/MACRLC_nr_paramdef.f
|
||||
* \brief definition of configuration parameters for all gNodeB modules
|
||||
/*! \file MACRLC_nr_paramdef.h
|
||||
* \brief definition of configuration parameters for all gNodeB modules
|
||||
* \author Francois TABURET, WEI-TAI CHEN
|
||||
* \date 2018
|
||||
* \version 0.1
|
||||
@@ -30,7 +30,6 @@
|
||||
* \warning
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __GNB_APP_MACRLC_NR_PARAMDEF__H__
|
||||
#define __GNB_APP_MACRLC_NR_PARAMDEF__H__
|
||||
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file openair2/GNB_APP/gnb_paramdef.f
|
||||
* \brief definition of configuration parameters for all gNodeB modules
|
||||
/*! \file gnb_paramdef.h
|
||||
* \brief definition of configuration parameters for all gNodeB modules
|
||||
* \author Francois TABURET, WEI-TAI CHEN
|
||||
* \date 2018
|
||||
* \version 0.1
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
* \author Navid Nikaein and Raymond Knopp
|
||||
* \date 2010 - 2014
|
||||
* \version 0.1
|
||||
* \email: navid.nikaein@eurecom.fr
|
||||
* \email navid.nikaein@eurecom.fr
|
||||
* @ingroup _mac
|
||||
*/
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
|
||||
/*! \file defs_NB_IoT.c
|
||||
/*! \file defs_NB_IoT.h
|
||||
* \brief MAC layer structures
|
||||
* \author NTUST BMW Lab./
|
||||
* \date 2017
|
||||
* \email:
|
||||
* \email:
|
||||
* \version 1.0
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file l1_helper.c
|
||||
/*! \file l1_helpers.c
|
||||
* \brief phy helper function
|
||||
* \author Navid Nikaein, Raymond Knopp
|
||||
* \date 2012 - 2014
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file LAYER2/MAC/defs.h
|
||||
/*! \file mac.h
|
||||
* \brief MAC data structures, constant, and function prototype
|
||||
* \author Navid Nikaein and Raymond Knopp
|
||||
* \date 2011
|
||||
@@ -32,7 +32,7 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
/*@}*/
|
||||
/**@}*/
|
||||
|
||||
#ifndef __LAYER2_MAC_DEFS_H__
|
||||
#define __LAYER2_MAC_DEFS_H__
|
||||
@@ -139,7 +139,7 @@
|
||||
#define MIN_CQI_VALUE 0
|
||||
/*!\brief maximum value for channel quality indicator */
|
||||
#define MAX_CQI_VALUE 15
|
||||
/*!\briefmaximum number of supported bandwidth (1.4, 5, 10, 20 MHz) */
|
||||
/*!\brief maximum number of supported bandwidth (1.4, 5, 10, 20 MHz) */
|
||||
#define MAX_SUPPORTED_BW 4
|
||||
/*!\brief CQI values range from 1 to 15 (4 bits) */
|
||||
#define CQI_VALUE_RANGE 16
|
||||
@@ -467,7 +467,6 @@ typedef struct {
|
||||
#define SHORT_BSR 29
|
||||
/*!\brief LCID of long BSR for ULSCH */
|
||||
#define LONG_BSR 30
|
||||
/*!\bitmaps for BSR Triggers */
|
||||
#define BSR_TRIGGER_NONE (0) /* No BSR Trigger */
|
||||
#define BSR_TRIGGER_REGULAR (1) /* For Regular and ReTxBSR Expiry Triggers */
|
||||
#define BSR_TRIGGER_PERIODIC (2) /* For BSR Periodic Timer Expiry Trigger */
|
||||
@@ -1680,5 +1679,5 @@ typedef struct {
|
||||
|
||||
#include "mac_proto.h"
|
||||
|
||||
/*@}*/
|
||||
/**@}*/
|
||||
#endif /*__LAYER2_MAC_DEFS_H__ */
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file extern.h
|
||||
/*! \file mac_extern.h
|
||||
* \brief mac externs
|
||||
* \author Navid Nikaein and Raymond Knopp
|
||||
* \date 2010 - 2014
|
||||
|
||||
+160
-134
@@ -19,7 +19,7 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file LAYER2/MAC/proto.h
|
||||
/*! \file mac_proto.h
|
||||
* \brief MAC functions prototypes for eNB and UE
|
||||
* \author Navid Nikaein and Raymond Knopp
|
||||
* \date 2010 - 2014
|
||||
@@ -35,9 +35,9 @@
|
||||
|
||||
/** \fn void schedule_fembms_mib(module_id_t module_idP,frame_t frameP,sub_frame_t subframe);
|
||||
\brief MIB scheduling for PBCH. This function requests the MIB from RRC and provides it to L1.
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param frame Frame index
|
||||
@param subframe Subframe number on which to act
|
||||
@param module_idP Instance ID of eNB
|
||||
@param frameP Frame index
|
||||
@param subframeP Subframe number on which to act
|
||||
|
||||
*/
|
||||
|
||||
@@ -50,8 +50,8 @@ void schedule_fembms_mib(module_id_t module_idP,
|
||||
|
||||
/** \fn void schedule_mib(module_id_t module_idP,frame_t frameP,sub_frame_t subframe);
|
||||
\brief MIB scheduling for PBCH. This function requests the MIB from RRC and provides it to L1.
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param frame Frame index
|
||||
@param module_idP Instance ID of eNB
|
||||
@param frameP Frame index
|
||||
@param subframe Subframe number on which to act
|
||||
|
||||
*/
|
||||
@@ -59,81 +59,84 @@ void schedule_fembms_mib(module_id_t module_idP,
|
||||
void schedule_mib(module_id_t module_idP,
|
||||
frame_t frameP, sub_frame_t subframeP);
|
||||
|
||||
/** \fn void schedule_RA(module_id_t module_idP,frame_t frameP,sub_frame_t subframe);
|
||||
\brief First stage of Random-Access Scheduling. Loops over the ras and checks if RAR, Msg3 or its retransmission are to be scheduled in the subframe. It returns the total number of PRB used for RA SDUs. For Msg3 it retrieves the L3msg from RRC and fills the appropriate buffers. For the others it just computes the number of PRBs. Each DCI uses 3 PRBs (format 1A)
|
||||
for the message.
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param frame Frame index
|
||||
/** \fn void schedule_RA
|
||||
\brief First stage of Random-Access Scheduling. Loops over the ras and checks if RAR, Msg3 or its retransmission are to be scheduled
|
||||
in the subframe. It returns the total number of PRB used for RA SDUs. For Msg3 it retrieves the L3msg from RRC and fills the
|
||||
appropriate buffers. For the others it just computes the number of PRBs. Each DCI uses 3 PRBs (format 1A) for the message.
|
||||
@param module_idP Instance ID of eNB
|
||||
@param frameP Frame index
|
||||
@param subframe Subframe number on which to act
|
||||
*/
|
||||
|
||||
|
||||
void schedule_RA(module_id_t module_idP, frame_t frameP,
|
||||
sub_frame_t subframe);
|
||||
|
||||
/** \brief First stage of SI Scheduling. Gets a SI SDU from RRC if available and computes the MCS required to transport it as a function of the SDU length. It assumes a length less than or equal to 64 bytes (MCS 6, 3 PRBs).
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param frame Frame index
|
||||
@param subframe Subframe number on which to act
|
||||
/** \brief First stage of SI Scheduling. Gets a SI SDU from RRC if available and computes the MCS required to transport it as a
|
||||
function of the SDU length. It assumes a length less than or equal to 64 bytes (MCS 6, 3 PRBs).
|
||||
@param module_idP Instance ID of eNB
|
||||
@param frameP Frame index
|
||||
@param subframeP Subframe number on which to act
|
||||
*/
|
||||
void schedule_SI(module_id_t module_idP, frame_t frameP,
|
||||
sub_frame_t subframeP);
|
||||
|
||||
/** \brief First stage of SI Scheduling. Gets a SI SDU from RRC if available and computes the MCS required to transport it as a function of the SDU length. It assumes a length less than or equal to 64 bytes (MCS 6, 3 PRBs).
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param frame Frame index
|
||||
@param subframe Subframe number on which to act
|
||||
/** \brief First stage of SI Scheduling. Gets a SI SDU from RRC if available and computes the MCS required to transport it as a
|
||||
function of the SDU length. It assumes a length less than or equal to 64 bytes (MCS 6, 3 PRBs).
|
||||
@param module_idP Instance ID of eNB
|
||||
@param frameP Frame index
|
||||
@param subframeP Subframe number on which to act
|
||||
*/
|
||||
void schedule_SI_MBMS(module_id_t module_idP, frame_t frameP,
|
||||
sub_frame_t subframeP);
|
||||
|
||||
|
||||
/** \brief MBMS scheduling: Checking the position for MBSFN subframes. Create MSI, transfer MCCH from RRC to MAC, transfer MTCHs from RLC to MAC. Multiplexing MSI,MCCH&MTCHs. Return 1 if there are MBSFN data being allocated, otherwise return 0;
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param frame Frame index
|
||||
/** \brief MBMS scheduling: Checking the position for MBSFN subframes. Create MSI, transfer MCCH from RRC to MAC, transfer MTCHs
|
||||
from RLC to MAC. Multiplexing MSI,MCCH&MTCHs. Return 1 if there are MBSFN data being allocated, otherwise return 0;
|
||||
@param module_idP Instance ID of eNB
|
||||
@param CC_id carrier
|
||||
@param frameP Frame index
|
||||
@param subframe Subframe number on which to act
|
||||
*/
|
||||
int schedule_MBMS(module_id_t module_idP, uint8_t CC_id, frame_t frameP,
|
||||
sub_frame_t subframe);
|
||||
|
||||
/** \brief MBMS scheduling: Checking the position for MBSFN subframes. Create MSI, transfer MCCH from RRC to MAC, transfer MTCHs from RLC to MAC. Multiplexing MSI,MCCH&MTCHs. Return 1 if there are MBSFN data being allocated, otherwise return 0;
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param frame Frame index
|
||||
/** \brief MBMS scheduling: Checking the position for MBSFN subframes. Create MSI, transfer MCCH from RRC to MAC, transfer MTCHs
|
||||
from RLC to MAC. Multiplexing MSI,MCCH&MTCHs. Return 1 if there are MBSFN data being allocated, otherwise return 0;
|
||||
@param module_idP Instance ID of eNB
|
||||
@param CC_id carrier index
|
||||
@param frameP Frame index
|
||||
@param subframe Subframe number on which to act
|
||||
*/
|
||||
int schedule_MBMS_NFAPI(module_id_t module_idP, uint8_t CC_id, frame_t frameP, sub_frame_t subframe);
|
||||
|
||||
|
||||
/** \brief check the mapping between sf allocation and sync area, Currently only supports 1:1 mapping
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param module_idP Instance ID of eNB
|
||||
@param CC_id carrier index
|
||||
@param mbsfn_sync_area index of mbsfn sync area
|
||||
@param[out] index of sf pattern
|
||||
*/
|
||||
int8_t get_mbsfn_sf_alloction(module_id_t module_idP, uint8_t CC_id,
|
||||
uint8_t mbsfn_sync_area);
|
||||
|
||||
/** \brief check the mapping between sf allocation and sync area, Currently only supports 1:1 mapping
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param module_idP Instance ID of eNB
|
||||
@param mbsfn_sync_area index of mbsfn sync area
|
||||
@param eNB_index index of eNB
|
||||
@param[out] index of sf pattern
|
||||
*/
|
||||
int8_t ue_get_mbsfn_sf_alloction(module_id_t module_idP,
|
||||
uint8_t mbsfn_sync_area,
|
||||
unsigned char eNB_index);
|
||||
|
||||
/** \brief top ULSCH Scheduling for TDD (config 1-6).
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param frame Frame index
|
||||
@param module_idP Instance ID of eNB
|
||||
@param frameP Frame index
|
||||
@param subframe Subframe number on which to act
|
||||
*/
|
||||
void schedule_ulsch(module_id_t module_idP, frame_t frameP,
|
||||
sub_frame_t subframe);
|
||||
|
||||
/** \brief ULSCH Scheduling per RNTI
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param module_idP Instance ID of eNB
|
||||
@param CC_id The component carrier to schedule
|
||||
@param frame Frame index
|
||||
@param frameP Frame index
|
||||
@param subframe Subframe number on which to act
|
||||
@param sched_subframe Subframe number where PUSCH is transmitted (for DAI lookup)
|
||||
*/
|
||||
@@ -147,9 +150,12 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP,
|
||||
unsigned char sched_subframeP,
|
||||
int *emtc_active);
|
||||
|
||||
/** \brief UE specific DLSCH scheduling. Retrieves next ue to be schduled from round-robin scheduler and gets the appropriate harq_pid for the subframe from PHY. If the process is active and requires a retransmission, it schedules the retransmission with the same PRB count and MCS as the first transmission. Otherwise it consults RLC for DCCH/DTCH SDUs (status with maximum number of available PRBS), builds the MAC header (timing advance sent by default) and copies
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param frame Frame index
|
||||
/** \brief UE specific DLSCH scheduling. Retrieves next ue to be schduled from round-robin scheduler and gets the appropriate
|
||||
harq_pid for the subframe from PHY. If the process is active and requires a retransmission, it schedules the retransmission with the
|
||||
same PRB count and MCS as the first transmission. Otherwise it consults RLC for DCCH/DTCH SDUs (status with maximum number of
|
||||
available PRBS), builds the MAC header (timing advance sent by default) and copies
|
||||
@param module_idP Instance ID of eNB
|
||||
@param frameP Frame index
|
||||
@param subframe Subframe on which to act
|
||||
|
||||
@param mbsfn_flag Indicates that MCH/MCCH is in this subframe
|
||||
@@ -167,21 +173,22 @@ void schedule_ue_spec_br(module_id_t module_idP,
|
||||
void schedule_ue_spec_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t subframe,int *mbsfn_flag);
|
||||
void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP);
|
||||
|
||||
|
||||
/** \brief Function for UE/PHY to compute PUSCH transmit power in power-control procedure.
|
||||
@param Mod_id Module id of UE
|
||||
@param module_idP Module id of UE
|
||||
@param CC_id carrier component id of UE
|
||||
@returns Po_NOMINAL_PUSCH (PREAMBLE_RECEIVED_TARGET_POWER+DELTA_PREAMBLE
|
||||
*/
|
||||
int8_t get_Po_NOMINAL_PUSCH(module_id_t module_idP, uint8_t CC_id);
|
||||
|
||||
/** \brief Function to compute DELTA_PREAMBLE from 36.321 (for RA power ramping procedure and Msg3 PUSCH power control policy)
|
||||
@param Mod_id Module id of UE
|
||||
@param module_idP Module id of UE
|
||||
@param CC_id carrier component id of UE
|
||||
@returns DELTA_PREAMBLE
|
||||
*/
|
||||
int8_t get_DELTA_PREAMBLE(module_id_t module_idP, int CC_id);
|
||||
|
||||
/** \brief Function for compute deltaP_rampup from 36.321 (for RA power ramping procedure and Msg3 PUSCH power control policy)
|
||||
@param Mod_id Module id of UE
|
||||
@param module_idP Module id of UE
|
||||
@param CC_id carrier component id of UE
|
||||
@returns deltaP_rampup
|
||||
*/
|
||||
@@ -202,7 +209,7 @@ int mac_top_init(int eMBMS_active, char *uecap_xer,
|
||||
|
||||
void mac_top_init_eNB(void);
|
||||
|
||||
void mac_init_cell_params(int Mod_idP, int CC_idP);
|
||||
void mac_init_cell_params(int module_idPP, int CC_idP);
|
||||
|
||||
char layer2_init_UE(module_id_t module_idP);
|
||||
|
||||
@@ -218,14 +225,13 @@ void clear_nfapi_information(eNB_MAC_INST *eNB, int CC_idP,
|
||||
|
||||
// eNB functions
|
||||
/* \brief This function assigns pre-available RBS to each UE in specified sub-bands before scheduling is done
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param module_idP Instance ID of eNB
|
||||
@param slice_idxP Slice instance index for the slice in which scheduling happens
|
||||
@param frame Index of frame
|
||||
@param subframe Index of current subframe
|
||||
@param N_RBS Number of resource block groups
|
||||
*/
|
||||
|
||||
|
||||
void dlsch_scheduler_pre_processor(module_id_t module_idP,
|
||||
int CC_id,
|
||||
frame_t frameP,
|
||||
@@ -233,14 +239,14 @@ void dlsch_scheduler_pre_processor(module_id_t module_idP,
|
||||
|
||||
/* \brief Function to trigger the eNB scheduling procedure. It is called by PHY at the beginning of each subframe, \f$n$\f
|
||||
and generates all DLSCH allocations for subframe \f$n\f$ and ULSCH allocations for subframe \f$n+k$\f.
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param module_idP Instance ID of eNB
|
||||
@param subframe Index of current subframe
|
||||
@param calibration_flag Flag to indicate that eNB scheduler should schedule TDD auto-calibration PUSCH.
|
||||
*/
|
||||
void eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP); //, int calibration_flag);
|
||||
|
||||
/* \brief Function to indicate a received preamble on PRACH. It initiates the RA procedure.
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param module_idP Instance ID of eNB
|
||||
@param preamble_index index of the received RA request
|
||||
@param timing_offset Offset in samples of the received PRACH w.r.t. eNB timing. This is used to
|
||||
@param rnti RA rnti corresponding to this PRACH preamble
|
||||
@@ -252,8 +258,9 @@ void initiate_ra_proc(module_id_t module_idP, int CC_id, frame_t frameP,
|
||||
uint8_t rach_resource_type
|
||||
);
|
||||
|
||||
/* \brief Function in eNB to fill RAR pdu when requested by PHY. This provides a single RAR SDU for the moment and returns the t-CRNTI.
|
||||
@param Mod_id Instance ID of eNB
|
||||
/* \brief Function in eNB to fill RAR pdu when requested by PHY. This provides a single RAR SDU for the moment and returns the
|
||||
t-CRNTI.
|
||||
@param module_idP Instance ID of eNB
|
||||
@param dlsch_buffer Pointer to DLSCH input buffer
|
||||
@param N_RB_UL Number of UL resource blocks
|
||||
@returns t_CRNTI
|
||||
@@ -274,9 +281,8 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB,
|
||||
uint8_t *const dlsch_buffer,
|
||||
const uint8_t ce_level);
|
||||
|
||||
|
||||
/* \brief Function to indicate a failed RA response. It removes all temporary variables related to the initial connection of a UE
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param module_idP Instance ID of eNB
|
||||
@param preamble_index index of the received RA request.
|
||||
*/
|
||||
void cancel_ra_proc(module_id_t module_idP, int CC_id, frame_t frameP,
|
||||
@@ -285,7 +291,7 @@ void cancel_ra_proc(module_id_t module_idP, int CC_id, frame_t frameP,
|
||||
/* \brief Function used by PHY to inform MAC that an uplink is scheduled
|
||||
for Msg3 in given subframe. This is used so that the MAC
|
||||
scheduler marks as busy the RBs used by the Msg3.
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param module_idP Instance ID of eNB
|
||||
@param CC_id CC ID of eNB
|
||||
@param frame current frame
|
||||
@param subframe current subframe
|
||||
@@ -296,14 +302,10 @@ void cancel_ra_proc(module_id_t module_idP, int CC_id, frame_t frameP,
|
||||
|
||||
void clear_ra_proc(module_id_t module_idP, int CC_id, frame_t frameP);
|
||||
|
||||
void set_msg3_subframe(module_id_t Mod_id,
|
||||
int CC_id,
|
||||
int frame,
|
||||
int subframe,
|
||||
int rnti, int Msg3_frame, int Msg3_subframe);
|
||||
void set_msg3_subframe(module_id_t module_idP, int CC_id, int frame, int subframe, int rnti, int Msg3_frame, int Msg3_subframe);
|
||||
|
||||
/* \brief Function to indicate a received SDU on ULSCH.
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param module_idP Instance ID of eNB
|
||||
@param CC_id Component carrier index
|
||||
@param rnti RNTI of UE transmitting the SDU
|
||||
@param sdu Pointer to received SDU
|
||||
@@ -320,9 +322,8 @@ void rx_sdu(const module_id_t enb_mod_idP,
|
||||
const uint16_t sdu_lenP,
|
||||
const uint16_t timing_advance, const uint8_t ul_cqi);
|
||||
|
||||
|
||||
/* \brief Function to indicate a scheduled schduling request (SR) was received by eNB.
|
||||
@param Mod_idP Instance ID of eNB
|
||||
@param module_idPP Instance ID of eNB
|
||||
@param CC_idP CC_id of received SR
|
||||
@param frameP of received SR
|
||||
@param subframeP Index of subframe where SR was received
|
||||
@@ -333,17 +334,16 @@ void SR_indication(module_id_t module_idP, int CC_id, frame_t frameP,
|
||||
sub_frame_t subframe, rnti_t rnti, uint8_t ul_cqi);
|
||||
|
||||
/* \brief Function to indicate a UL failure was detected by eNB PHY.
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param module_idP Instance ID of eNB
|
||||
@param CC_id Component carrier
|
||||
@param frameP Frame index
|
||||
@param rnti RNTI of UE transmitting the SR
|
||||
@param subframe Index of subframe where SR was received
|
||||
*/
|
||||
void UL_failure_indication(module_id_t Mod_id, int CC_id, frame_t frameP,
|
||||
rnti_t rnti, sub_frame_t subframe);
|
||||
void UL_failure_indication(module_id_t module_idP, int CC_id, frame_t frameP, rnti_t rnti, sub_frame_t subframe);
|
||||
|
||||
/* \brief Function to indicate an HARQ ACK/NAK.
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param module_idP Instance ID of eNB
|
||||
@param CC_id Component carrier
|
||||
@param frameP Frame index
|
||||
@param subframeP subframe index
|
||||
@@ -354,7 +354,7 @@ void harq_indication(module_id_t mod_idP, int CC_idP, frame_t frameP,
|
||||
nfapi_harq_indication_pdu_t *harq_pdu);
|
||||
|
||||
/* \brief Function to indicate a received CQI pdu
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param module_idP Instance ID of eNB
|
||||
@param CC_id Component carrier
|
||||
@param frameP Frame index
|
||||
@param subframeP subframe index
|
||||
@@ -369,19 +369,15 @@ void cqi_indication(module_id_t mod_idP, int CC_idP, frame_t frameP,
|
||||
uint8_t *get_dlsch_sdu(module_id_t module_idP, int CC_id, frame_t frameP,
|
||||
rnti_t rnti, uint8_t TBindex);
|
||||
|
||||
/* \brief Function to retrieve MCH transport block and MCS used for MCH in this MBSFN subframe. Returns null if no MCH is to be transmitted
|
||||
@param Mod_id Instance ID of eNB
|
||||
/* \brief Function to retrieve MCH transport block and MCS used for MCH in this MBSFN subframe. Returns null if no MCH is to be
|
||||
transmitted
|
||||
@param module_idP Instance ID of eNB
|
||||
@param frame Index of frame
|
||||
@param subframe Index of current subframe
|
||||
@param mcs Pointer to mcs used by PHY (to be filled by MAC)
|
||||
@returns Pointer to MCH transport block and mcs for subframe
|
||||
*/
|
||||
MCH_PDU *get_mch_sdu(module_id_t Mod_id, int CC_id, frame_t frame,
|
||||
sub_frame_t subframe);
|
||||
|
||||
|
||||
|
||||
|
||||
MCH_PDU *get_mch_sdu(module_id_t module_idP, int CC_id, frame_t frame, sub_frame_t subframe);
|
||||
|
||||
void ue_mac_reset(module_id_t module_idP, uint8_t eNB_index);
|
||||
void ue_init_mac(module_id_t module_idP);
|
||||
@@ -431,11 +427,11 @@ void set_ue_dai(sub_frame_t subframeP,
|
||||
uint8_t CC_id, uint8_t tdd_config, UE_info_t *UE_info);
|
||||
|
||||
uint8_t frame_subframe2_dl_harq_pid(LTE_TDD_Config_t *tdd_Config, int abs_frameP, sub_frame_t subframeP);
|
||||
/** \brief First stage of PCH Scheduling. Gets a PCH SDU from RRC if available and computes the MCS required to transport it as a function of the SDU length. It assumes a length less than or equal to 64 bytes (MCS 6, 3 PRBs).
|
||||
@param Mod_id Instance ID of eNB
|
||||
@param frame Frame index
|
||||
@param subframe Subframe number on which to act
|
||||
@param paging_ue_index
|
||||
/** \brief First stage of PCH Scheduling. Gets a PCH SDU from RRC if available and computes the MCS required to transport it as a
|
||||
function of the SDU length. It assumes a length less than or equal to 64 bytes (MCS 6, 3 PRBs).
|
||||
@param module_idP Instance ID of eNB
|
||||
@param frameP Frame index
|
||||
@param subframeP Subframe number on which to act
|
||||
*/
|
||||
void schedule_PCH(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP);
|
||||
|
||||
@@ -444,7 +440,8 @@ uint8_t find_num_active_UEs_in_cbagroup(module_id_t module_idP,
|
||||
uint8_t UE_is_to_be_scheduled(module_id_t module_idP, int CC_id,
|
||||
uint8_t UE_id);
|
||||
/** \brief Round-robin scheduler for ULSCH traffic.
|
||||
@param Mod_id Instance ID for eNB
|
||||
@param module_idP Instance ID for eNB
|
||||
@param UE_id
|
||||
@param subframe Subframe number on which to act
|
||||
@returns UE index that is to be scheduled if needed/room
|
||||
*/
|
||||
@@ -463,13 +460,13 @@ uint32_t allocate_prbs(int UE_id, uint8_t nb_rb, int N_RB_DL,
|
||||
|
||||
/* \fn uint32_t req_new_ulsch(module_id_t module_idP)
|
||||
\brief check for a new transmission in any drb
|
||||
@param Mod_id Instance id of UE in machine
|
||||
@param module_idP Instance id of UE in machine
|
||||
@returns 1 for new transmission, 0 for none
|
||||
*/
|
||||
uint32_t req_new_ulsch(module_id_t module_idP);
|
||||
|
||||
/* \brief Get SR payload (0,1) from UE MAC
|
||||
@param Mod_id Instance id of UE in machine
|
||||
@param module_idP Instance id of UE in machine
|
||||
@param CC_id Component Carrier index
|
||||
@param eNB_id Index of eNB that UE is attached to
|
||||
@param rnti C_RNTI of UE
|
||||
@@ -508,7 +505,7 @@ void ue_send_sl_sdu(module_id_t module_idP,
|
||||
);
|
||||
|
||||
/* \brief Called by PHY to transfer MCH transport block to ue MAC.
|
||||
@param Mod_id Index of module instance
|
||||
@param module_idP Index of module instance
|
||||
@param frame Frame index
|
||||
@param sdu Pointer to transport block
|
||||
@param sdu_len Length of transport block
|
||||
@@ -520,24 +517,34 @@ void ue_send_mch_sdu(module_id_t module_idP, uint8_t CC_id, frame_t frameP,
|
||||
uint8_t sync_area);
|
||||
|
||||
/*\brief Function to check if UE PHY needs to decode MCH for MAC.
|
||||
@param Mod_id Index of protocol instance
|
||||
@param module_idP Index of protocol instance
|
||||
@param frame Index of frame
|
||||
@param subframe Index of subframe
|
||||
@param eNB_index index of eNB for this MCH
|
||||
@param[out] sync_area return the sync area
|
||||
@param[out] mcch_active flag indicating whether this MCCH is active in this SF
|
||||
*/
|
||||
int ue_query_mch(module_id_t Mod_id, uint8_t CC_id, uint32_t frame,
|
||||
sub_frame_t subframe, uint8_t eNB_index,
|
||||
uint8_t *sync_area, uint8_t *mcch_active);
|
||||
int ue_query_mch(module_id_t module_idP,
|
||||
uint8_t CC_id,
|
||||
uint32_t frame,
|
||||
sub_frame_t subframe,
|
||||
uint8_t eNB_index,
|
||||
uint8_t *sync_area,
|
||||
uint8_t *mcch_active);
|
||||
|
||||
int ue_query_mch_fembms(module_id_t Mod_id, uint8_t CC_id, uint32_t frame,
|
||||
sub_frame_t subframe, uint8_t eNB_index,
|
||||
uint8_t * sync_area, uint8_t * mcch_active);
|
||||
int ue_query_mch_fembms(module_id_t module_idP,
|
||||
uint8_t CC_id,
|
||||
uint32_t frame,
|
||||
sub_frame_t subframe,
|
||||
uint8_t eNB_index,
|
||||
uint8_t *sync_area,
|
||||
uint8_t *mcch_active);
|
||||
|
||||
|
||||
/* \brief Called by PHY to get sdu for PUSCH transmission. It performs the following operations: Checks BSR for DCCH, DCCH1 and DTCH corresponding to previous values computed either in SR or BSR procedures. It gets rlc status indications on DCCH,DCCH1 and DTCH and forms BSR elements and PHR in MAC header. CRNTI element is not supported yet. It computes transport block for up to 3 SDUs and generates header and forms the complete MAC SDU.
|
||||
@param Mod_id Instance id of UE in machine
|
||||
/* \brief Called by PHY to get sdu for PUSCH transmission. It performs the following operations: Checks BSR for DCCH, DCCH1 and
|
||||
DTCH corresponding to previous values computed either in SR or BSR procedures. It gets rlc status indications on DCCH,DCCH1 and
|
||||
DTCH and forms BSR elements and PHR in MAC header. CRNTI element is not supported yet. It computes transport block for up to 3
|
||||
SDUs and generates header and forms the complete MAC SDU.
|
||||
@param module_idP Instance id of UE in machine
|
||||
@param eNB_id Index of eNB that UE is attached to
|
||||
@param rnti C_RNTI of UE
|
||||
@param subframe subframe number
|
||||
@@ -548,7 +555,7 @@ void ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP,
|
||||
uint8_t *access_mode);
|
||||
|
||||
/* \brief Called by PHY to get sdu for PSBCH/SSS/PSS transmission.
|
||||
@param Mod_id Instance id of UE in machine
|
||||
@param module_idP Instance id of UE in machine
|
||||
@param frame_tx TX frame index
|
||||
@param subframe_tx TX subframe index
|
||||
@returns pointer to SLSS_t descriptor
|
||||
@@ -556,7 +563,7 @@ void ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP,
|
||||
SLSS_t *ue_get_slss(module_id_t module_idP, int CC_id,frame_t frameP, sub_frame_t subframe);
|
||||
|
||||
/* \brief Called by PHY to get sdu for PSDCH transmission.
|
||||
@param Mod_id Instance id of UE in machine
|
||||
@param module_idP Instance id of UE in machine
|
||||
@param frame_tx TX frame index
|
||||
@param subframe_tx TX subframe index
|
||||
@returns pointer to SLDCH_t descriptor
|
||||
@@ -564,16 +571,19 @@ SLSS_t *ue_get_slss(module_id_t module_idP, int CC_id,frame_t frameP, sub_frame_
|
||||
SLDCH_t *ue_get_sldch(module_id_t module_idP, int CC_id,frame_t frameP, sub_frame_t subframe);
|
||||
|
||||
/* \brief Called by PHY to get sdu for PSSCH transmission.
|
||||
@param Mod_id Instance id of UE in machine
|
||||
@param module_idP Instance id of UE in machine
|
||||
@param frame_tx TX frame index
|
||||
@param subframe_tx TX subframe index
|
||||
@returns pointer to SLSCH_t descriptor
|
||||
*/
|
||||
SLSCH_t *ue_get_slsch(module_id_t module_idP, int CC_id,frame_t frameP, sub_frame_t subframe);
|
||||
|
||||
/* \brief Function called by PHY to retrieve information to be transmitted using the RA procedure. If the UE is not in PUSCH mode for a particular eNB index, this is assumed to be an Msg3 and MAC attempts to retrieves the CCCH message from RRC. If the UE is in PUSCH mode for a particular eNB index and PUCCH format 0 (Scheduling Request) is not activated, the MAC may use this resource for random-access to transmit a BSR along with the C-RNTI control element (see 5.1.4 from 36.321)
|
||||
@param Mod_id Index of UE instance
|
||||
@param Mod_id Component Carrier Index
|
||||
/* \brief Function called by PHY to retrieve information to be transmitted using the RA procedure. If the UE is not in PUSCH mode
|
||||
for a particular eNB index, this is assumed to be an Msg3 and MAC attempts to retrieves the CCCH message from RRC. If the UE is in
|
||||
PUSCH mode for a particular eNB index and PUCCH format 0 (Scheduling Request) is not activated, the MAC may use this resource for
|
||||
random-access to transmit a BSR along with the C-RNTI control element (see 5.1.4 from 36.321)
|
||||
@param module_idP Index of UE instance
|
||||
@param module_idP Component Carrier Index
|
||||
@param New_Msg3 Flag to indicate this call is for a new Msg3
|
||||
@param subframe Index of subframe for PRACH transmission (0 ... 9)
|
||||
@returns A pointer to a PRACH_RESOURCES_t */
|
||||
@@ -581,8 +591,9 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id,
|
||||
frame_t frameP, uint8_t new_Msg3,
|
||||
sub_frame_t subframe);
|
||||
|
||||
/* \brief Function called by PHY to process the received RAR. It checks that the preamble matches what was sent by the eNB and provides the timing advance and t-CRNTI.
|
||||
@param Mod_id Index of UE instance
|
||||
/* \brief Function called by PHY to process the received RAR. It checks that the preamble matches what was sent by the eNB and
|
||||
provides the timing advance and t-CRNTI.
|
||||
@param module_idP Index of UE instance
|
||||
@param CC_id Index to a component carrier
|
||||
@param frame Frame index
|
||||
@param ra_rnti RA_RNTI value
|
||||
@@ -653,10 +664,10 @@ uint8_t *parse_ulsch_header(uint8_t *mac_header,
|
||||
int to_prb(int);
|
||||
int to_rbg(int);
|
||||
int mac_init(void);
|
||||
int add_new_ue(module_id_t Mod_id, int CC_id, rnti_t rnti, int harq_pid, uint8_t rach_resource_type);
|
||||
int rrc_mac_remove_ue(module_id_t Mod_id, rnti_t rntiP);
|
||||
int add_new_ue(module_id_t module_idP, int CC_id, rnti_t rnti, int harq_pid, uint8_t rach_resource_type);
|
||||
int rrc_mac_remove_ue(module_id_t module_idP, rnti_t rntiP);
|
||||
|
||||
void store_dlsch_buffer(module_id_t Mod_id, int CC_id, frame_t frameP, sub_frame_t subframeP);
|
||||
void store_dlsch_buffer(module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t subframeP);
|
||||
|
||||
int prev(UE_list_t *listP, int nodeP);
|
||||
void add_ue_list(UE_list_t *listP, int UE_id);
|
||||
@@ -680,7 +691,7 @@ void ulsch_scheduler_pre_processor(module_id_t module_idP,
|
||||
frame_t sched_frameP,
|
||||
sub_frame_t sched_subframeP);
|
||||
|
||||
int phy_stats_exist(module_id_t Mod_id, int rnti);
|
||||
int phy_stats_exist(module_id_t module_idP, int rnti);
|
||||
|
||||
/*! \fn UE_L2_state_t ue_scheduler(const module_id_t module_idP,const frame_t frameP, const sub_frame_t subframe, const lte_subframe_t direction,const uint8_t eNB_index)
|
||||
\brief UE scheduler where all the ue background tasks are done. This function performs the following: 1) Trigger PDCP every 5ms 2) Call RRC for link status return to PHY3) Perform SR/BSR procedures for scheduling feedback 4) Perform PHR procedures.
|
||||
@@ -701,37 +712,34 @@ UE_L2_STATE_t ue_scheduler(const module_id_t module_idP,
|
||||
const lte_subframe_t direction,
|
||||
const uint8_t eNB_index, const int CC_id);
|
||||
|
||||
/*! \fn int cba_access(module_id_t module_idP,frame_t frameP,sub_frame_t subframe, uint8_t eNB_index,uint16_t buflen);
|
||||
/*! \fn int cba_access
|
||||
\brief determine whether to use cba resource to transmit or not
|
||||
\param[in] Mod_id instance of the UE
|
||||
\param[in] frame the frame number
|
||||
\param[in] module_idP instance of the UE
|
||||
\param[in] frameP the frame number
|
||||
\param[in] subframe the subframe number
|
||||
\param[in] eNB_index instance of eNB
|
||||
\param[out] access(1) or postpone (0)
|
||||
*/
|
||||
int cba_access(module_id_t module_idP, frame_t frameP,
|
||||
sub_frame_t subframe, uint8_t eNB_index, uint16_t buflen);
|
||||
|
||||
/*! \fn BSR_SHORT * get_bsr_short(module_id_t module_idP, uint8_t bsr_len)
|
||||
\brief get short bsr level
|
||||
\param[in] Mod_id instance of the UE
|
||||
\param[in] module_idP instance of the UE
|
||||
\param[in] bsr_len indicator for no, short, or long bsr
|
||||
\param[out] bsr_s pointer to short bsr
|
||||
*/
|
||||
BSR_SHORT *get_bsr_short(module_id_t module_idP, uint8_t bsr_len);
|
||||
|
||||
/*! \fn BSR_LONG * get_bsr_long(module_id_t module_idP, uint8_t bsr_len)
|
||||
\brief get long bsr level
|
||||
\param[in] Mod_id instance of the UE
|
||||
\param[in] module_idP instance of the UE
|
||||
\param[in] bsr_len indicator for no, short, or long bsr
|
||||
\param[out] bsr_l pointer to long bsr
|
||||
*/
|
||||
BSR_LONG *get_bsr_long(module_id_t module_idP, uint8_t bsr_len);
|
||||
|
||||
/*! \fn bool update_bsr(module_id_t module_idP, frame_t frameP,sub_frame_t subframeP)
|
||||
\brief get the rlc stats and update the bsr level for each lcid
|
||||
\param[in] Mod_id instance of the UE
|
||||
\param[in] frame Frame index
|
||||
\param[in] module_idP instance of the UE
|
||||
\param[in] frameP Frame index
|
||||
*/
|
||||
bool update_bsr(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP, eNB_index_t eNB_index);
|
||||
|
||||
@@ -745,22 +753,20 @@ bool update_bsr(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP, e
|
||||
uint8_t locate_BsrIndexByBufferSize(const uint32_t *table, int size,
|
||||
int value);
|
||||
|
||||
|
||||
/*! \fn int get_sf_periodicBSRTimer(uint8_t periodicBSR_Timer)
|
||||
\brief get the number of subframe from the periodic BSR timer configured by the higher layers
|
||||
\param[in] periodicBSR_Timer timer for periodic BSR
|
||||
\return the number of subframe
|
||||
*/
|
||||
int get_sf_periodicBSRTimer(uint8_t bucketSize);
|
||||
|
||||
/*! \fn int get_ms_bucketsizeduration(uint8_t bucketSize)
|
||||
\brief get the time in ms form the bucket size duration configured by the higher layer
|
||||
\param[in] bucketSize the bucket size duration
|
||||
\param[in] bucketsizeduration the bucket size duration
|
||||
\return the time in ms
|
||||
*/
|
||||
int get_ms_bucketsizeduration(uint8_t bucketsizeduration);
|
||||
|
||||
/*! \fn int get_sf_retxBSRTimer(uint8_t retxBSR_Timer)
|
||||
/*! \fn get_sf_retxBSRTimer
|
||||
\brief get the number of subframe form the bucket size duration configured by the higher layer
|
||||
\param[in] retxBSR_Timer timer for regular BSR
|
||||
\return the time in sf
|
||||
@@ -790,8 +796,9 @@ int get_db_dl_PathlossChange(uint8_t dl_PathlossChange);
|
||||
|
||||
/*! \fn uint8_t get_phr_mapping (module_id_t module_idP, int CC_id,uint8_t eNB_index)
|
||||
\brief get phr mapping as described in 36.313
|
||||
\param[in] Mod_id index of eNB
|
||||
\param[in] module_idP index of eNB
|
||||
\param[in] CC_id Component Carrier Index
|
||||
\param[in] eNB_index
|
||||
\return phr mapping
|
||||
*/
|
||||
uint8_t get_phr_mapping(module_id_t module_idP, int CC_id,
|
||||
@@ -799,22 +806,25 @@ uint8_t get_phr_mapping(module_id_t module_idP, int CC_id,
|
||||
|
||||
/*! \fn void update_phr (module_id_t module_idP)
|
||||
\brief update/reset the phr timers
|
||||
\param[in] Mod_id index of eNB
|
||||
\param[in] module_idP index of eNB
|
||||
\param[in] CC_id Component carrier index
|
||||
\return void
|
||||
*/
|
||||
void update_phr(module_id_t module_idP, int CC_id);
|
||||
|
||||
/*! \brief Function to indicate Msg3 transmission/retransmission which initiates/reset Contention Resolution Timer
|
||||
\param[in] Mod_id Instance index of UE
|
||||
\param[in] module_idP Instance index of UE
|
||||
\param[in] CC_id carrier component id of UE
|
||||
\param[in] frameP
|
||||
\param[in] eNB_id Index of eNB
|
||||
*/
|
||||
void Msg3_tx(module_id_t module_idP, uint8_t CC_id, frame_t frameP,
|
||||
uint8_t eNB_id);
|
||||
|
||||
|
||||
/*! \brief Function to indicate the transmission of msg1/rach
|
||||
\param[in] Mod_id Instance index of UE
|
||||
\param[in] module_idP Instance index of UE
|
||||
\param[in] CC_id carrier component id of UE
|
||||
\param[in] frameP
|
||||
\param[in] eNB_id Index of eNB
|
||||
*/
|
||||
|
||||
@@ -873,15 +883,18 @@ int generate_dlsch_header(unsigned char *mac_header,
|
||||
unsigned char short_padding,
|
||||
unsigned short post_padding);
|
||||
|
||||
/** \brief RRC eNB Configuration primitive for PHY/MAC. Allows configuration of PHY/MAC resources based on System Information (SI), RRCConnectionSetup and RRCConnectionReconfiguration messages.
|
||||
@param Mod_id Instance ID of eNB
|
||||
/** \brief RRC eNB Configuration primitive for PHY/MAC. Allows configuration of PHY/MAC resources based on System Information (SI),
|
||||
RRCConnectionSetup and RRCConnectionReconfiguration messages.
|
||||
@param module_idP Instance ID of eNB
|
||||
@param CC_id Component Carrier of the eNB
|
||||
@param mib Pointer to MIB
|
||||
|
||||
@param radioResourceConfigCommon Structure from SIB2 for common radio parameters (if NULL keep existing configuration)
|
||||
@param physicalConfigDedicated Structure from RRCConnectionSetup or RRCConnectionReconfiguration for dedicated PHY parameters (if NULL keep existing configuration)
|
||||
@param physicalConfigDedicated Structure from RRCConnectionSetup or RRCConnectionReconfiguration for dedicated PHY parameters (if
|
||||
NULL keep existing configuration)
|
||||
@param measObj Structure from RRCConnectionReconfiguration for UE measurement procedures
|
||||
@param mac_MainConfig Structure from RRCConnectionSetup or RRCConnectionReconfiguration for dedicated MAC parameters (if NULL keep existing configuration)
|
||||
@param mac_MainConfig Structure from RRCConnectionSetup or RRCConnectionReconfiguration for dedicated MAC parameters (if NULL keep
|
||||
existing configuration)
|
||||
@param logicalChannelIdentity Logical channel identity index of corresponding logical channel config
|
||||
@param logicalChannelConfig Pointer to logical channel configuration
|
||||
@param measGapConfig Measurement Gap configuration for MAC (if NULL keep existing configuration)
|
||||
@@ -943,14 +956,18 @@ typedef struct {
|
||||
|
||||
int rrc_mac_config_req_eNB(const module_id_t module_idP, const rrc_mac_config_req_eNB_t *);
|
||||
|
||||
/** \brief RRC eNB Configuration primitive for PHY/MAC. Allows configuration of PHY/MAC resources based on System Information (SI), RRCConnectionSetup and RRCConnectionReconfiguration messages.
|
||||
@param Mod_id Instance ID of ue
|
||||
/** \brief RRC eNB Configuration primitive for PHY/MAC. Allows configuration of PHY/MAC resources based on System Information (SI),
|
||||
RRCConnectionSetup and RRCConnectionReconfiguration messages.
|
||||
@param module_idP Instance ID of ue
|
||||
@param CC_id Component Carrier of the ue
|
||||
@param eNB_id Index of eNB
|
||||
@param eNB_index Index of eNB
|
||||
@param radioResourceConfigCommon Structure from SIB2 for common radio parameters (if NULL keep existing configuration)
|
||||
@param physcialConfigDedicated Structure from RRCConnectionSetup or RRCConnectionReconfiguration for dedicated PHY parameters (if NULL keep existing configuration)
|
||||
@param physicalConfigDedicated Structure from RRCConnectionSetup or RRCConnectionReconfiguration for dedicated PHY parameters (if
|
||||
NULL keep existing configuration)
|
||||
@param sCellToAddMod_r10
|
||||
@param measObj Structure from RRCConnectionReconfiguration for UE measurement procedures
|
||||
@param mac_MainConfig Structure from RRCConnectionSetup or RRCConnectionReconfiguration for dedicated MAC parameters (if NULL keep existing configuration)
|
||||
@param mac_MainConfig Structure from RRCConnectionSetup or RRCConnectionReconfiguration for dedicated MAC parameters (if NULL keep
|
||||
existing configuration)
|
||||
@param logicalChannelIdentity Logical channel identity index of corresponding logical channel config
|
||||
@param logicalChannelConfig Pointer to logical channel configuration
|
||||
@param measGapConfig Measurement Gap configuration for MAC (if NULL keep existing configuration)
|
||||
@@ -958,10 +975,19 @@ int rrc_mac_config_req_eNB(const module_id_t module_idP, const rrc_mac_config_re
|
||||
@param mobilityControlInfo mobility control info received for Handover
|
||||
@param SIwindowsize SI Windowsize from SIB1 (if NULL keep existing configuration)
|
||||
@param SIperiod SI Period from SIB1 (if NULL keep existing configuration)
|
||||
@param ul_CarrierFreq
|
||||
@param ul_Bandwidth
|
||||
@param additionalSpectrumEmission
|
||||
@param MBMS_Flag indicates MBMS transmission
|
||||
@param mbsfn_SubframeConfigList pointer to mbsfn subframe configuration list from SIB2
|
||||
@param mbsfn_AreaInfoList pointer to MBSFN Area Info list from SIB13
|
||||
@param pmch_InfoList pointer to PMCH_InfoList from MBSFNAreaConfiguration Message (MCCH Message)
|
||||
@param config_action
|
||||
@param sourceL2Id
|
||||
@param destinationL2Id
|
||||
@param FeMBMS_Flag
|
||||
@param nonMBSFN_SubframeConfig
|
||||
@param mbsfn_AreaInfoList_fembms
|
||||
*/
|
||||
int rrc_mac_config_req_ue(module_id_t module_idP,
|
||||
int CC_id,
|
||||
@@ -1205,7 +1231,7 @@ void pre_scd_nb_rbs_required( module_id_t module_idP,
|
||||
|
||||
/* DRX Configuration */
|
||||
/* Configure local DRX timers and thresholds in UE context, following the drx_configuration input */
|
||||
void eNB_Config_Local_DRX(instance_t Mod_id, rrc_mac_drx_config_req_t *rrc_mac_drx_config_req);
|
||||
void eNB_Config_Local_DRX(instance_t module_idP, rrc_mac_drx_config_req_t *rrc_mac_drx_config_req);
|
||||
|
||||
/* from here: prototypes to get rid of compilation warnings: doc to be written by function author */
|
||||
uint8_t ul_subframe2_k_phich(COMMON_channels_t *cc, sub_frame_t ul_subframe);
|
||||
|
||||
@@ -19,8 +19,7 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
|
||||
/*! \file asn1_msg.c
|
||||
/*! \file ue_procedures.c
|
||||
* \brief primitives to build the asn1 messages / primitives to build FeMBMS asn1 messages
|
||||
* \author Raymond Knopp, Navid Nikaein and Javier Morgade
|
||||
* \date 2011 / 2019
|
||||
|
||||
@@ -121,19 +121,20 @@ void fill_scheduled_response(nr_scheduled_response_t *scheduled_response,
|
||||
void *phy_data);
|
||||
|
||||
/*! \fn int8_t nr_ue_get_SR(module_id_t module_idP, frame_t frameP, slot_t slotP);
|
||||
\brief Called by PHY to get sdu for PUSCH transmission. It performs the following operations: Checks BSR for DCCH, DCCH1 and DTCH corresponding to previous values computed either in SR or BSR procedures. It gets rlc status indications on DCCH,DCCH1 and DTCH and forms BSR elements and PHR in MAC header. CRNTI element is not supported yet. It computes transport block for up to 3 SDUs and generates header and forms the complete MAC SDU.
|
||||
\param[in] Mod_id Instance id of UE in machine
|
||||
\param[in] frameP subframe number
|
||||
\param[in] slotP slot number
|
||||
\brief Called by PHY to get sdu for PUSCH transmission. It performs the following operations: Checks BSR for DCCH, DCCH1 and
|
||||
DTCH corresponding to previous values computed either in SR or BSR procedures. It gets rlc status indications on DCCH,DCCH1 and
|
||||
DTCH and forms BSR elements and PHR in MAC header. CRNTI element is not supported yet. It computes transport block for up to 3
|
||||
SDUs and generates header and forms the complete MAC SDU. \param[in] module_idP Instance id of UE in machine \param[in] frameP
|
||||
subframe number \param[in] slotP slot number
|
||||
*/
|
||||
int8_t nr_ue_get_SR(module_id_t module_idP, frame_t frameP, slot_t slotP);
|
||||
|
||||
/*! \fn bool update_bsr(module_id_t module_idP, frame_t frameP, slot_t slotP, uint8_t gNB_index)
|
||||
/*! \fn nr_update_bsr
|
||||
\brief get the rlc stats and update the bsr level for each lcid
|
||||
\param[in] Mod_id instance of the UE
|
||||
\param[in] module_idP instance of the UE
|
||||
\param[in] frameP Frame index
|
||||
\param[in] slot slotP number
|
||||
\param[in] uint8_t gNB_index
|
||||
\param[in] slotP number
|
||||
\param[in] gNB_index
|
||||
*/
|
||||
bool nr_update_bsr(module_id_t module_idP, frame_t frameP, slot_t slotP, uint8_t gNB_index);
|
||||
|
||||
@@ -424,4 +425,3 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
|
||||
uint16_t rnti,
|
||||
const nr_dci_format_t dci_format);
|
||||
#endif
|
||||
/** @}*/
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
* \version 1.0
|
||||
* \company Eurecom
|
||||
* @ingroup _mac
|
||||
|
||||
*/
|
||||
|
||||
#include <softmodem-common.h>
|
||||
|
||||
@@ -856,3 +856,4 @@ typedef struct gNB_MAC_INST_s {
|
||||
} gNB_MAC_INST;
|
||||
|
||||
#endif /*__LAYER2_NR_MAC_GNB_H__ */
|
||||
/** @}*/
|
||||
|
||||
@@ -336,16 +336,6 @@ void pdcp_add_UE(const protocol_ctxt_t *const ctxt_pP);
|
||||
*/
|
||||
bool pdcp_remove_UE(const protocol_ctxt_t *const ctxt_pP);
|
||||
|
||||
/*! \fn void rrc_pdcp_config_release( const protocol_ctxt_t* const, rb_id_t)
|
||||
* \brief This functions is unused
|
||||
* \param[in] ctxt_pP Running context.
|
||||
* \param[in] rab_id Radio Bearer ID of relevant PDCP entity
|
||||
* \return none
|
||||
* \note None
|
||||
* @ingroup _pdcp
|
||||
*/
|
||||
//void rrc_pdcp_config_release ( const protocol_ctxt_t* const ctxt_pP, rb_id_t);
|
||||
|
||||
/*! \fn void pdcp_mbms_run(const protocol_ctxt_t* const ctxt_pP)
|
||||
* \brief Runs PDCP entity to let it handle incoming/outgoing SDUs
|
||||
* \param[in] ctxt_pP Running context.
|
||||
@@ -506,4 +496,4 @@ extern notifiedFIFO_t pdcp_sdu_list;
|
||||
extern hash_table_t *pdcp_coll_p;
|
||||
|
||||
#endif
|
||||
/*@}*/
|
||||
/** @}*/
|
||||
|
||||
+40
-29
@@ -145,13 +145,12 @@ rlc_op_status_t rrc_rlc_config_asn1_req (
|
||||
const uint32_t,
|
||||
const uint32_t );
|
||||
|
||||
/*! \fn rlc_op_status_t rrc_rlc_remove_ue (const protocol_ctxt_t* const ctxtP)
|
||||
/*! \fn rrc_rlc_remove_ue
|
||||
* \brief Remove all RLC protocol instances from all radio bearers allocated to a UE.
|
||||
* \param[in] ctxtP Running context.
|
||||
* \return A status about the processing, OK or error code.
|
||||
*/
|
||||
rlc_op_status_t rrc_rlc_remove_ue (const protocol_ctxt_t *const);
|
||||
|
||||
*/
|
||||
rlc_op_status_t rrc_rlc_remove_ue(const protocol_ctxt_t *const ctxtP);
|
||||
|
||||
/*! \fn rlc_op_status_t rrc_rlc_config_req (
|
||||
const protocol_ctxt_t* const ctxtP,
|
||||
@@ -166,23 +165,32 @@ rlc_op_status_t rrc_rlc_remove_ue (const protocol_ctxt_t *const);
|
||||
* \param[in] MBMS_flag Flag to indicate whether this is an MBMS service (1) or not (0)
|
||||
* \param[in] actionP Action for this radio bearer (add, modify, remove).
|
||||
* \param[in] rb_idP Radio bearer identifier.
|
||||
* \param[in] rlc_infoP RLC configuration parameters issued from Radio Resource Manager.
|
||||
* \return A status about the processing, OK or error code.
|
||||
*/
|
||||
rlc_op_status_t rrc_rlc_config_req(const protocol_ctxt_t *const, const srb_flag_t, const MBMS_flag_t, config_action_t, const rb_id_t);
|
||||
rlc_op_status_t rrc_rlc_config_req(const protocol_ctxt_t *const ctxtP,
|
||||
const srb_flag_t srb_flagP,
|
||||
const MBMS_flag_t MBMS_flag,
|
||||
config_action_t actionP,
|
||||
const rb_id_t rb_idP);
|
||||
|
||||
/*! \fn rlc_op_status_t rrc_rlc_data_req (const protocol_ctxt_t* const ctxtP, const MBMS_flag_t MBMS_flagP, const rb_id_t rb_idP, mui_t muiP, confirm_t confirmP, sdu_size_t sdu_sizeP, char* sduP)
|
||||
* \brief Function for RRC to send a SDU through a Signalling Radio Bearer.
|
||||
* \param[in] ctxtP Running context.
|
||||
* \param[in] MBMS_flag Flag to indicate whether this is an MBMS service (1) or not (0)
|
||||
* \param[in] rb_idP Radio bearer identifier.
|
||||
* \param[in] muiP Message Unit identifier.
|
||||
* \param[in] confirmP Boolean, is confirmation requested.
|
||||
* \param[in] sdu_sizeP Size of SDU in bytes.
|
||||
* \param[in] sduP SDU.
|
||||
* \return A status about the processing, OK or error code.
|
||||
*/
|
||||
rlc_op_status_t rrc_rlc_data_req (const protocol_ctxt_t *const, const MBMS_flag_t, const rb_id_t, mui_t, confirm_t, sdu_size_t, char *);
|
||||
/*! \fn rrc_rlc_data_req
|
||||
* \brief Function for RRC to send a SDU through a Signalling Radio Bearer.
|
||||
* \param[in] ctxtP Running context.
|
||||
* \param[in] MBMS_flag Flag to indicate whether this is an MBMS service (1) or not (0)
|
||||
* \param[in] rb_idP Radio bearer identifier.
|
||||
* \param[in] muiP Message Unit identifier.
|
||||
* \param[in] confirmP Boolean, is confirmation requested.
|
||||
* \param[in] sdu_sizeP Size of SDU in bytes.
|
||||
* \param[in] sduP SDU.
|
||||
* \return A status about the processing, OK or error code.
|
||||
*/
|
||||
rlc_op_status_t rrc_rlc_data_req(const protocol_ctxt_t *const ctxtP,
|
||||
const MBMS_flag_t MBMS_flag,
|
||||
const rb_id_t rb_idP,
|
||||
mui_t muiP,
|
||||
confirm_t confirmP,
|
||||
sdu_size_t sdu_sizeP,
|
||||
char *sduP);
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// PUBLIC INTERFACE WITH MAC
|
||||
@@ -236,17 +244,20 @@ mac_rlc_status_resp_t mac_rlc_status_ind (const module_id_t, const rnti_t, con
|
||||
,const uint32_t destinationL2Id
|
||||
);
|
||||
|
||||
/*! \fn rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(const module_id_t module_idP, const rnti_t rntiP, const eNB_index_t eNB_index, const frame_t frameP, const sub_frame_t subframeP,const eNB_flag_t enb_flagP, const logical_chan_id_t channel_idP)
|
||||
* \brief Interface with MAC layer, UE only: request and get the number of bytes scheduled for transmission by the RLC instance corresponding to the radio bearer identifier.
|
||||
* \param[in] mod_idP Virtualized module identifier.
|
||||
* \param[in] rntiP UE identifier.
|
||||
* \param[in] frameP Frame index.
|
||||
* \param[in] subframeP SubFrame index.
|
||||
* \param[in] eNB_flagP Flag to indicate eNB operation (1 true, 0 false)
|
||||
* \param[in] channel_idP Logical Channel identifier.
|
||||
* \return The maximum number of bytes that the RLC instance can send in the next transmission sequence.
|
||||
*/
|
||||
rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(const module_id_t, const rnti_t, const eNB_index_t, const frame_t, const sub_frame_t, const eNB_flag_t, const logical_chan_id_t );
|
||||
/*! \fn mac_rlc_get_buffer_occupancy_ind
|
||||
* \brief Interface with MAC layer, UE only: request and get the number of bytes scheduled for transmission by the RLC instance
|
||||
* corresponding to the radio bearer identifier. \param[in] mod_idP Virtualized module identifier. \param[in] rntiP UE
|
||||
* identifier. \param[in] frameP Frame index. \param[in] subframeP SubFrame index. \param[in] eNB_flagP Flag
|
||||
* to indicate eNB operation (1 true, 0 false) \param[in] channel_idP Logical Channel identifier. \return The maximum
|
||||
* number of bytes that the RLC instance can send in the next transmission sequence.
|
||||
*/
|
||||
rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(const module_id_t mod_idP,
|
||||
const rnti_t rntiP,
|
||||
const eNB_index_t enb,
|
||||
const frame_t frameP,
|
||||
const sub_frame_t subframeP,
|
||||
const eNB_flag_t eNB_flagP,
|
||||
const logical_chan_id_t channel_idP);
|
||||
//-----------------------------------------------------------------------------
|
||||
// RLC methods
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file m2ap_handler.h
|
||||
/*! \file m2ap_MCE_handler.h
|
||||
* \brief m2ap handler procedures for MCE
|
||||
* \author Javier Morgade <javier.morgade@ieee.org>
|
||||
* \date 2019
|
||||
|
||||
@@ -138,5 +138,6 @@ ssize_t m2ap_generate_unsuccessfull_outcome(
|
||||
@returns void
|
||||
**/
|
||||
void m2ap_handle_criticality(M2AP_Criticality_t criticality);
|
||||
/** @}*/
|
||||
|
||||
#endif /* M2AP_COMMON_H_ */
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file m2ap_handler.h
|
||||
/*! \file m2ap_eNB_handler.h
|
||||
* \brief m2ap handler procedures for eNB
|
||||
* \author Javier Morgade <javier.morgade@ieee.org>
|
||||
* \date 2019
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file m2ap_eNB_itti_messaging.c
|
||||
/*! \file m2ap_itti_messaging.c
|
||||
* \brief m2ap tasks for eNB
|
||||
* \author Javier Morgade <javier.morgade@ieee.org>
|
||||
* \date 2019
|
||||
|
||||
@@ -65,6 +65,4 @@ int RCconfig_m2_mcch(m2ap_setup_resp_t * m2ap_setup_resp, uint32_t i);
|
||||
int RCconfig_M2_SCHEDULING(MessageDef *msg_p, uint32_t i);
|
||||
int RCconfig_m2_scheduling(m2ap_mbms_scheduling_information_t *m2ap_mbms_scheduling_information, uint32_t i);
|
||||
|
||||
|
||||
#endif /* MCE_CONFIG_H_ */
|
||||
/** @} */
|
||||
|
||||
@@ -19,13 +19,13 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file PHY_INTERFACE/defs.h
|
||||
* \brief mac phy interface primitives
|
||||
* \author Raymond Knopp and Navid Nikaein
|
||||
* \date 2011
|
||||
* \version 0.5
|
||||
* \mail navid.nikaein@eurecom.fr or openair_tech@eurecom.fr
|
||||
*/
|
||||
/*! \file phy_interface.h
|
||||
* \brief mac phy interface primitives
|
||||
* \author Raymond Knopp and Navid Nikaein
|
||||
* \date 2011
|
||||
* \version 0.5
|
||||
* \mail navid.nikaein@eurecom.fr or openair_tech@eurecom.fr
|
||||
*/
|
||||
|
||||
#ifndef __PHY_INTERFACE_H__
|
||||
# define __PHY_INTERFACE_H__
|
||||
@@ -47,9 +47,4 @@ do {
|
||||
mac_xface->macphy_exit(temp); \
|
||||
} while(0)
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/** @} */
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file l2_interface.c
|
||||
* \brief layer 2 interface
|
||||
* \author Navid Nikaein and Raymond Knopp
|
||||
* \date 2011
|
||||
* \version 1.0
|
||||
* \company Eurecom
|
||||
* \email: navid.nikaein@eurecom.fr,raymond.knopp@eurecom.fr
|
||||
*/
|
||||
/*! \file openair_rrc_L2_interface.h
|
||||
* \brief layer 2 interface
|
||||
* \author Navid Nikaein and Raymond Knopp
|
||||
* \date 2011
|
||||
* \version 1.0
|
||||
* \company Eurecom
|
||||
* \email: navid.nikaein@eurecom.fr,raymond.knopp@eurecom.fr
|
||||
*/
|
||||
#ifndef __OPENAIR_RRC_L2_INTERFACE_H__
|
||||
#define __OPENAIR_RRC_L2_INTERFACE_H__
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file l2_interface.c
|
||||
/*! \file L2_interface.c
|
||||
* \brief layer 2 interface, used to support different RRC sublayer
|
||||
* \author Raymond Knopp and Navid Nikaein
|
||||
* \date 2010-2014
|
||||
@@ -28,15 +28,14 @@
|
||||
* \email: raymond.knopp@eurecom.fr
|
||||
*/
|
||||
|
||||
/*! \file l2_interface.c
|
||||
* \brief layer 2 interface, added support for FeMBMS RRC sublayer
|
||||
/*! \file L2_interface.c
|
||||
* \brief layer 2 interface, added support for FeMBMS RRC sublayer
|
||||
* \author Javier Morgade
|
||||
* \date 2020
|
||||
* \version 1.0
|
||||
* \email: javier.morgade@ieee.org
|
||||
*/
|
||||
|
||||
|
||||
#include "platform_types.h"
|
||||
#include "rrc_defs.h"
|
||||
#include "rrc_extern.h"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file l2_interface.c
|
||||
/*! \file L2_interface_common.c
|
||||
* \brief layer 2 interface, used to support different RRC sublayer
|
||||
* \author Raymond Knopp and Navid Nikaein
|
||||
* \date 2010-2014
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file l2_interface_ue.c
|
||||
/*! \file L2_interface_ue.c
|
||||
* \brief layer 2 interface, used to support different RRC sublayer
|
||||
* \author Raymond Knopp and Navid Nikaein
|
||||
* \date 2010-2014
|
||||
@@ -28,8 +28,7 @@
|
||||
* \email: raymond.knopp@eurecom.fr
|
||||
*/
|
||||
|
||||
|
||||
/*! \file l2_interface_ue.c
|
||||
/*! \file L2_interface_ue.c
|
||||
* \brief layer 2 interface, added support for FeMBMS RRC sublayer
|
||||
* \author J. Morgade
|
||||
* \date 2020
|
||||
@@ -37,7 +36,6 @@
|
||||
* \email: javier.morgade@ieee.org
|
||||
*/
|
||||
|
||||
|
||||
#include "platform_types.h"
|
||||
#include "rrc_defs.h"
|
||||
#include "rrc_extern.h"
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file vars.h
|
||||
* \brief rrc external vars
|
||||
* \author Navid Nikaein and Raymond Knopp, Michele Paffetti
|
||||
* \date 2011-2017
|
||||
* \version 1.0
|
||||
* \company Eurecom
|
||||
* \email: navid.nikaein@eurecom.fr, michele.paffetti@studio.unibo.it
|
||||
*/
|
||||
/*! \file extern_NB_IoT.h
|
||||
* \brief rrc external vars
|
||||
* \author Navid Nikaein and Raymond Knopp, Michele Paffetti
|
||||
* \date 2011-2017
|
||||
* \version 1.0
|
||||
* \company Eurecom
|
||||
* \email: navid.nikaein@eurecom.fr, michele.paffetti@studio.unibo.it
|
||||
*/
|
||||
|
||||
#ifndef __OPENAIR_RRC_EXTERN_NB_IOT_H__
|
||||
#define __OPENAIR_RRC_EXTERN_NB_IOT_H__
|
||||
|
||||
@@ -29,7 +29,8 @@
|
||||
/** \addtogroup _rrc
|
||||
* @{
|
||||
*/
|
||||
|
||||
#ifndef __PROTO_NB_IOT_H
|
||||
#define __PROTO_NB_IOT_H
|
||||
#include "RRC/LTE/defs_NB_IoT.h"
|
||||
#include "pdcp.h"
|
||||
#include "rlc.h"
|
||||
@@ -137,12 +138,13 @@ char openair_rrc_eNB_configuration_NB_IoT(
|
||||
|
||||
//-----------------------------
|
||||
/**\brief RRC eNB task. (starting of the RRC state machine)
|
||||
\param void *args_p Pointer on arguments to start the task. */
|
||||
\param args_p Pointer on arguments to start the task. */
|
||||
void *rrc_enb_task_NB_IoT(void *args_p);
|
||||
|
||||
/**\brief Entry routine to decode a UL-CCCH-Message-NB. Invokes PER decoder and parses message.
|
||||
\param ctxt_pP Running context
|
||||
\param Srb_info Pointer to SRB0 information structure (buffer, etc.)*/
|
||||
\param Srb_info Pointer to SRB0 information structure (buffer, etc.)
|
||||
\param CC_id*/
|
||||
int rrc_eNB_decode_ccch_NB_IoT(
|
||||
protocol_ctxt_t* const ctxt_pP,
|
||||
const SRB_INFO_NB_IoT* const Srb_info,
|
||||
@@ -151,8 +153,9 @@ int rrc_eNB_decode_ccch_NB_IoT(
|
||||
|
||||
/**\brief Entry routine to decode a UL-DCCH-Message-NB. Invokes PER decoder and parses message.
|
||||
\param ctxt_pP Context
|
||||
\param Srb_id
|
||||
\param Rx_sdu Pointer Received Message
|
||||
\param sdu_size Size of incoming SDU*/
|
||||
\param sdu_sizeP Size of incoming SDU*/
|
||||
int rrc_eNB_decode_dcch_NB_IoT(
|
||||
const protocol_ctxt_t* const ctxt_pP,
|
||||
const rb_id_t Srb_id,
|
||||
@@ -256,5 +259,5 @@ int8_t mac_rrc_data_req_eNB_NB_IoT(
|
||||
uint8_t flag
|
||||
);
|
||||
|
||||
|
||||
|
||||
/** @}*/
|
||||
#endif
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file RRC/LTE/defs.h
|
||||
* \brief RRC struct definitions and function prototypes
|
||||
* \author Navid Nikaein and Raymond Knopp
|
||||
* \date 2010 - 2014
|
||||
* \version 1.0
|
||||
* \company Eurecom
|
||||
* \email: navid.nikaein@eurecom.fr, raymond.knopp@eurecom.fr
|
||||
*/
|
||||
/*! \file rrc_defs.h
|
||||
* \brief RRC struct definitions and function prototypes
|
||||
* \author Navid Nikaein and Raymond Knopp
|
||||
* \date 2010 - 2014
|
||||
* \version 1.0
|
||||
* \company Eurecom
|
||||
* \email: navid.nikaein@eurecom.fr, raymond.knopp@eurecom.fr
|
||||
*/
|
||||
|
||||
#ifndef __OPENAIR_RRC_DEFS_H__
|
||||
#define __OPENAIR_RRC_DEFS_H__
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
#include "LAYER2/MAC/mac.h"
|
||||
#include "openair2/RRC/common.h"
|
||||
//for D2D
|
||||
// for D2D
|
||||
#define DEBUG_CTRL_SOCKET
|
||||
|
||||
#define CONTROL_SOCKET_PORT_NO 8888
|
||||
|
||||
@@ -3244,8 +3244,8 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
/**
|
||||
* @fn :encode_CG_ConfigInfo
|
||||
* @param :enc_buf to store the encoded bits
|
||||
* @fn encode_CG_ConfigInfo
|
||||
* @param :buffer to store the encoded bits
|
||||
* @param :ue_context_pP ue context used to fill CG-ConfigInfo
|
||||
* @param :enc_size to store thre size of encoded size
|
||||
* this api is to fill and encode CG-ConfigInfo
|
||||
|
||||
@@ -335,13 +335,10 @@ get_next_ue_initial_id(
|
||||
return ue_initial_id[mod_id];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*! \fn uint8_t get_UE_index_from_s1ap_ids(uint8_t mod_id, uint16_t ue_initial_id, uint32_t eNB_ue_s1ap_id)
|
||||
/*! \fn rrc_eNB_get_ue_context_from_s1ap_ids
|
||||
*\brief retrieve UE index in the eNB from the UE initial ID if not equal to UE_INDEX_INVALID or
|
||||
*\brief from the eNB_ue_s1ap_id previously transmitted by S1AP.
|
||||
*\param mod_id Instance ID of eNB.
|
||||
*\param instanceP Instance ID of eNB.
|
||||
*\param ue_initial_id The UE initial ID sent to S1AP.
|
||||
*\param eNB_ue_s1ap_id The value sent by S1AP.
|
||||
*\return the UE index or UE_INDEX_INVALID if not found.
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file vars.h
|
||||
* \brief rrc external vars
|
||||
* \author Navid Nikaein and Raymond Knopp
|
||||
* \date 2011
|
||||
* \version 1.0
|
||||
* \company Eurecom
|
||||
* \email: navid.nikaein@eurecom.fr
|
||||
*/
|
||||
/*! \file rrc_extern.h
|
||||
* \brief rrc external vars
|
||||
* \author Navid Nikaein and Raymond Knopp
|
||||
* \date 2011
|
||||
* \version 1.0
|
||||
* \company Eurecom
|
||||
* \email: navid.nikaein@eurecom.fr
|
||||
*/
|
||||
|
||||
#ifndef __OPENAIR_RRC_EXTERN_H__
|
||||
#define __OPENAIR_RRC_EXTERN_H__
|
||||
|
||||
@@ -65,7 +65,6 @@ void rrc_top_cleanup(void);
|
||||
|
||||
/** \brief Function to update eNB timers every subframe.
|
||||
@param ctxt_pP running context
|
||||
@param enb_index
|
||||
@param CC_id
|
||||
*/
|
||||
RRC_status_t
|
||||
@@ -97,8 +96,9 @@ int rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const SRB_INFO *co
|
||||
/** \brief Decodes a DL-DCCH message and invokes appropriate routine to handle the message
|
||||
\param ctxt_pP Running context
|
||||
\param Srb_id Index of Srb (1,2)
|
||||
\param buffer_pP Pointer to received SDU
|
||||
\param eNB_index Index of corresponding eNB/CH*/
|
||||
\param Buffer Pointer to received SDU
|
||||
\param Buffer_size
|
||||
\param eNB_indexP Index of corresponding eNB/CH*/
|
||||
void
|
||||
rrc_ue_decode_dcch(
|
||||
const protocol_ctxt_t *const ctxt_pP,
|
||||
@@ -136,7 +136,7 @@ rrc_ue_process_rrcConnectionReconfiguration(
|
||||
|
||||
/** \brief Establish SRB1 based on configuration in SRB_ToAddMod structure. Configures RLC/PDCP accordingly
|
||||
\param module_idP Instance ID of UE
|
||||
\param frame Frame index
|
||||
\param frameP Frame index
|
||||
\param eNB_index Index of corresponding eNB/CH
|
||||
\param SRB_config Pointer to SRB_ToAddMod IE from configuration
|
||||
@returns 0 on success*/
|
||||
@@ -144,7 +144,7 @@ int32_t rrc_ue_establish_srb1(module_id_t module_idP,frame_t frameP,uint8_t eNB
|
||||
|
||||
/** \brief Establish SRB2 based on configuration in SRB_ToAddMod structure. Configures RLC/PDCP accordingly
|
||||
\param module_idP Instance ID of UE
|
||||
\param frame Frame index
|
||||
\param frameP Frame index
|
||||
\param eNB_index Index of corresponding eNB/CH
|
||||
\param SRB_config Pointer to SRB_ToAddMod IE from configuration
|
||||
@returns 0 on success*/
|
||||
@@ -152,6 +152,7 @@ int32_t rrc_ue_establish_srb2(module_id_t module_idP,frame_t frameP, uint8_t eN
|
||||
|
||||
/** \brief Establish a DRB according to DRB_ToAddMod structure
|
||||
\param module_idP Instance ID of UE
|
||||
\param frameP Frame index
|
||||
\param eNB_index Index of corresponding CH/eNB
|
||||
\param DRB_config Pointer to DRB_ToAddMod IE from configuration
|
||||
@returns 0 on success */
|
||||
@@ -230,8 +231,9 @@ int rrc_eNB_decode_ccch(protocol_ctxt_t *const ctxt_pP,
|
||||
|
||||
/**\brief Entry routine to decode a UL-DCCH-Message. Invokes PER decoder and parses message.
|
||||
\param ctxt_pP Context
|
||||
\param Srb_id
|
||||
\param Rx_sdu Pointer Received Message
|
||||
\param sdu_size Size of incoming SDU*/
|
||||
\param sdu_sizeP Size of incoming SDU*/
|
||||
int
|
||||
rrc_eNB_decode_dcch(
|
||||
const protocol_ctxt_t *const ctxt_pP,
|
||||
@@ -242,7 +244,8 @@ rrc_eNB_decode_dcch(
|
||||
|
||||
/**\brief Generate the RRCConnectionSetup based on information coming from RRM
|
||||
\param ctxt_pP Running context
|
||||
\param ue_context_pP UE context*/
|
||||
\param ue_context_pP UE context
|
||||
\param CC_id*/
|
||||
void
|
||||
rrc_eNB_generate_RRCConnectionSetup(
|
||||
const protocol_ctxt_t *const ctxt_pP,
|
||||
@@ -275,7 +278,6 @@ rrc_eNB_process_RRCConnectionSetupComplete(
|
||||
/**\brief Process the RRCConnectionReconfigurationComplete based on information coming from UE
|
||||
\param ctxt_pP Running context
|
||||
\param ue_context_pP RRC UE context
|
||||
\param rrcConnectionReconfigurationComplete Pointer to RRCConnectionReconfigurationComplete message
|
||||
\param xid the transaction id for the rrcconnectionreconfiguration procedure
|
||||
*/
|
||||
void
|
||||
@@ -324,7 +326,11 @@ rrc_eNB_generate_dedeicatedRRCConnectionReconfiguration(
|
||||
|
||||
/**\brief release Data Radio Bearer between ENB and UE
|
||||
\param ctxt_pP Running context
|
||||
\param ue_context_pP UE context of UE receiving the message*/
|
||||
\param ue_context_pP UE context of UE receiving the message
|
||||
\param xid
|
||||
\param nas_length
|
||||
\param nas_buffer
|
||||
*/
|
||||
void
|
||||
rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_release(
|
||||
const protocol_ctxt_t *const ctxt_pP,
|
||||
@@ -344,15 +350,15 @@ void rrc_enb_init(void);
|
||||
void *rrc_enb_process_itti_msg(void *);
|
||||
|
||||
/**\brief RRC eNB task.
|
||||
\param void *args_p Pointer on arguments to start the task. */
|
||||
\param args_p Pointer on arguments to start the task. */
|
||||
void *rrc_enb_task(void *args_p);
|
||||
|
||||
/**\brief RRC UE task.
|
||||
\param void *args_p Pointer on arguments to start the task. */
|
||||
\param args_p Pointer on arguments to start the task. */
|
||||
void *rrc_ue_task(void *args_p);
|
||||
|
||||
/**\brief RRC NSA UE task.
|
||||
\param void *args_p Pointer on arguments to start the task. */
|
||||
\param args_p Pointer on arguments to start the task. */
|
||||
void *recv_msgs_from_nr_ue(void *args_p);
|
||||
|
||||
void init_connections_with_nr_ue(void);
|
||||
@@ -366,9 +372,7 @@ void rrc_eNB_process_handoverPreparationInformation(int mod_id, x2ap_handover_re
|
||||
void rrc_eNB_process_ENDC_x2_setup_request(int mod_id, x2ap_ENDC_setup_req_t *m);
|
||||
|
||||
/**\brief Generate/decode the handover RRCConnectionReconfiguration at eNB
|
||||
\param module_idP Instance ID for eNB/CH
|
||||
\param frame Frame index
|
||||
\param ue_module_idP Index of UE transmitting the messages*/
|
||||
*/
|
||||
void
|
||||
rrc_eNB_generate_RRCConnectionReconfiguration_handover(
|
||||
const protocol_ctxt_t *const ctxt_pP,
|
||||
@@ -392,6 +396,7 @@ rrc_eNB_generate_RRCConnectionReconfiguration_Sidelink(
|
||||
|
||||
/** \brief process the received SidelinkUEInformation message at eNB
|
||||
\param ctxt_pP Running context
|
||||
\param ue_context_pP RRC UE context
|
||||
\param sidelinkUEInformation sidelinkUEInformation message from UE*/
|
||||
uint8_t
|
||||
rrc_eNB_process_SidelinkUEInformation(
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
/*! \fn void void nas_getparams(void)(void)
|
||||
* \brief This function get parameters used to configure network interface when running in noS1 mode
|
||||
* \note
|
||||
* @ingroup ?????
|
||||
* @ingroup _nas
|
||||
*/
|
||||
void nas_getparams(void);
|
||||
|
||||
@@ -46,7 +46,7 @@ void nas_getparams(void);
|
||||
* \param[in] broadcastAddress, the broadcast address for the subnet, e.g. 10.0.1.255
|
||||
* \return 0 on success, otherwise 1, if couldn't open a socket and 2 if the ioctl fails
|
||||
* \note
|
||||
* @ingroup ?????
|
||||
* @ingroup _nas
|
||||
*/
|
||||
int NAS_config(char *interfaceName, char *ipAddress, char *networkMask, char *broadcastAddress);
|
||||
|
||||
@@ -59,7 +59,7 @@ int NAS_config(char *interfaceName, char *ipAddress, char *networkMask, char *br
|
||||
* \param[in] fourth octet of the ip address e.g. for the 10.1.2.3 address would be 3
|
||||
* \return 0 on success, otherwise 1, if couldn't open a socket and 2 if the ioctl fails
|
||||
* \note
|
||||
* @ingroup ?????
|
||||
* @ingroup _nas
|
||||
*/
|
||||
int nas_config(int interface_id, int thirdOctet, int fourthOctet, char *ifsuffix);
|
||||
|
||||
@@ -72,7 +72,7 @@ int nas_config(int interface_id, int thirdOctet, int fourthOctet, char *ifsuffix
|
||||
* \param[in] fourth octet of the ip address e.g. for the 10.1.2.3 address would be 3
|
||||
* \return 0 on success, otherwise 1, if couldn't open a socket and 2 if the ioctl fails
|
||||
* \note
|
||||
* @ingroup ?????
|
||||
* @ingroup _nas
|
||||
*/
|
||||
int nas_config_mbms(int interface_id, int thirdOctet, int fourthOctet, char *ifsuffix);
|
||||
|
||||
@@ -85,12 +85,10 @@ int nas_config_mbms(int interface_id, int thirdOctet, int fourthOctet, char *ifs
|
||||
* \param[in] fourth octet of the ip address e.g. for the 10.1.2.3 address would be 3
|
||||
* \return 0 on success, otherwise 1, if couldn't open a socket and 2 if the ioctl fails
|
||||
* \note
|
||||
* @ingroup ?????
|
||||
* @ingroup _nas
|
||||
*/
|
||||
int nas_config_mbms_s1(int interface_id, int thirdOctet, int fourthOctet, char *ifsuffix);
|
||||
|
||||
|
||||
|
||||
/*! \fn int blocking_NAS_config(char*, char*, char*, char*)
|
||||
* \brief This function initializes the nasmesh interface, in a blocking way,
|
||||
* the system calls are interrupted
|
||||
@@ -100,7 +98,7 @@ int nas_config_mbms_s1(int interface_id, int thirdOctet, int fourthOctet, char *
|
||||
* \param[in] broadcastAddress, the broadcast address for the subnet, e.g. 10.0.1.255
|
||||
* \return 0 on success, otherwise 1
|
||||
* \note
|
||||
* @ingroup ?????
|
||||
* @ingroup _nas
|
||||
*/
|
||||
int blocking_NAS_config(char *interfaceName, char *ipAddress, char *networkMask, char *broadcastAddress);
|
||||
|
||||
@@ -113,7 +111,7 @@ int blocking_NAS_config(char *interfaceName, char *ipAddress, char *networkMask,
|
||||
* SIOCSIFBRDADDR, SIOCSIFFLAGS), e.g. SIOCSIFBRDADDR
|
||||
* \return 0 on success, otherwise 1, if couldn't open a socket and 2 if the ioctl fails
|
||||
* \note
|
||||
* @ingroup ?????
|
||||
* @ingroup _nas
|
||||
*/
|
||||
int setInterfaceParameter(char *interfaceName, char *settingAddress, int operation);
|
||||
|
||||
@@ -123,7 +121,7 @@ int setInterfaceParameter(char *interfaceName, char *settingAddress, int operati
|
||||
* \param[in] address, the address of the gateway, e.g. 10.0.1.2
|
||||
* \return 0 on success, otherwise 1, if couldn't open a socket and 2 if the ioctl fails
|
||||
* \note
|
||||
* @ingroup ?????
|
||||
* @ingroup _nas
|
||||
*/
|
||||
int set_gateway(char *interfaceName, char *gateway);
|
||||
|
||||
@@ -131,7 +129,7 @@ int set_gateway(char *interfaceName, char *gateway);
|
||||
* \brief This function sets the basic network address used
|
||||
* \param[in] baseAddr, the new basic address e.g.for 10.0.1.2, would be 10.0
|
||||
* \note
|
||||
* @ingroup ?????
|
||||
* @ingroup _nas
|
||||
*/
|
||||
void setBaseNetAddress(char *baseAddr);
|
||||
|
||||
@@ -139,7 +137,7 @@ void setBaseNetAddress(char *baseAddr);
|
||||
* \brief This function returns the basic network address used
|
||||
* \return the basic network address in use
|
||||
* \note
|
||||
* @ingroup ?????
|
||||
* @ingroup _nas
|
||||
*/
|
||||
char *getBaseNetAddress(void);
|
||||
|
||||
@@ -147,7 +145,7 @@ char *getBaseNetAddress(void);
|
||||
* \brief This function sets the new default network mask used
|
||||
* \param[in] newNetworkMask, the new network mask e.g.for 255.255.0.0
|
||||
* \note
|
||||
* @ingroup ?????
|
||||
* @ingroup _nas
|
||||
*/
|
||||
void setNetMask(char *baseAddr);
|
||||
|
||||
@@ -155,7 +153,7 @@ void setNetMask(char *baseAddr);
|
||||
* \brief This function returns the network mask address in use
|
||||
* \return the network mask in use
|
||||
* \note
|
||||
* @ingroup ?????
|
||||
* @ingroup _nas
|
||||
*/
|
||||
char *getNetMask(void);
|
||||
|
||||
@@ -163,7 +161,7 @@ char *getNetMask(void);
|
||||
* \brief This function sets the new broadcast address used
|
||||
* \param[in] newNetworkMask, the new broadcast address e.g.for 10.0.255.255
|
||||
* \note
|
||||
* @ingroup ?????
|
||||
* @ingroup _nas
|
||||
*/
|
||||
void setBroadcastAddress(char *baseAddr);
|
||||
|
||||
@@ -171,7 +169,7 @@ void setBroadcastAddress(char *baseAddr);
|
||||
* \brief This function returns the broadcast address in use
|
||||
* \return the broadcast address in use
|
||||
* \note
|
||||
* @ingroup ?????
|
||||
* @ingroup _nas
|
||||
*/
|
||||
char *getBroadcastAddress(void);
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file l2_nr_interface.c
|
||||
/*! \file L2_nr_interface.c
|
||||
* \brief layer 2 interface, used to support different RRC sublayer
|
||||
* \author Raymond Knopp and Navid Nikaein, WEI-TAI CHEN
|
||||
* \date 2010-2014, 2018
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/*! \file nr_ rrc_common.c
|
||||
/*! \file nr_rrc_common.c
|
||||
* \brief rrc common procedures for gNB
|
||||
* \author Navid Nikaein and Raymond Knopp, WEI-TAI CHEN
|
||||
* \date 2011 - 2014, 2018
|
||||
|
||||
@@ -417,4 +417,3 @@ typedef struct gNB_RRC_INST_s {
|
||||
#include "nr_rrc_proto.h" //should be put here otherwise compilation error
|
||||
|
||||
#endif
|
||||
/** @} */
|
||||
|
||||
@@ -99,7 +99,7 @@ rrc_gNB_generate_RRCRelease(
|
||||
);
|
||||
|
||||
/**\brief RRC eNB task.
|
||||
\param void *args_p Pointer on arguments to start the task. */
|
||||
\param args_p Pointer on arguments to start the task. */
|
||||
void *rrc_gnb_task(void *args_p);
|
||||
|
||||
/**\ Function to set or overwrite PTRS DL RRC parameters.
|
||||
@@ -162,5 +162,5 @@ void nr_pdcp_add_drbs(eNB_flag_t enb_flag,
|
||||
int rrc_gNB_generate_pcch_msg(uint32_t tmsi, uint8_t paging_drx, instance_t instance, uint8_t CC_id);
|
||||
|
||||
void nr_rrc_transfer_protected_rrc_message(const gNB_RRC_INST *rrc, const gNB_RRC_UE_t *ue_p, uint8_t srb_id, const uint8_t* buffer, int size);
|
||||
|
||||
/** @}*/
|
||||
#endif
|
||||
|
||||
@@ -2544,8 +2544,6 @@ static void write_rrc_stats(const gNB_RRC_INST *rrc)
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
///---------------------------------------------------------------------------------------------------------------///
|
||||
///---------------------------------------------------------------------------------------------------------------///
|
||||
void *rrc_gnb_task(void *args_p) {
|
||||
MessageDef *msg_p;
|
||||
instance_t instance;
|
||||
|
||||
@@ -238,4 +238,3 @@ typedef struct NR_UE_RRC_INST_s {
|
||||
} NR_UE_RRC_INST_t;
|
||||
|
||||
#endif
|
||||
/** @} */
|
||||
|
||||
@@ -156,6 +156,5 @@ void nr_rrc_manage_rlc_bearers(const NR_CellGroupConfig_t *cellGroupConfig,
|
||||
int rnti);
|
||||
|
||||
int configure_NR_SL_Preconfig(int sync_source);
|
||||
/** @}*/
|
||||
#endif
|
||||
|
||||
|
||||
@@ -41,14 +41,12 @@
|
||||
|
||||
#define PI 3.14159265
|
||||
|
||||
|
||||
/*! \fn void set_taus_seed(unsigned int seed_type);
|
||||
* \brief initialize seeds used for the generation of taus random values
|
||||
* \param[in] initial value
|
||||
* \param[out]
|
||||
* \note
|
||||
* @ingroup _oml
|
||||
*/
|
||||
/*! \fn set_taus_seed
|
||||
* \brief initialize seeds used for the generation of taus random values
|
||||
* \param[in] seed_type initial value
|
||||
* \note
|
||||
* @ingroup _oml
|
||||
*/
|
||||
void set_taus_seed(unsigned int seed_type);
|
||||
|
||||
/*! \fn inline unsigned int taus(unsigned int comp);
|
||||
|
||||
@@ -41,12 +41,10 @@
|
||||
There is different modules:
|
||||
- OAI Address
|
||||
- OAI Components
|
||||
- \ref _frame
|
||||
|
||||
numbering:
|
||||
-# OAI Address
|
||||
-# OAI Components
|
||||
-# \ref _frame
|
||||
|
||||
The following diagram is based on graphviz (http://www.graphviz.org/), you need to install the package to view the diagram.
|
||||
*
|
||||
@@ -73,11 +71,6 @@ Doxygen help and commands can be found at http://www.stack.nl/~dimitri/doxygen/c
|
||||
|
||||
\section _arch Architecture
|
||||
|
||||
You need to set the IMAGE_PATH in your Doxyfile
|
||||
|
||||
\image html arch.png "Architecture"
|
||||
\image latex arch.eps "Architecture"
|
||||
|
||||
\subsection _mac MAC
|
||||
thisis the mac
|
||||
\subsection _rlc RLC
|
||||
@@ -641,4 +634,4 @@ void terminate_opt(void) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/** @}*/
|
||||
|
||||
@@ -185,9 +185,9 @@ typedef enum {
|
||||
} VOIP_STATE;
|
||||
|
||||
/**
|
||||
* \enum ALPHABET
|
||||
* \enum ALPHABET_GEN
|
||||
*
|
||||
*\brief ALPHABET Alphabet type to generate random string
|
||||
*\brief ALPHABET_GEN Alphabet type to generate random string
|
||||
*
|
||||
*/
|
||||
typedef enum {
|
||||
@@ -218,21 +218,6 @@ typedef enum {
|
||||
TCP_IPV6,
|
||||
} HEADER_TYPE;
|
||||
|
||||
/**
|
||||
* \enum TRAFFIC_TYPE
|
||||
*
|
||||
* \brief HEADER_TYPE alows to identify the traffic type no specific type, m2m,etc.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
typedef enum {
|
||||
NO_TYPE=0,
|
||||
M2M_TYPE,
|
||||
}TRAFFIC_TYPE;
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
otg_models: definitions and structures,
|
||||
see otg_models.c for a detailed description
|
||||
@@ -333,8 +318,9 @@ typedef struct {
|
||||
*/
|
||||
typedef struct {
|
||||
int max_nb_frames; /*!< \brief Max Number of frames*/
|
||||
int application_type[NUMBER_OF_eNB_MAX + MAX_MOBILES_PER_ENB][NUMBER_OF_eNB_MAX + MAX_MOBILES_PER_ENB][MAX_NUM_APPLICATION]; /*!\brief It identify the application of the simulated traffic, could be cbr, m2m, gaming,etc*/
|
||||
/*!\header info */
|
||||
int application_type[NUMBER_OF_eNB_MAX + MAX_MOBILES_PER_ENB][NUMBER_OF_eNB_MAX + MAX_MOBILES_PER_ENB]
|
||||
[MAX_NUM_APPLICATION]; /*!\brief It identify the application of the simulated traffic, could be cbr, m2m,
|
||||
gaming,etc*/
|
||||
int trans_proto[NUMBER_OF_eNB_MAX + MAX_MOBILES_PER_ENB][NUMBER_OF_eNB_MAX + MAX_MOBILES_PER_ENB][MAX_NUM_APPLICATION]; /*!\brief Transport Protocol*/
|
||||
int ip_v[NUMBER_OF_eNB_MAX + MAX_MOBILES_PER_ENB][NUMBER_OF_eNB_MAX + MAX_MOBILES_PER_ENB][MAX_NUM_APPLICATION]; /*!\brief Ip version */
|
||||
//int header_compression; /*!\brief Specify if header compression is used or not */
|
||||
|
||||
@@ -92,12 +92,11 @@ float owd_const_mobile_core(void);
|
||||
*/
|
||||
float owd_const_IP_backbone(void);
|
||||
|
||||
/*! \fn float owd_const_applicatione();
|
||||
*\brief compute the one way delay introduced in LTE/LTE-A network REF PAPER: "Latency for Real-Time Machine-to-Machine Communication in LTE-Based System Architecture"
|
||||
*\param[out] float: application delay constant
|
||||
*\note
|
||||
*@ingroup _otg
|
||||
*/
|
||||
/*! \fn owd_const_application
|
||||
*\brief compute the one way delay introduced in LTE/LTE-A network REF PAPER: "Latency for Real-Time Machine-to-Machine
|
||||
*Communication in LTE-Based System Architecture" \note
|
||||
*@ingroup _otg
|
||||
*/
|
||||
float owd_const_application(void);
|
||||
|
||||
|
||||
|
||||
@@ -130,9 +130,8 @@ unsigned char *header_gen(const int hdr_size);
|
||||
*/
|
||||
unsigned char *payload_pkts(const int payload_size);
|
||||
|
||||
|
||||
/*! \fn
|
||||
char * serialize_buffer(char* const header, char* const payload, const unsigned int buffer_size, const int flag, const int flow_id, const int ctime, const int seq_num, const int hdr_type, const int state)
|
||||
/*! \fn char * serialize_buffer(char* const header, char* const payload, const unsigned int buffer_size, const int flag, const int
|
||||
flow_id, const int ctime, const int seq_num, const int hdr_type, const int state)
|
||||
* \brief serilize the packet and add otg control information
|
||||
* \param[in] char* header pointer to the header
|
||||
* \param[in] char* payload pointer to the payload
|
||||
@@ -173,14 +172,6 @@ unsigned char * serialize_buffer(
|
||||
*/
|
||||
int adjust_size(int size);
|
||||
|
||||
|
||||
/*! \fn int header_size_genint src();
|
||||
* \brief return the header size corresponding to ip version and transport protocol
|
||||
* \param[in] the sender (src)
|
||||
* \param[out] size of packet header
|
||||
* \note
|
||||
* @ingroup _otg
|
||||
*/
|
||||
void header_size_gen(const int src, const int dst, const int application);
|
||||
|
||||
void init_predef_multicast_traffic(void);
|
||||
|
||||
@@ -132,5 +132,6 @@ ssize_t x2ap_generate_unsuccessfull_outcome(
|
||||
@returns void
|
||||
**/
|
||||
void x2ap_handle_criticality(X2AP_Criticality_t criticality);
|
||||
/** @}*/
|
||||
|
||||
#endif /* X2AP_COMMON_H_ */
|
||||
|
||||
@@ -548,9 +548,10 @@ void x2ap_gNB_trigger_sgNB_add_req_ack(instance_t instance,
|
||||
}
|
||||
|
||||
/**
|
||||
* @fn : Function triggers sgnb reconfiguration complete
|
||||
* @fn x2ap_eNB_trigger_sgnb_reconfiguration_complete
|
||||
*\brief: Function triggers sgnb reconfiguration complete
|
||||
* @param : IN instance, IN x2ap_reconf_complete
|
||||
**/
|
||||
**/
|
||||
static
|
||||
void x2ap_eNB_trigger_sgnb_reconfiguration_complete(instance_t instance,
|
||||
x2ap_ENDC_reconf_complete_t *x2ap_reconf_complete)
|
||||
|
||||
Reference in New Issue
Block a user