Commit b803c957 authored by Ben Wojtowicz's avatar Ben Wojtowicz

Version 0.6.5: Added SIB3, SIB4, and SIB8 support to the file_gen app, fixed a...

Version 0.6.5: Added SIB3, SIB4, and SIB8 support to the file_gen app, fixed a bug in the PHICH mapping, fixed the file size bug with the file_gen app, and pulled in a patch for 64 bit support.
parent b5d01833
......@@ -41,3 +41,6 @@ v00.06.03 Added SIB2 support and interactive configuration to file_gen app.
Added multiple eNB decode support to libraries and file_scan app.
v00.06.04 Optimized the psuedo random sequence generator, added pre-configuring
of the cell specific reference signals, and fixed 4 antenna reception.
v00.06.05 Added SIB3, SIB4, and SIB8 support to the file_gen app, fixed a bug
in the PHICH mapping, fixed the file size bug with the file_gen app,
and pulled in a patch for 64 bit support.
......@@ -28,6 +28,8 @@
08/19/2012 Ben Wojtowicz Using the latest liblte library.
11/10/2012 Ben Wojtowicz Added SIB2 support and changed the parameter
input method to be "interactive"
12/26/2012 Ben Wojtowicz Added SIB3, SIB4, and SIB8 support and fixed
a file size bug
*******************************************************************************/
#ifndef __LTE_FDD_DL_FG_SAMP_BUF_H__
......@@ -61,6 +63,12 @@
#define Q_RX_LEV_MIN_PARAM "q_rx_lev_min"
#define P0_NOMINAL_PUSCH_PARAM "p0_nominal_pusch"
#define P0_NOMINAL_PUCCH_PARAM "p0_nominal_pucch"
#define SIB3_PRESENT_PARAM "sib3_present"
#define Q_HYST_PARAM "q_hyst"
#define SIB4_PRESENT_PARAM "sib4_present"
#define NEIGH_CELL_LIST_PARAM "neigh_cell_list"
#define SIB8_PRESENT_PARAM "sib8_present"
#define SEARCH_WIN_SIZE_PARAM "search_win_size"
/*******************************************************************************
FORWARD DECLARATIONS
......@@ -84,7 +92,7 @@ class LTE_fdd_dl_fg_samp_buf : public gr_sync_block
public:
~LTE_fdd_dl_fg_samp_buf();
int32 work(int32 ninput_items,
int32 work(int32 noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
......@@ -93,36 +101,44 @@ private:
LTE_fdd_dl_fg_samp_buf();
// LTE library
LIBLTE_PHY_STRUCT *phy_struct;
LIBLTE_RRC_MSG_STRUCT rrc_msg;
// Sample buffer
float *i_buf;
float *q_buf;
uint32 samp_buf_idx;
bool samples_ready;
bool last_samp_was_i;
// LTE parameters
LIBLTE_RRC_MIB_STRUCT mib;
LIBLTE_RRC_BCCH_DLSCH_MSG_STRUCT bcch_dlsch_msg;
LIBLTE_RRC_SYS_INFO_BLOCK_TYPE_1_STRUCT sib1;
LIBLTE_RRC_SYS_INFO_BLOCK_TYPE_2_STRUCT sib2;
LIBLTE_PHY_PCFICH_STRUCT pcfich;
LIBLTE_PHY_PHICH_STRUCT phich;
LIBLTE_PHY_PDCCH_STRUCT pdcch;
float phich_res;
float bandwidth;
uint32 sfn;
uint32 N_frames;
uint32 N_id_cell;
uint32 N_id_1;
uint32 N_id_2;
uint32 N_rb_dl;
uint32 FFT_pad_size;
uint32 si_periodicity_T;
uint32 si_win_len;
uint8 N_ant;
void recreate_sched_info(void);
LIBLTE_RRC_MSG_STRUCT rrc_msg;
LIBLTE_RRC_MIB_STRUCT mib;
LIBLTE_RRC_BCCH_DLSCH_MSG_STRUCT bcch_dlsch_msg;
LIBLTE_RRC_SYS_INFO_BLOCK_TYPE_1_STRUCT sib1;
LIBLTE_RRC_SYS_INFO_BLOCK_TYPE_2_STRUCT sib2;
LIBLTE_RRC_SYS_INFO_BLOCK_TYPE_3_STRUCT sib3;
LIBLTE_RRC_SYS_INFO_BLOCK_TYPE_4_STRUCT sib4;
LIBLTE_RRC_SYS_INFO_BLOCK_TYPE_8_STRUCT sib8;
LIBLTE_PHY_STRUCT *phy_struct;
LIBLTE_PHY_PCFICH_STRUCT pcfich;
LIBLTE_PHY_PHICH_STRUCT phich;
LIBLTE_PHY_PDCCH_STRUCT pdcch;
LIBLTE_PHY_SUBFRAME_STRUCT subframe;
float phich_res;
float bandwidth;
uint32 sfn;
uint32 N_frames;
uint32 N_id_cell;
uint32 N_id_1;
uint32 N_id_2;
uint32 N_rb_dl;
uint32 FFT_pad_size;
uint32 si_periodicity_T;
uint32 si_win_len;
uint32 sib_tx_mode;
uint8 N_ant;
uint8 sib3_present;
uint8 sib4_present;
uint8 sib8_present;
// Configuration
void print_config(void);
......@@ -132,6 +148,9 @@ private:
bool set_n_id_cell(char *char_value);
bool set_mcc(char *char_value);
bool set_mnc(char *char_value);
bool set_q_hyst(char *char_value);
bool set_neigh_cell_list(char *char_value);
bool set_q_offset_range(LIBLTE_RRC_Q_OFFSET_RANGE_ENUM *q_offset_range, char *char_value);
bool set_param(uint32 *param, char *char_value, uint32 llimit, uint32 ulimit);
bool set_param(uint16 *param, char *char_value, uint16 llimit, uint16 ulimit);
bool set_param(uint8 *param, char *char_value, uint8 llimit, uint8 ulimit);
......
......@@ -20,7 +20,7 @@ dnl the Free Software Foundation, Inc., 51 Franklin Street,
dnl Boston, MA 02110-1301, USA.
dnl
AC_INIT(openlte,0.6.4)
AC_INIT(openlte,0.6.5)
AC_PREREQ(2.57)
AC_CONFIG_AUX_DIR([.])
......
......@@ -39,6 +39,8 @@
and re-factored the coarse timing and freq
search to find more than 1 eNB.
12/01/2012 Ben Wojtowicz Added ability to preconfigure CRS.
12/26/2012 Ben Wojtowicz Started supporting N_sc_rb for normal and
extended CP and fixed several FIXMEs.
*******************************************************************************/
......@@ -180,6 +182,7 @@ typedef struct{
float bch_descramb_bits[1920];
float bch_rx_d_bits[1920];
uint32 bch_c[1920];
uint32 bch_N_bits;
uint8 bch_tx_d_bits[1920];
uint8 bch_c_bits[40];
uint8 bch_encode_bits[1920];
......@@ -364,7 +367,8 @@ typedef struct{
}LIBLTE_PHY_STRUCT;
// Functions
LIBLTE_ERROR_ENUM liblte_phy_init(LIBLTE_PHY_STRUCT **phy_struct,
uint16 N_id_cell);
uint16 N_id_cell,
uint32 N_sc_rb);
/*********************************************************************
Name: liblte_phy_cleanup
......@@ -392,6 +396,7 @@ LIBLTE_ERROR_ENUM liblte_phy_cleanup(LIBLTE_PHY_STRUCT *phy_struct);
// Enums
// Structs
typedef struct{
LIBLTE_RRC_MSG_STRUCT msg;
LIBLTE_PHY_PRE_CODER_TYPE_ENUM pre_coder_type;
LIBLTE_PHY_MODULATION_TYPE_ENUM mod_type;
uint32 tbs;
......@@ -412,8 +417,6 @@ typedef struct{
// Functions
LIBLTE_ERROR_ENUM liblte_phy_pdsch_channel_encode(LIBLTE_PHY_STRUCT *phy_struct,
LIBLTE_PHY_PDCCH_STRUCT *pdcch,
uint8 *in_bits,
uint32 N_in_bits,
uint32 N_id_cell,
uint8 N_ant,
uint32 N_sc_rb,
......@@ -480,6 +483,8 @@ LIBLTE_ERROR_ENUM liblte_phy_bch_channel_encode(LIBLTE_PHY_STRUCT *phy_
LIBLTE_ERROR_ENUM liblte_phy_bch_channel_decode(LIBLTE_PHY_STRUCT *phy_struct,
LIBLTE_PHY_SUBFRAME_STRUCT *subframe,
uint32 N_id_cell,
uint32 N_sc_rb,
uint32 N_rb_dl,
uint8 *N_ant,
uint8 *out_bits,
uint32 *N_out_bits,
......@@ -564,6 +569,7 @@ LIBLTE_ERROR_ENUM liblte_phy_map_crs(LIBLTE_PHY_STRUCT *phy_struct,
LIBLTE_PHY_SUBFRAME_STRUCT *subframe,
uint32 FFT_pad_size,
uint32 N_rb_dl,
uint32 N_sc_rb,
uint32 N_id_cell,
uint8 N_ant);
......@@ -708,6 +714,7 @@ LIBLTE_ERROR_ENUM liblte_phy_get_subframe_and_ce(LIBLTE_PHY_STRUCT *phy
uint8 subfr_num,
uint32 FFT_pad_size,
uint32 N_rb_dl,
uint32 N_sc_rb,
uint32 N_id_cell,
uint8 N_ant,
LIBLTE_PHY_SUBFRAME_STRUCT *subframe);
......@@ -726,6 +733,7 @@ LIBLTE_ERROR_ENUM liblte_phy_get_subframe_and_ce(LIBLTE_PHY_STRUCT *phy
// Structs
// Functions
LIBLTE_ERROR_ENUM liblte_phy_get_tbs_mcs_and_n_prb_for_si(uint32 N_bits,
uint32 N_subframe,
uint32 N_rb_dl,
uint32 *tbs,
uint8 *mcs,
......
......@@ -30,6 +30,7 @@
08/19/2012 Ben Wojtowicz Added functionality to support SIB2, SIB3,
SIB4, and SIB8 packing and unpacking
10/06/2012 Ben Wojtowicz Added more decoding/encoding.
12/26/2012 Ben Wojtowicz Added text versions of some enums.
*******************************************************************************/
......@@ -1656,7 +1657,16 @@ typedef enum{
LIBLTE_RRC_Q_OFFSET_RANGE_DB_20,
LIBLTE_RRC_Q_OFFSET_RANGE_DB_22,
LIBLTE_RRC_Q_OFFSET_RANGE_DB_24,
LIBLTE_RRC_Q_OFFSET_RANGE_SIZE,
}LIBLTE_RRC_Q_OFFSET_RANGE_ENUM;
static const char liblte_rrc_q_offset_range_text[LIBLTE_RRC_Q_OFFSET_RANGE_SIZE][10] = {"-24", "-22", "-20", "-18",
"-16", "-14", "-12", "-10",
"-8", "-6", "-5", "-4",
"-3", "-2", "-1", "0",
"1", "2", "3", "4",
"5", "6", "8", "10",
"12", "14", "16", "18",
"20", "22", "24"};
// Structs
// Functions
LIBLTE_ERROR_ENUM liblte_rrc_pack_q_offset_range_ie(LIBLTE_RRC_Q_OFFSET_RANGE_ENUM q_offset_range,
......@@ -3054,7 +3064,12 @@ typedef enum{
LIBLTE_RRC_Q_HYST_DB_20,
LIBLTE_RRC_Q_HYST_DB_22,
LIBLTE_RRC_Q_HYST_DB_24,
LIBLTE_RRC_Q_HYST_SIZE,
}LIBLTE_RRC_Q_HYST_ENUM;
static const char liblte_rrc_q_hyst_text[LIBLTE_RRC_Q_HYST_SIZE][10] = { "0", "1", "2", "3",
"4", "5", "6", "8",
"10", "12", "14", "16",
"18", "20", "22", "24"};
typedef enum{
LIBLTE_RRC_SF_MEDIUM_DB_N6 = 0,
LIBLTE_RRC_SF_MEDIUM_DB_N4,
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment