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
canghaiwuhen
OpenXG-RAN
Commits
0504659e
Commit
0504659e
authored
6 years ago
by
wujing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix RM778 PRACH failure by adding reset RA when CRNTI_ACK in extract_harq
parent
2f4c21ce
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
33 additions
and
5 deletions
+33
-5
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
+18
-4
openair2/LAYER2/MAC/pre_processor.c
openair2/LAYER2/MAC/pre_processor.c
+9
-0
openair2/LAYER2/MAC/rar_tools.c
openair2/LAYER2/MAC/rar_tools.c
+6
-1
No files found.
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
View file @
0504659e
...
...
@@ -1475,9 +1475,9 @@ fill_nfapi_harq_information(module_id_t module_idP,
harq_information
->
harq_information_rel10_tdd
.
ack_nack_mode
=
0
;
// bundling
}
harq_information
->
harq_information_rel10_tdd
.
tl
.
tag
=
NFAPI_UL_CONFIG_REQUEST_HARQ_INFORMATION_REL10_TDD_TAG
;
harq_information
->
harq_information_rel10_tdd
.
n_pucch_1_0
=
cc
->
radioResourceConfigCommon
->
pucch_ConfigCommon
.
n1PUCCH_AN
+
cce_idxP
;
LTE_DL_FRAME_PARMS
*
frame_parms
=
&
RC
.
eNB
[
module_idP
][
CC_idP
]
->
frame_parms
;
harq_information
->
harq_information_rel10_tdd
.
n_pucch_1_0
=
get_Np
(
frame_parms
->
N_RB_DL
,
cce_idxP
,
0
)
+
cc
->
radioResourceConfigCommon
->
pucch_ConfigCommon
.
n1PUCCH_AN
+
cce_idxP
;
harq_information
->
harq_information_rel10_tdd
.
number_of_pucch_resources
=
1
;
}
else
{
...
...
@@ -3861,6 +3861,20 @@ extract_harq(module_id_t mod_idP, int CC_idP, int UE_id,
sched_ctl
->
round
[
CC_idP
][
harq_pid
]
++
;
}
}
RA_t
*
ra
=
&
RC
.
mac
[
mod_idP
]
->
common_channels
[
CC_idP
].
ra
[
0
];
for
(
uint8_t
ra_i
=
0
;
ra_i
<
NB_RA_PROC_MAX
;
ra_i
++
)
{
if
((
ra
[
ra_i
].
rnti
==
rnti
)
&&
(
ra
[
ra_i
].
state
==
MSGCRNTI_ACK
)
&&
(
ra
[
ra_i
].
crnti_harq_pid
==
harq_pid
))
{
LOG_D
(
MAC
,
"CRNTI Reconfiguration: ACK %d rnti %x round %d frame %d subframe %d
\n
"
,
harq_indication_tdd
->
harq_data
[
0
].
bundling
.
value_0
,
rnti
,
sched_ctl
->
round
[
CC_idP
][
harq_pid
],
frameP
,
subframeP
);
if
(
num_ack_nak
==
1
&&
harq_indication_tdd
->
harq_data
[
0
].
bundling
.
value_0
==
1
)
{
cancel_ra_proc
(
mod_idP
,
CC_idP
,
frameP
,
ra
[
ra_i
].
rnti
);
}
else
{
if
(
sched_ctl
->
round
[
CC_idP
][
harq_pid
]
==
7
){
cancel_ra_proc
(
mod_idP
,
CC_idP
,
frameP
,
ra
[
ra_i
].
rnti
);
}
}
break
;
}
}
}
break
;
case
1
:
// Channel Selection
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/pre_processor.c
View file @
0504659e
...
...
@@ -2843,6 +2843,14 @@ void ulsch_scheduler_pre_processor(module_id_t module_idP,
tx_power
=
estimate_ue_tx_power
(
tbs
,
rb_table
[
rb_table_index
],
0
,
frame_parms
->
Ncp
,
0
);
}
}
else
{
if
(
cc
->
tdd_Config
&&
frame_parms
->
N_RB_UL
==
100
)
{
while
(
(
tbs
<
UE_template
->
ul_total_buffer
)
&&
(
rb_table
[
rb_table_index
]
<
(
frame_parms
->
N_RB_UL
-
3
-
first_rb
[
CC_id
]))
&&
((
UE_template
->
phr_info
-
tx_power
)
>
0
)
&&
(
rb_table_index
<
32
))
{
rb_table_index
++
;
tbs
=
get_TBS_UL
(
mcs
,
rb_table
[
rb_table_index
])
<<
3
;
tx_power
=
estimate_ue_tx_power
(
tbs
,
rb_table
[
rb_table_index
],
0
,
frame_parms
->
Ncp
,
0
);
}
}
else
{
while
(
(
tbs
<
UE_template
->
ul_total_buffer
)
&&
(
rb_table
[
rb_table_index
]
<
(
frame_parms
->
N_RB_UL
-
2
-
first_rb
[
CC_id
]))
&&
((
UE_template
->
phr_info
-
tx_power
)
>
0
)
&&
(
rb_table_index
<
32
))
{
rb_table_index
++
;
...
...
@@ -2850,6 +2858,7 @@ void ulsch_scheduler_pre_processor(module_id_t module_idP,
tx_power
=
estimate_ue_tx_power
(
tbs
,
rb_table
[
rb_table_index
],
0
,
frame_parms
->
Ncp
,
0
);
}
}
}
if
(
rb_table
[
rb_table_index
]
<
3
)
{
rb_table_index
=
2
;
}
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/rar_tools.c
View file @
0504659e
...
...
@@ -71,11 +71,16 @@ fill_rar(const module_id_t module_idP,
ra
->
timing_offset
/=
16
;
//T_A = N_TA/16, where N_TA should be on a 30.72Msps
rar
[
0
]
=
(
uint8_t
)
(
ra
->
timing_offset
>>
(
2
+
4
));
// 7 MSBs of timing advance + divide by 4
rar
[
1
]
=
(
uint8_t
)
(
ra
->
timing_offset
<<
(
4
-
2
))
&
0xf0
;
// 4 LSBs of timing advance + divide by 4
COMMON_channels_t
*
cc
=
&
RC
.
mac
[
module_idP
]
->
common_channels
[
CC_id
];
if
(
N_RB_UL
==
25
){
ra
->
msg3_first_rb
=
1
;
}
else
{
if
(
cc
->
tdd_Config
&&
N_RB_UL
==
100
)
{
ra
->
msg3_first_rb
=
3
;
}
else
{
ra
->
msg3_first_rb
=
2
;
}
}
ra
->
msg3_nb_rb
=
1
;
uint16_t
rballoc
=
mac_computeRIV
(
N_RB_UL
,
ra
->
msg3_first_rb
,
ra
->
msg3_nb_rb
);
// first PRB only for UL Grant
rar
[
1
]
|=
(
rballoc
>>
7
)
&
7
;
// Hopping = 0 (bit 3), 3 MSBs of rballoc
...
...
This diff is collapsed.
Click to expand it.
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