Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ZhouShuya
OpenXG-RAN
Commits
0d383484
Commit
0d383484
authored
Jul 24, 2017
by
Matthieu Kanj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
adding new file openair1/PHY/LTE_TRANSPORT/ulsch_decoding_NB_IoT.c
+ modifiying structure name
parent
517d4122
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
2241 additions
and
33 deletions
+2241
-33
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+1
-0
openair1/PHY/LTE_TRANSPORT/dci_tools_nb_iot.c
openair1/PHY/LTE_TRANSPORT/dci_tools_nb_iot.c
+1
-1
openair1/PHY/LTE_TRANSPORT/proto_nb_iot.h
openair1/PHY/LTE_TRANSPORT/proto_nb_iot.h
+20
-1
openair1/PHY/LTE_TRANSPORT/ulsch_decoding_NB_IoT.c
openair1/PHY/LTE_TRANSPORT/ulsch_decoding_NB_IoT.c
+2194
-0
openair1/PHY/defs.h
openair1/PHY/defs.h
+0
-6
openair1/PHY/defs_nb_iot.h
openair1/PHY/defs_nb_iot.h
+9
-9
openair1/SCHED/IF_Module_L1_primitives_nb_iot.c
openair1/SCHED/IF_Module_L1_primitives_nb_iot.c
+2
-2
openair1/SCHED/IF_Module_L1_primitives_nb_iot.h
openair1/SCHED/IF_Module_L1_primitives_nb_iot.h
+1
-1
openair1/SCHED/defs_nb_iot.h
openair1/SCHED/defs_nb_iot.h
+6
-6
openair1/SCHED/phy_procedures_lte_eNb_nb_iot.c
openair1/SCHED/phy_procedures_lte_eNb_nb_iot.c
+7
-7
No files found.
cmake_targets/CMakeLists.txt
View file @
0d383484
...
...
@@ -1019,6 +1019,7 @@ set(PHY_SRC
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/ulsch_demodulation.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/ulsch_coding.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/ulsch_decoding.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/ulsch_decoding_NB_IoT.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/rar_tools.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/print_stats.c
${
OPENAIR1_DIR
}
/PHY/LTE_TRANSPORT/initial_sync.c
...
...
openair1/PHY/LTE_TRANSPORT/dci_tools_nb_iot.c
View file @
0d383484
...
...
@@ -65,7 +65,7 @@ void add_dci_NB_IoT(DCI_PDU_NB *DCI_pdu,void *pdu,rnti_t rnti,unsigned char dci_
int
generate_eNB_ulsch_params_from_dci_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
,
DCI_CONTENT
*
DCI_Content
,
uint16_t
rnti
,
DCI_format_NB_IoT_t
dci_format
,
...
...
openair1/PHY/LTE_TRANSPORT/proto_nb_iot.h
View file @
0d383484
...
...
@@ -101,7 +101,7 @@ void add_dci_NB_IoT(DCI_PDU_NB *DCI_pdu,
/*Use the UL DCI Information to configure PHY and also Pack the DCI*/
int
generate_eNB_ulsch_params_from_dci_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
,
DCI_CONTENT
*
DCI_Content
,
uint16_t
rnti
,
DCI_format_NB_IoT_t
dci_format
,
...
...
@@ -131,6 +131,25 @@ uint8_t generate_dci_top_NB_IoT(NB_IoT_eNB_NPDCCH_t* npdcch,
uint32_t
subframe
,
uint8_t
npdcch_start_symbol
);
/*!
\brief Decoding of PUSCH/ACK/RI/ACK from 36-212.
@param phy_vars_eNB Pointer to eNB top-level descriptor
@param proc Pointer to RXTX proc variables
@param UE_id ID of UE transmitting this PUSCH
@param subframe Index of subframe for PUSCH
@param control_only_flag Receive PUSCH with control information only
@param Nbundled Nbundled parameter for ACK/NAK scrambling from 36-212/36-213
@param llr8_flag If 1, indicate that the 8-bit turbo decoder should be used
@returns 0 on success
*/
unsigned
int
ulsch_decoding_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
phy_vars_eNB
,
eNB_rxtx_proc_NB_IoT_t
*
proc
,
uint8_t
UE_id
,
uint8_t
control_only_flag
,
uint8_t
Nbundled
,
uint8_t
llr8_flag
);
#endif
openair1/PHY/LTE_TRANSPORT/ulsch_decoding_NB_IoT.c
0 → 100644
View file @
0d383484
This diff is collapsed.
Click to expand it.
openair1/PHY/defs.h
View file @
0d383484
...
...
@@ -217,12 +217,6 @@ typedef struct {
/// scheduling parameters for RXn-TXnp4 thread
struct
sched_param
sched_param_rxtx
;
/// NB-IoT for IF_Module
pthread_t
pthread_l2
;
pthread_cond_t
cond_l2
;
pthread_mutex_t
mutex_l2
;
int
instance_cnt_l2
;
pthread_attr_t
attr_l2
;
}
eNB_rxtx_proc_t
;
typedef
struct
{
...
...
openair1/PHY/defs_nb_iot.h
View file @
0d383484
...
...
@@ -226,7 +226,7 @@ typedef struct {
pthread_mutex_t
mutex_l2
;
int
instance_cnt_l2
;
pthread_attr_t
attr_l2
;
}
eNB_rxtx_proc_NB_t
;
}
eNB_rxtx_proc_NB_
IoT_
t
;
/*
typedef struct {
struct PHY_VARS_eNB_NB_IoT_s *eNB;
...
...
@@ -244,7 +244,7 @@ typedef struct {
*/
/// Context data structure for eNB subframe processing
typedef
struct
eNB_proc_NB_t_s
{
typedef
struct
eNB_proc_NB_
IoT_
t_s
{
/// Component Carrier index
uint8_t
CC_id
;
/// thread index
...
...
@@ -373,9 +373,9 @@ typedef struct eNB_proc_NB_t_s {
struct
eNB_proc_t_s
**
slave_proc
;
/// set of scheduling variables RXn-TXnp4 threads
// newly added for NB_IoT
eNB_rxtx_proc_NB_t
proc_rxtx
[
2
];
eNB_rxtx_proc_NB_
IoT_
t
proc_rxtx
[
2
];
}
eNB_proc_NB_t
;
}
eNB_proc_NB_
IoT_
t
;
/*
/// Context data structure for RX/TX portion of subframe processing
...
...
@@ -463,19 +463,19 @@ typedef struct PHY_VARS_eNB_NB_IoT_s {
// indicator for precoding function (eNB,3GPP_eNB_BBU)
int
do_precoding
;
void
(
*
do_prach
)(
struct
PHY_VARS_eNB_NB_IoT_s
*
eNB
,
int
frame
,
int
subframe
);
void
(
*
fep
)(
struct
PHY_VARS_eNB_NB_IoT_s
*
eNB
,
eNB_rxtx_proc_t
*
proc
);
void
(
*
fep
)(
struct
PHY_VARS_eNB_NB_IoT_s
*
eNB
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
);
int
(
*
td
)(
struct
PHY_VARS_eNB_NB_IoT_s
*
eNB
,
int
UE_id
,
int
harq_pid
,
int
llr8_flag
);
int
(
*
te
)(
struct
PHY_VARS_eNB_NB_IoT_s
*
,
uint8_t
*
,
uint8_t
,
LTE_eNB_DLSCH_t
*
,
int
,
uint8_t
,
time_stats_t
*
,
time_stats_t
*
,
time_stats_t
*
);
void
(
*
proc_uespec_rx
)(
struct
PHY_VARS_eNB_NB_IoT_s
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
const
relaying_type_t
r_type
);
void
(
*
proc_tx
)(
struct
PHY_VARS_eNB_NB_IoT_s
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
relaying_type_t
r_type
,
PHY_VARS_RN
*
rn
);
void
(
*
tx_fh
)(
struct
PHY_VARS_eNB_NB_IoT_s
*
eNB
,
eNB_rxtx_proc_t
*
proc
);
void
(
*
proc_uespec_rx
)(
struct
PHY_VARS_eNB_NB_IoT_s
*
eNB
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
,
const
relaying_type_t
r_type
);
void
(
*
proc_tx
)(
struct
PHY_VARS_eNB_NB_IoT_s
*
eNB
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
,
relaying_type_t
r_type
,
PHY_VARS_RN
*
rn
);
void
(
*
tx_fh
)(
struct
PHY_VARS_eNB_NB_IoT_s
*
eNB
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
);
void
(
*
rx_fh
)(
struct
PHY_VARS_eNB_NB_IoT_s
*
eNB
,
int
*
frame
,
int
*
subframe
);
int
(
*
start_rf
)(
struct
PHY_VARS_eNB_NB_IoT_s
*
eNB
);
int
(
*
start_if
)(
struct
PHY_VARS_eNB_NB_IoT_s
*
eNB
);
void
(
*
fh_asynch
)(
struct
PHY_VARS_eNB_NB_IoT_s
*
eNB
,
int
*
frame
,
int
*
subframe
);
uint8_t
local_flag
;
uint32_t
rx_total_gain_dB
;
LTE
_DL_FRAME_PARMS
frame_parms
;
NB_IoT
_DL_FRAME_PARMS
frame_parms
;
PHY_MEASUREMENTS_eNB
measurements
[
NUMBER_OF_eNB_SECTORS_MAX_NB_IoT
];
/// Measurement variables
LTE_eNB_COMMON
common_vars
;
LTE_eNB_SRS
srs_vars
[
NUMBER_OF_UE_MAX_NB_IoT
];
...
...
openair1/SCHED/IF_Module_L1_primitives_nb_iot.c
View file @
0d383484
...
...
@@ -12,7 +12,7 @@
void
handle_nfapi_dlsch_pdu_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
,
nfapi_dl_config_request_pdu_t
*
dl_config_pdu
,
uint8_t
*
sdu
)
{
...
...
@@ -171,7 +171,7 @@ void schedule_response(Sched_Rsp_t *Sched_INFO)
//XXX check if correct to take eNB like this
PHY_VARS_eNB_NB_IoT
*
eNB
=
PHY_vars_eNB_NB_IoT_g
[
0
][
Sched_INFO
->
CC_id
];
eNB_rxtx_proc_t
*
proc
=
&
eNB
->
proc
.
proc_rxtx
[
0
];
eNB_rxtx_proc_
NB_IoT_
t
*
proc
=
&
eNB
->
proc
.
proc_rxtx
[
0
];
NB_IoT_eNB_NPBCH_t
*
npbch
;
int
i
;
...
...
openair1/SCHED/IF_Module_L1_primitives_nb_iot.h
View file @
0d383484
...
...
@@ -15,7 +15,7 @@ void schedule_response(Sched_Rsp_t *Sched_INFO);
void
PHY_config_req
(
PHY_Config_t
*
config_INFO
);
void
handle_nfapi_dlsch_pdu_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
,
nfapi_dl_config_request_pdu_t
*
dl_config_pdu
,
uint8_t
*
sdu
);
...
...
openair1/SCHED/defs_nb_iot.h
View file @
0d383484
...
...
@@ -9,22 +9,22 @@
void
process_schedule_rsp_NB_IoT
(
Sched_Rsp_t
*
sched_rsp
,
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
);
eNB_rxtx_proc_
NB_IoT_
t
*
proc
);
/*Processing the ue-specific resources for uplink in NB-IoT*/
void
phy_procedures_eNB_uespec_RX_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
UL_IND_t
*
UL_INFO
);
void
phy_procedures_eNB_uespec_RX_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
,
UL_IND_t
*
UL_INFO
);
/* For NB-IoT, we put NPBCH in later part, since it would be scheduled by MAC scheduler,this generates NRS/NPSS/NSSS*/
void
common_signal_procedures_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
);
void
common_signal_procedures_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
);
/*Generate the ulsch params and do the mapping for the FAPI style parameters to OAI, and then do the packing*/
void
generate_eNB_ulsch_params_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
nfapi_hi_dci0_request_pdu_t
*
hi_dci0_pdu
);
void
generate_eNB_ulsch_params_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
,
nfapi_hi_dci0_request_pdu_t
*
hi_dci0_pdu
);
/*Generate the dlsch params and do the mapping for the FAPI style parameters to OAI, and then do the packing*/
void
generate_eNB_dlsch_params_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
nfapi_dl_config_request_pdu_t
*
dl_config_pdu
);
void
generate_eNB_dlsch_params_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
,
nfapi_dl_config_request_pdu_t
*
dl_config_pdu
);
/*Process all the scheduling result from MAC and also common signals.*/
void
phy_procedures_eNB_TX_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
int
do_meas
);
void
phy_procedures_eNB_TX_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
,
int
do_meas
);
int8_t
find_ue_NB_IoT
(
uint16_t
rnti
,
PHY_VARS_eNB_NB_IoT
*
eNB
);
...
...
openair1/SCHED/phy_procedures_lte_eNb_nb_iot.c
View file @
0d383484
...
...
@@ -104,7 +104,7 @@ extern int rx_sig_fifo;
* It generates NRS/NPSS/NSSS
*
*/
void
common_signal_procedures_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
)
void
common_signal_procedures_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
)
{
NB_IoT_DL_FRAME_PARMS
*
fp
=&
eNB
->
frame_parms_NB_IoT
;
int
**
txdataF
=
eNB
->
common_vars
.
txdataF
[
0
];
...
...
@@ -160,7 +160,7 @@ void common_signal_procedures_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,eNB_rxtx_proc_t *p
}
void
phy_procedures_eNB_uespec_RX_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
UL_IND_t
*
UL_INFO
)
void
phy_procedures_eNB_uespec_RX_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
,
UL_IND_t
*
UL_INFO
)
{
//RX processing for ue-specific resources (i
...
...
@@ -270,7 +270,7 @@ void phy_procedures_eNB_uespec_RX_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,eNB_rxtx_proc_
eNB
->
ulsch
,
0
);
ret
=
ulsch_decoding
(
eNB
,
proc
,
ret
=
ulsch_decoding
_NB_IoT
(
eNB
,
proc
,
i
,
0
,
// control_only_flag
eNB
->
ulsch
[
i
]
->
harq_processes
[
harq_pid
]
->
V_UL_DAI
,
...
...
@@ -481,7 +481,7 @@ void phy_procedures_eNB_uespec_RX_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,eNB_rxtx_proc_
/*Generate eNB ndlsch params for NB-IoT from the NPDCCH PDU of the DCI, modify the input to the Sched Rsp variable*/
void
generate_eNB_dlsch_params_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
nfapi_dl_config_request_pdu_t
*
dl_config_pdu
)
void
generate_eNB_dlsch_params_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
,
nfapi_dl_config_request_pdu_t
*
dl_config_pdu
)
{
int
UE_id
=
-
1
;
NB_IoT_DL_FRAME_PARMS
*
fp
=&
eNB
->
frame_parms_NB_IoT
;
...
...
@@ -613,7 +613,7 @@ void generate_eNB_dlsch_params_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,eNB_rxtx_proc_t *
void
generate_eNB_ulsch_params_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
nfapi_hi_dci0_request_pdu_t
*
hi_dci0_pdu
)
{
void
generate_eNB_ulsch_params_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
,
nfapi_hi_dci0_request_pdu_t
*
hi_dci0_pdu
)
{
int
UE_id
=
-
1
;
//int harq_pid = 0;
...
...
@@ -669,7 +669,7 @@ void generate_eNB_ulsch_params_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,eNB_rxtx_proc_t *
* ** redundancy version exist only in UL for NB-IoT and not in DL
*/
void
npdsch_procedures
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
//Context data structure for RX/TX portion of subframe processing
eNB_rxtx_proc_
NB_IoT_
t
*
proc
,
//Context data structure for RX/TX portion of subframe processing
NB_IoT_eNB_NDLSCH_t
*
ndlsch
,
//int num_pdcch_symbols, (BCOM says are not needed
uint8_t
*
pdu
...
...
@@ -935,7 +935,7 @@ extern int oai_exit;
*/
void
phy_procedures_eNB_TX_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
eNB_rxtx_proc_
NB_IoT_
t
*
proc
,
int
do_meas
)
{
int
frame
=
proc
->
frame_tx
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment