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
3d3c0c7c
Commit
3d3c0c7c
authored
Feb 03, 2016
by
Xenofon Foukas
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug fixes for UE retransmission
parent
fd09bd61
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
50 additions
and
29 deletions
+50
-29
openair2/LAYER2/MAC/eNB_agent_scheduler_dlsch_ue.c
openair2/LAYER2/MAC/eNB_agent_scheduler_dlsch_ue.c
+50
-29
No files found.
openair2/LAYER2/MAC/eNB_agent_scheduler_dlsch_ue.c
View file @
3d3c0c7c
...
...
@@ -251,12 +251,6 @@ schedule_ue_spec_default(
mcs
=
cqi_to_mcs
[
eNB_UE_stats
->
DL_cqi
[
0
]];
mcs
=
cmin
(
mcs
,
openair_daq_vars
.
target_ue_dl_mcs
);
/*TODO: Must also update these stats*/
//eNB_UE_stats->dlsch_mcs1 = cqi_to_mcs[eNB_UE_stats->DL_cqi[0]];
//eNB_UE_stats->dlsch_mcs1 = cmin(eNB_UE_stats->dlsch_mcs1, openair_daq_vars.target_ue_dl_mcs);
#ifdef EXMIMO
if
(
mac_xface
->
get_transmission_mode
(
mod_id
,
CC_id
,
rnti
)
==
5
)
{
...
...
@@ -293,6 +287,13 @@ schedule_ue_spec_default(
if
(
round
>
0
)
{
mcs
=
UE_list
->
eNB_UE_stats
[
CC_id
][
UE_id
].
dlsch_mcs1
;
// get freq_allocation
nb_rb
=
UE_list
->
UE_template
[
CC_id
][
UE_id
].
nb_rb
[
harq_pid
];
dci_tbs
=
mac_xface
->
get_TBS_DL
(
mcs
,
nb_rb
);
if
(
frame_parms
[
CC_id
]
->
frame_type
==
TDD
)
{
UE_list
->
UE_template
[
CC_id
][
UE_id
].
DAI
++
;
update_ul_dci
(
mod_id
,
CC_id
,
rnti
,
UE_list
->
UE_template
[
CC_id
][
UE_id
].
DAI
);
...
...
@@ -300,8 +301,7 @@ schedule_ue_spec_default(
CC_id
,
subframe
,
UE_id
,
UE_list
->
UE_template
[
CC_id
][
UE_id
].
DAI
);
}
// get freq_allocation
nb_rb
=
UE_list
->
UE_template
[
CC_id
][
UE_id
].
nb_rb
[
harq_pid
];
if
(
nb_rb
<=
nb_available_rb
)
{
...
...
@@ -348,7 +348,6 @@ schedule_ue_spec_default(
dl_dci
->
n_mcs
=
1
;
dl_dci
->
mcs
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
));
dl_dci
->
mcs
[
0
]
=
mcs
;
//TODO:Need to fix tpc for retransmissions
dl_dci
->
has_tpc
=
1
;
dl_dci
->
tpc
=
1
;
dl_dci
->
has_vrb_format
=
1
;
...
...
@@ -359,12 +358,18 @@ schedule_ue_spec_default(
dl_dci
->
rb_bitmap
=
allocate_prbs_sub
(
nb_rb
,
UE_list
->
UE_template
[
CC_id
][
UE_id
].
rballoc_subband
);
dl_dci
->
has_rb_shift
=
1
;
dl_dci
->
rb_shift
=
0
;
dl_dci
->
n_ndi
=
1
;
dl_dci
->
n_ndi
=
UE_list
->
UE_template
[
CC_id
][
UE_id
].
oldNDI
[
harq_pid
]
;
dl_dci
->
ndi
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_ndi
);
dl_dci
->
ndi
[
0
]
=
1
;
dl_dci
->
n_rv
=
1
;
dl_dci
->
rv
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_rv
);
dl_dci
->
rv
[
0
]
=
(
round
+
1
)
%
4
;
dl_dci
->
rv
[
0
]
=
round
&
3
;
dl_dci
->
n_mcs
=
1
;
dl_dci
->
mcs
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_mcs
);
dl_dci
->
mcs
[
0
]
=
mcs
;
dl_dci
->
n_tbs_size
=
1
;
dl_dci
->
tbs_size
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_tbs_size
);
dl_dci
->
tbs_size
[
0
]
=
dci_tbs
;
if
(
frame_parms
[
CC_id
]
->
frame_type
==
TDD
)
{
dl_dci
->
has_dai
=
1
;
dl_dci
->
dai
=
(
UE_list
->
UE_template
[
CC_id
][
UE_id
].
DAI
-
1
)
&
3
;
...
...
@@ -382,7 +387,6 @@ schedule_ue_spec_default(
dl_dci
->
mcs
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_mcs
);
dl_dci
->
mcs
[
0
]
=
mcs
;
dl_dci
->
mcs
[
1
]
=
mcs
;
//TODO:Need to fix tpc for retransmissions
dl_dci
->
has_tpc
=
1
;
dl_dci
->
tpc
=
1
;
dl_dci
->
has_vrb_format
=
1
;
...
...
@@ -395,12 +399,19 @@ schedule_ue_spec_default(
dl_dci
->
rb_shift
=
0
;
dl_dci
->
n_ndi
=
2
;
dl_dci
->
ndi
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_ndi
);
dl_dci
->
ndi
[
0
]
=
0
;
dl_dci
->
ndi
[
1
]
=
0
;
dl_dci
->
ndi
[
0
]
=
UE_list
->
UE_template
[
CC_id
][
UE_id
].
oldNDI
[
harq_pid
];
dl_dci
->
ndi
[
1
]
=
UE_list
->
UE_template
[
CC_id
][
UE_id
].
oldNDI
[
harq_pid
];
dl_dci
->
n_tbs_size
=
2
;
dl_dci
->
tbs_size
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_tbs_size
);
dl_dci
->
tbs_size
[
0
]
=
dci_tbs
;
dl_dci
->
tbs_size
[
1
]
=
dci_tbs
;
dl_dci
->
n_rv
=
2
;
dl_dci
->
rv
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_rv
);
dl_dci
->
rv
[
0
]
=
(
round
+
1
)
%
4
;
dl_dci
->
rv
[
1
]
=
(
round
+
1
)
%
4
;
dl_dci
->
rv
[
0
]
=
round
&
3
;
dl_dci
->
rv
[
1
]
=
round
&
3
;
dl_dci
->
mcs
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_mcs
);
dl_dci
->
mcs
[
0
]
=
mcs
;
dl_dci
->
mcs
[
1
]
=
mcs
;
if
(
frame_parms
[
CC_id
]
->
frame_type
==
TDD
)
{
dl_dci
->
has_dai
=
1
;
dl_dci
->
dai
=
(
UE_list
->
UE_template
[
CC_id
][
UE_id
].
DAI
-
1
)
&
3
;
...
...
@@ -417,7 +428,6 @@ schedule_ue_spec_default(
dl_dci
->
n_mcs
=
1
;
dl_dci
->
mcs
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
));
dl_dci
->
mcs
[
0
]
=
mcs
;
//TODO:Need to fix tpc for retransmissions
dl_dci
->
has_tpc
=
1
;
dl_dci
->
tpc
=
1
;
dl_dci
->
has_vrb_format
=
1
;
...
...
@@ -426,16 +436,22 @@ schedule_ue_spec_default(
dl_dci
->
format
=
PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1D
;
dl_dci
->
n_ndi
=
1
;
dl_dci
->
ndi
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_ndi
);
dl_dci
->
ndi
[
0
]
=
0
;
dl_dci
->
ndi
[
0
]
=
UE_list
->
UE_template
[
CC_id
][
UE_id
].
oldNDI
[
harq_pid
]
;
dl_dci
->
has_rb_bitmap
=
1
;
dl_dci
->
rb_bitmap
=
allocate_prbs_sub
(
nb_rb
,
UE_list
->
UE_template
[
CC_id
][
UE_id
].
rballoc_subband
);
dl_dci
->
has_rb_shift
=
1
;
dl_dci
->
rb_shift
=
0
;
dl_dci
->
has_dai
=
1
;
dl_dci
->
dai
=
(
UE_list
->
UE_template
[
CC_id
][
UE_id
].
DAI
-
1
)
&
3
;
dl_dci
->
n_mcs
=
1
;
dl_dci
->
mcs
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_mcs
);
dl_dci
->
mcs
[
0
]
=
mcs
;
dl_dci
->
n_tbs_size
=
1
;
dl_dci
->
tbs_size
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_tbs_size
);
dl_dci
->
tbs_size
[
0
]
=
dci_tbs
;
dl_dci
->
n_rv
=
1
;
dl_dci
->
rv
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_rv
);
dl_dci
->
rv
[
0
]
=
(
round
+
1
)
%
4
;
dl_dci
->
rv
[
0
]
=
round
&
3
;
if
(
ue_sched_ctl
->
dl_pow_off
[
CC_id
]
==
2
)
{
ue_sched_ctl
->
dl_pow_off
[
CC_id
]
=
1
;
...
...
@@ -451,7 +467,6 @@ schedule_ue_spec_default(
dl_dci
->
n_mcs
=
1
;
dl_dci
->
mcs
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
));
dl_dci
->
mcs
[
0
]
=
mcs
;
//TODO:Need to fix tpc for retransmissions
dl_dci
->
has_tpc
=
1
;
dl_dci
->
tpc
=
1
;
dl_dci
->
has_vrb_format
=
1
;
...
...
@@ -460,16 +475,22 @@ schedule_ue_spec_default(
dl_dci
->
format
=
PROTOCOL__PRP_DCI_FORMAT__PRDCIF_1D
;
dl_dci
->
n_ndi
=
1
;
dl_dci
->
ndi
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_ndi
);
dl_dci
->
ndi
[
0
]
=
0
;
dl_dci
->
ndi
[
0
]
=
UE_list
->
UE_template
[
CC_id
][
UE_id
].
oldNDI
[
harq_pid
]
;
dl_dci
->
has_rb_bitmap
=
1
;
dl_dci
->
rb_bitmap
=
allocate_prbs_sub
(
nb_rb
,
UE_list
->
UE_template
[
CC_id
][
UE_id
].
rballoc_subband
);
dl_dci
->
has_rb_shift
=
1
;
dl_dci
->
rb_shift
=
0
;
dl_dci
->
has_dai
=
1
;
dl_dci
->
dai
=
(
UE_list
->
UE_template
[
CC_id
][
UE_id
].
DAI
-
1
)
&
3
;
dl_dci
->
n_mcs
=
1
;
dl_dci
->
mcs
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_mcs
);
dl_dci
->
mcs
[
0
]
=
mcs
;
dl_dci
->
n_tbs_size
=
1
;
dl_dci
->
tbs_size
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_tbs_size
);
dl_dci
->
tbs_size
[
0
]
=
dci_tbs
;
dl_dci
->
n_rv
=
1
;
dl_dci
->
rv
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_rv
);
dl_dci
->
rv
[
0
]
=
(
round
+
1
)
%
4
;
dl_dci
->
rv
[
0
]
=
round
&
3
;
dl_dci
->
has_dl_power_offset
=
1
;
dl_dci
->
dl_power_offset
=
ue_sched_ctl
->
dl_pow_off
[
CC_id
];
...
...
@@ -843,7 +864,7 @@ schedule_ue_spec_default(
dl_dci
->
rb_shift
=
0
;
dl_dci
->
n_ndi
=
1
;
dl_dci
->
ndi
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_ndi
);
dl_dci
->
ndi
[
0
]
=
1
-
UE_list
->
UE_template
[
CC_id
][
UE_id
].
oldNDI
[
harq_pid
];
dl_dci
->
ndi
[
0
]
=
1
-
UE_list
->
UE_template
[
CC_id
][
UE_id
].
oldNDI
[
harq_pid
];
dl_dci
->
n_rv
=
1
;
dl_dci
->
rv
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_rv
);
dl_dci
->
rv
[
0
]
=
0
;
...
...
@@ -873,8 +894,8 @@ schedule_ue_spec_default(
dl_dci
->
rb_shift
=
0
;
dl_dci
->
n_ndi
=
2
;
dl_dci
->
ndi
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_ndi
);
dl_dci
->
ndi
[
0
]
=
1
;
dl_dci
->
ndi
[
1
]
=
1
;
dl_dci
->
ndi
[
0
]
=
1
-
UE_list
->
UE_template
[
CC_id
][
UE_id
].
oldNDI
[
harq_pid
]
;
dl_dci
->
ndi
[
1
]
=
1
-
UE_list
->
UE_template
[
CC_id
][
UE_id
].
oldNDI
[
harq_pid
]
;
dl_dci
->
n_rv
=
2
;
dl_dci
->
rv
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_rv
);
dl_dci
->
rv
[
0
]
=
0
;
...
...
@@ -907,8 +928,8 @@ schedule_ue_spec_default(
dl_dci
->
rb_shift
=
0
;
dl_dci
->
n_ndi
=
2
;
dl_dci
->
ndi
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_ndi
);
dl_dci
->
ndi
[
0
]
=
1
;
dl_dci
->
ndi
[
1
]
=
1
;
dl_dci
->
ndi
[
0
]
=
1
-
UE_list
->
UE_template
[
CC_id
][
UE_id
].
oldNDI
[
harq_pid
]
;
dl_dci
->
ndi
[
1
]
=
1
-
UE_list
->
UE_template
[
CC_id
][
UE_id
].
oldNDI
[
harq_pid
]
;
dl_dci
->
n_rv
=
2
;
dl_dci
->
rv
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_rv
);
dl_dci
->
rv
[
0
]
=
0
;
...
...
@@ -941,7 +962,7 @@ schedule_ue_spec_default(
dl_dci
->
rb_shift
=
0
;
dl_dci
->
n_ndi
=
1
;
dl_dci
->
ndi
=
1
;
dl_dci
->
ndi
[
0
]
=
1
;
dl_dci
->
ndi
[
0
]
=
1
-
UE_list
->
UE_template
[
CC_id
][
UE_id
].
oldNDI
[
harq_pid
]
;
dl_dci
->
n_rv
=
1
;
dl_dci
->
rv
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_rv
);
dl_dci
->
rv
[
0
]
=
0
;
...
...
@@ -981,7 +1002,7 @@ schedule_ue_spec_default(
dl_dci
->
rb_shift
=
0
;
dl_dci
->
n_ndi
=
1
;
dl_dci
->
ndi
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_ndi
);
dl_dci
->
ndi
[
0
]
=
1
;
dl_dci
->
ndi
[
0
]
=
1
-
UE_list
->
UE_template
[
CC_id
][
UE_id
].
oldNDI
[
harq_pid
]
;
dl_dci
->
n_rv
=
1
;
dl_dci
->
rv
=
(
uint32_t
*
)
malloc
(
sizeof
(
uint32_t
)
*
dl_dci
->
n_rv
);
dl_dci
->
rv
[
0
]
=
round
&
3
;
...
...
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