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
2d2c80db
Commit
2d2c80db
authored
Mar 28, 2019
by
Nick Ho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revise UL_indication to handle the Ack information
parent
f9f541cd
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
63 additions
and
66 deletions
+63
-66
openair1/SCHED/phy_procedures_lte_eNb_NB_IoT.c
openair1/SCHED/phy_procedures_lte_eNb_NB_IoT.c
+2
-1
openair2/PHY_INTERFACE/IF_Module_L2_primitives_NB_IoT.c
openair2/PHY_INTERFACE/IF_Module_L2_primitives_NB_IoT.c
+61
-65
No files found.
openair1/SCHED/phy_procedures_lte_eNb_NB_IoT.c
View file @
2d2c80db
...
@@ -1634,12 +1634,13 @@ void fill_rx_indication_NB_IoT(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,uint8_t d
...
@@ -1634,12 +1634,13 @@ void fill_rx_indication_NB_IoT(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,uint8_t d
if
(
decode_flag
==
1
)
if
(
decode_flag
==
1
)
{
{
eNB
->
UL_INFO
.
nb_harq_ind
.
nb_harq_indication_body
.
number_of_harqs
=
1
;
ack_ind
=
&
eNB
->
UL_INFO
.
nb_harq_ind
.
nb_harq_indication_body
.
nb_harq_pdu_list
[
0
];
ack_ind
=
&
eNB
->
UL_INFO
.
nb_harq_ind
.
nb_harq_indication_body
.
nb_harq_pdu_list
[
0
];
ack_ind
->
nb_harq_indication_fdd_rel13
.
harq_tb1
=
1
;
ack_ind
->
nb_harq_indication_fdd_rel13
.
harq_tb1
=
1
;
ack_ind
->
rx_ue_information
.
rnti
=
eNB
->
ulsch_NB_IoT
[
0
]
->
rnti
;
ack_ind
->
rx_ue_information
.
rnti
=
eNB
->
ulsch_NB_IoT
[
0
]
->
rnti
;
}
else
{
}
else
{
eNB
->
UL_INFO
.
nb_harq_ind
.
nb_harq_indication_body
.
number_of_harqs
=
1
;
ack_ind
=
&
eNB
->
UL_INFO
.
nb_harq_ind
.
nb_harq_indication_body
.
nb_harq_pdu_list
[
0
];
ack_ind
=
&
eNB
->
UL_INFO
.
nb_harq_ind
.
nb_harq_indication_body
.
nb_harq_pdu_list
[
0
];
ack_ind
->
nb_harq_indication_fdd_rel13
.
harq_tb1
=
2
;
ack_ind
->
nb_harq_indication_fdd_rel13
.
harq_tb1
=
2
;
ack_ind
->
rx_ue_information
.
rnti
=
eNB
->
ulsch_NB_IoT
[
0
]
->
rnti
;
ack_ind
->
rx_ue_information
.
rnti
=
eNB
->
ulsch_NB_IoT
[
0
]
->
rnti
;
...
...
openair2/PHY_INTERFACE/IF_Module_L2_primitives_NB_IoT.c
View file @
2d2c80db
...
@@ -78,78 +78,74 @@ void UL_indication_NB_IoT(UL_IND_NB_IoT_t *UL_INFO)
...
@@ -78,78 +78,74 @@ void UL_indication_NB_IoT(UL_IND_NB_IoT_t *UL_INFO)
int
i
=
0
;
int
i
=
0
;
uint32_t
abs_subframe
;
uint32_t
abs_subframe
;
Sched_Rsp_NB_IoT_t
*
SCHED_info
=
&
mac_inst
->
Sched_INFO
;
Sched_Rsp_NB_IoT_t
*
SCHED_info
=
&
mac_inst
->
Sched_INFO
;
//UE_TEMPLATE_NB_IoT *UE_info;
enable_preamble_simulation
(
UL_INFO
,
0
);
enable_preamble_simulation
(
UL_INFO
,
0
);
enable_msg3_simulation
(
UL_INFO
,
0
);
enable_msg3_simulation
(
UL_INFO
,
0
);
//if(preamble_trigger==0)
//{
//If there is a preamble, do the initiate RA procedure
//If there is a preamble, do the initiate RA procedure
if
(
UL_INFO
->
nrach_ind
.
number_of_initial_scs_detected
>
0
)
if
(
UL_INFO
->
nrach_ind
.
number_of_initial_scs_detected
>
0
)
{
{
// only use one preamble now
// only use one preamble now
//for(i=0;i<UL_INFO->nrach_ind.number_of_initial_scs_detected;i++)
//for(i=0;i<UL_INFO->nrach_ind.number_of_initial_scs_detected;i++)
for
(
i
=
0
;
i
<
1
;
i
++
)
for
(
i
=
0
;
i
<
1
;
i
++
)
{
{
// initiate_ra here, some useful inforamtion :
// initiate_ra here, some useful inforamtion :
LOG_D
(
MAC
,
"Init_RA_NB_IoT in, index of sc = %d
\n
"
,(
UL_INFO
->
nrach_ind
.
nrach_pdu_list
+
i
)
->
nrach_indication_rel13
.
initial_sc
);
//(UL_INFO->NRACH.nrach_pdu_list+i)->nrach_indication_rel13.initial_sc
init_RA_NB_IoT
(
mac_inst
,
//(UL_INFO->NRACH.nrach_pdu_list+i)->nrach_indication_rel13.timing_advance
(
UL_INFO
->
nrach_ind
.
nrach_pdu_list
+
i
)
->
nrach_indication_rel13
.
initial_sc
,
LOG_D
(
MAC
,
"Init_RA_NB_IoT in, index of sc = %d
\n
"
,(
UL_INFO
->
nrach_ind
.
nrach_pdu_list
+
i
)
->
nrach_indication_rel13
.
initial_sc
);
(
UL_INFO
->
nrach_ind
.
nrach_pdu_list
+
i
)
->
nrach_indication_rel13
.
nrach_ce_level
,
init_RA_NB_IoT
(
mac_inst
,
UL_INFO
->
frame
,
(
UL_INFO
->
nrach_ind
.
nrach_pdu_list
+
i
)
->
nrach_indication_rel13
.
initial_sc
,
//timing_offset = Timing_advance * 16
(
UL_INFO
->
nrach_ind
.
nrach_pdu_list
+
i
)
->
nrach_indication_rel13
.
nrach_ce_level
,
(
UL_INFO
->
nrach_ind
.
nrach_pdu_list
+
i
)
->
nrach_indication_rel13
.
timing_advance
*
16
UL_INFO
->
frame
,
);
//timing_offset = Timing_advance * 16
}
(
UL_INFO
->
nrach_ind
.
nrach_pdu_list
+
i
)
->
nrach_indication_rel13
.
timing_advance
*
16
}
);
LOG_D
(
MAC
,
"Init_RA_NB_IoT Out
\n
"
);
UL_INFO
->
nrach_ind
.
number_of_initial_scs_detected
=
0
;
}
}
/* Disable crc function for now
//}
// crc indication if there is error for this round UL transmission
if(UL_INFO->crc_ind.number_of_crcs>0)
UL_INFO
->
nrach_ind
.
number_of_initial_scs_detected
=
0
;
{
for(i=0;i<UL_INFO->crc_ind.number_of_crcs;i++)
{
/* Disable uplink RX function for now
if((UL_INFO->crc_ind.crc_pdu_list+i)->crc_indication_rel8.crc_flag == 0)
// crc indication if there is error for this round UL transmission
if(UL_INFO->crc_ind.number_of_crcs>0)
{
{
for(i=0;i<UL_INFO->crc_ind.number_of_crcs;i++)
//unsuccessfully received this UE PDU
{
//UE_info = get_ue_from_rnti(mac_inst,((UL_INFO->crc_ind.crc_pdu_list)+i)->rx_ue_information.rnti);
if((UL_INFO->crc_ind.crc_pdu_list+i)->crc_indication_rel8.crc_flag == 0)
//UE_info->HARQ_round++;
{
//unsuccessfully received this UE PDU
//UE_info = get_ue_from_rnti(mac_inst,((UL_INFO->crc_ind.crc_pdu_list)+i)->rx_ue_information.rnti);
//UE_info->HARQ_round++;
}
}
}
}
}
}
*/
// Check if there is any feed back of HARQ
if
(
UL_INFO
->
nb_harq_ind
.
nb_harq_indication_body
.
number_of_harqs
>
0
)
{
LOG_I
(
MAC
,
"Recieved Ack of DL Data
\n
"
);
}
UL_INFO
->
nb_harq_ind
.
nb_harq_indication_body
.
number_of_harqs
=
0
;
//If there is a Uplink SDU which needs to send to MAC
if
(
UL_INFO
->
RX_NPUSCH
.
number_of_pdus
>
0
)
{
for
(
i
=
0
;
i
<
UL_INFO
->
RX_NPUSCH
.
number_of_pdus
;
i
++
)
{
//For MSG3, Normal Uplink Data, NAK
rx_sdu_NB_IoT
(
UL_INFO
->
module_id
,
UL_INFO
->
CC_id
,
UL_INFO
->
frame
,
UL_INFO
->
subframe
,
(
UL_INFO
->
RX_NPUSCH
.
rx_pdu_list
+
i
)
->
rx_ue_information
.
rnti
,
(
UL_INFO
->
RX_NPUSCH
.
rx_pdu_list
+
i
)
->
data
,
(
UL_INFO
->
RX_NPUSCH
.
rx_pdu_list
+
i
)
->
rx_indication_rel8
.
length
);
}
}
*/
UL_INFO
->
RX_NPUSCH
.
number_of_pdus
=
0
;
//If there is a Uplink SDU which needs to send to MAC
if
(
UL_INFO
->
RX_NPUSCH
.
number_of_pdus
>
0
)
{
for
(
i
=
0
;
i
<
UL_INFO
->
RX_NPUSCH
.
number_of_pdus
;
i
++
)
{
//For MSG3, Normal Uplink Data, NAK
rx_sdu_NB_IoT
(
UL_INFO
->
module_id
,
UL_INFO
->
CC_id
,
UL_INFO
->
frame
,
UL_INFO
->
subframe
,
(
UL_INFO
->
RX_NPUSCH
.
rx_pdu_list
+
i
)
->
rx_ue_information
.
rnti
,
(
UL_INFO
->
RX_NPUSCH
.
rx_pdu_list
+
i
)
->
data
,
(
UL_INFO
->
RX_NPUSCH
.
rx_pdu_list
+
i
)
->
rx_indication_rel8
.
length
);
}
}
UL_INFO
->
RX_NPUSCH
.
number_of_pdus
=
0
;
if
(
UL_INFO
->
hypersfn
==
1
&&
UL_INFO
->
frame
==
0
)
if
(
UL_INFO
->
hypersfn
==
1
&&
UL_INFO
->
frame
==
0
)
{
{
...
...
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