eNodeB_3GPP_BBU,// classical eNodeB function with transport interface
NGFI_RRU_IF4,// NGFI_RRU (NGFI remote radio-unit, currently split at common - ue_specific interface, IF4)
NGFI_RCC_IF4// NGFI_RCC (NGFI radio cloud center, currently split at common - ue_specific interface, IF4)
typedefenum{
eNodeB_3GPP=0,// classical eNodeB function
eNodeB_3GPP_BBU,// eNodeB with NGFI IF5
NGFI_RRU_IF4,// NGFI_RRU (NGFI remote radio-unit, currently split at common - ue_specific interface, IF4)
NGFI_RCC_IF4// NGFI_RCC (NGFI radio cloud center, currently split at common - ue_specific interface, IF4)
}eNB_func_t;
typedefstructUE_SCAN_INFO_s{
...
...
@@ -250,8 +250,58 @@ typedef struct {
eNB_rxtx_proc_tproc_rxtx[2];
}eNB_proc_t;
//! \brief Number of eNB TX and RX threads.
//! This number must be equal to the number of LTE subframes (10). Each thread is responsible for a single subframe.
/// Context data structure for RX/TX portion of subframe processing
typedefstruct{
/// Component Carrier index
uint8_tCC_id;
/// timestamp transmitted to HW
openair0_timestamptimestamp_tx;
/// subframe to act upon for transmission
intsubframe_tx;
/// subframe to act upon for reception
intsubframe_rx;
/// frame to act upon for transmission
intframe_tx;
/// frame to act upon for reception
intframe_rx;
/// \brief Instance count for RXn-TXnp4 processing thread.
/// \internal This variable is protected by \ref mutex_rxtx.
intinstance_cnt_rxtx;
/// pthread structure for RXn-TXnp4 processing thread
pthread_tpthread_rxtx;
/// pthread attributes for RXn-TXnp4 processing thread
pthread_attr_tattr_rxtx;
/// condition variable for tx processing thread
pthread_cond_tcond_rxtx;
/// mutex for RXn-TXnp4 processing thread
pthread_mutex_tmutex_rxtx;
/// scheduling parameters for RXn-TXnp4 thread
structsched_paramsched_param_rxtx;
}UE_rxtx_proc_t;
/// Context data structure for eNB subframe processing
typedefstruct{
/// Component Carrier index
uint8_tCC_id;
/// Last RX timestamp
openair0_timestamptimestamp_rx;
/// \brief Instance count for synch thread.
/// \internal This variable is protected by \ref mutex_synch.
intinstance_cnt_synch;
/// pthread attributes for prach processing thread
pthread_attr_tattr_synch;
/// scheduling parameters for synch thread
structsched_paramsched_param_synch;
/// pthread descriptor synch thread
pthread_tpthread_synch;
/// condition variable for UE synch thread;
pthread_cond_tcond_synch;
/// mutex for UE synch thread
pthread_mutex_tmutex_synch;
/// set of scheduling variables RXn-TXnp4 threads
UE_rxtx_proc_tproc_rxtx[2];
}UE_proc_t;
/// Top-level PHY Data Structure for eNB
typedefstructPHY_VARS_eNB_s{
...
...
@@ -491,34 +541,8 @@ typedef struct {
intUE_scan_carrier;
/// \brief Indicator that UE is synchronized to an eNB
intis_synchronized;
/// \brief Instance count of TX processing thread (-1 means ready, 0 means busy)
intinstance_cnt_tx;
/// \brief Instance count of RX processing thread (-1 means ready, 0 means busy)
intinstance_cnt_rx;
/// \brief Instance count of initial synchronization thread (-1 means ready, 0 means busy).
/// Protected by mutex \ref mutex_synch and condition \ref cond_synch.
intinstance_cnt_synch;
/// \brief Condition variable for TX processing thread
pthread_cond_tcond_tx;
/// \brief Condition variable for RX processing thread
pthread_cond_tcond_rx;
/// \brief Condition variable for initial synchronization thread.
/// The corresponding mutex is \ref mutex_synch.
pthread_cond_tcond_synch;
/// \brief Mutex for TX processing thread
pthread_mutex_tmutex_tx;
/// \brief Mutex for RX processing thread
pthread_mutex_tmutex_rx;
/// \brief Mutex for initial synchronization thread.
/// Used to protect \ref instance_cnt_synch.
/// \sa cond_synch
pthread_mutex_tmutex_synch;
/// \brief Pthread structure for RX processing thread
pthread_tthread_rx;
/// \brief Pthread structure for TX processing thread
pthread_tthread_tx;
/// \brief Pthread structure to RX processing thread
pthread_tthread_synch;
/// Data structure for UE process scheduling
UE_proc_tproc;
/// \brief Total gain of the TX chain (16-bit baseband I/Q to antenna)
uint32_ttx_total_gain_dB;
/// \brief Total gain of the RX chain (antenna to baseband I/Q) This is a function of rx_gain_mode (and the corresponding gain) and the rx_gain of the card.
...
...
@@ -535,10 +559,6 @@ typedef struct {
inttx_total_RE;
/// \brief Maximum transmit power
int8_ttx_power_max_dBm;
/// \brief Frame counters for TX and RX processing
uint32_tframe_rx,frame_tx;
/// \brief Slot counters for TX and RX processing
uint32_tslot_tx,slot_rx;
/// \brief Number of eNB seen by UE
uint8_tn_connected_eNB;
/// \brief indicator that Handover procedure has been initiated