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
lizhongxiao
OpenXG-RAN
Commits
90f67400
Commit
90f67400
authored
May 14, 2020
by
masayuki.harada
Committed by
Haruki NAOI
Jul 20, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix: RRCConnectionSetup fails in bw 10Mhz.
(cherry picked from commit bea66ef41df2b1e2b04877090b92c7740f9070c1)
parent
9b62b5a2
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
30 deletions
+26
-30
openair2/LAYER2/MAC/eNB_scheduler_RA.c
openair2/LAYER2/MAC/eNB_scheduler_RA.c
+26
-30
No files found.
openair2/LAYER2/MAC/eNB_scheduler_RA.c
View file @
90f67400
...
@@ -633,6 +633,7 @@ generate_Msg4(module_id_t module_idP,
...
@@ -633,6 +633,7 @@ generate_Msg4(module_id_t module_idP,
uint16_t
msg4_header
=
0
;
uint16_t
msg4_header
=
0
;
int
UE_id
=
-
1
;
int
UE_id
=
-
1
;
int
first_rb
=
0
;
int
first_rb
=
0
;
int
nb_rb
=
0
;
int
N_RB_DL
=
0
;
int
N_RB_DL
=
0
;
int
N_RBG
;
int
N_RBG
;
uint8_t
lcid
=
0
;
uint8_t
lcid
=
0
;
...
@@ -1037,10 +1038,11 @@ generate_Msg4(module_id_t module_idP,
...
@@ -1037,10 +1038,11 @@ generate_Msg4(module_id_t module_idP,
module_idP
,
CC_idP
,
frameP
,
subframeP
,
ra
->
rnti
);
module_idP
,
CC_idP
,
frameP
,
subframeP
,
ra
->
rnti
);
/// Choose first 4 RBs for Msg4, should really check that these are free!
/// Choose first 4 RBs for Msg4, should really check that these are free!
first_rb
=
0
;
first_rb
=
0
;
vrb_map
[
first_rb
]
=
1
;
nb_rb
=
4
;
vrb_map
[
first_rb
+
1
]
=
1
;
if
(
cc
[
CC_idP
].
mib
->
message
.
dl_Bandwidth
==
3
)
nb_rb
=
6
;
vrb_map
[
first_rb
+
2
]
=
1
;
for
(
int
i
=
0
;
i
<
nb_rb
;
i
++
){
vrb_map
[
first_rb
+
3
]
=
1
;
vrb_map
[
first_rb
+
i
]
=
1
;
}
if
((
cc
[
CC_idP
].
mib
->
message
.
dl_Bandwidth
==
2
)
||
(
cc
[
CC_idP
].
mib
->
message
.
dl_Bandwidth
==
3
))
if
((
cc
[
CC_idP
].
mib
->
message
.
dl_Bandwidth
==
2
)
||
(
cc
[
CC_idP
].
mib
->
message
.
dl_Bandwidth
==
3
))
{
{
rbg_map
[
0
]
=
1
;
rbg_map
[
0
]
=
1
;
...
@@ -1063,32 +1065,24 @@ generate_Msg4(module_id_t module_idP,
...
@@ -1063,32 +1065,24 @@ generate_Msg4(module_id_t module_idP,
// Compute MCS/TBS for 4 PRB (coded on 4 vrb)
// Compute MCS/TBS for 4 PRB (coded on 4 vrb)
msg4_header
=
1
+
6
+
1
;
// CR header, CR CE, SDU header
msg4_header
=
1
+
6
+
1
;
// CR header, CR CE, SDU header
if
((
rrc_sdu_length
+
msg4_header
)
<=
28
)
{
ra
->
msg4_mcs
=
3
;
ra
->
msg4_mcs
=
3
;
while
(
1
){
ra
->
msg4_TBsize
=
28
;
if
(
get_TBS_DL
(
ra
->
msg4_mcs
,
nb_rb
)
>
(
rrc_sdu_length
+
msg4_header
)){
}
else
if
((
rrc_sdu_length
+
msg4_header
)
<=
32
)
{
ra
->
msg4_TBsize
=
get_TBS_DL
(
ra
->
msg4_mcs
,
nb_rb
);
ra
->
msg4_mcs
=
4
;
break
;
ra
->
msg4_TBsize
=
32
;
}
}
else
if
((
rrc_sdu_length
+
msg4_header
)
<=
41
)
{
ra
->
msg4_mcs
++
;
ra
->
msg4_mcs
=
5
;
ra
->
msg4_TBsize
=
41
;
}
else
if
((
rrc_sdu_length
+
msg4_header
)
<=
49
)
{
ra
->
msg4_mcs
=
6
;
ra
->
msg4_TBsize
=
49
;
}
else
if
((
rrc_sdu_length
+
msg4_header
)
<=
59
)
{
ra
->
msg4_mcs
=
7
;
ra
->
msg4_TBsize
=
59
;
}
else
if
((
rrc_sdu_length
+
msg4_header
)
<=
67
)
{
ra
->
msg4_mcs
=
8
;
ra
->
msg4_TBsize
=
67
;
}
}
LOG_I
(
MAC
,
"Frame %d, subframe %d: MSG4 rnti %d, rrc_sdu_length %d, mcs %d, TBsize %d
\n
"
,
frameP
,
subframeP
,
ra
->
rnti
,
rrc_sdu_length
,
ra
->
msg4_mcs
,
ra
->
msg4_TBsize
);
fill_nfapi_dl_dci_1
(
dl_config_pdu
,
4
,
// aggregation_level
fill_nfapi_dl_dci_1
(
dl_config_pdu
,
4
,
// aggregation_level
ra
->
rnti
,
// rnti
ra
->
rnti
,
// rnti
1
,
// rnti_type, CRNTI
1
,
// rnti_type, CRNTI
ra
->
harq_pid
,
// harq_process
ra
->
harq_pid
,
// harq_process
1
,
// tpc, none
1
,
// tpc, none
allocate_prbs_sub
(
4
,
N_RB_DL
,
N_RBG
,
rbg_map
),
// resource_block_coding
allocate_prbs_sub
(
nb_rb
,
N_RB_DL
,
N_RBG
,
rbg_map
),
// resource_block_coding
ra
->
msg4_mcs
,
// mcs
ra
->
msg4_mcs
,
// mcs
1
-
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
oldNDI
[
ra
->
harq_pid
][
TB1
],
1
-
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
oldNDI
[
ra
->
harq_pid
][
TB1
],
0
,
// rv
0
,
// rv
...
@@ -1163,7 +1157,7 @@ generate_Msg4(module_id_t module_idP,
...
@@ -1163,7 +1157,7 @@ generate_Msg4(module_id_t module_idP,
// DLSCH Config
// DLSCH Config
fill_nfapi_dlsch_config
(
mac
,
dl_req_body
,
ra
->
msg4_TBsize
,
mac
->
pdu_index
[
CC_idP
],
ra
->
rnti
,
0
,
// resource_allocation_type : format 1A/1B/1D
fill_nfapi_dlsch_config
(
mac
,
dl_req_body
,
ra
->
msg4_TBsize
,
mac
->
pdu_index
[
CC_idP
],
ra
->
rnti
,
0
,
// resource_allocation_type : format 1A/1B/1D
0
,
// virtual_resource_block_assignment_flag : localized
0
,
// virtual_resource_block_assignment_flag : localized
allocate_prbs_sub
(
4
,
N_RB_DL
,
N_RBG
,
rbg_map
),
// resource_block_coding
allocate_prbs_sub
(
nb_rb
,
N_RB_DL
,
N_RBG
,
rbg_map
),
// resource_block_coding
2
,
// modulation: QPSK
2
,
// modulation: QPSK
0
,
// redundancy version
0
,
// redundancy version
1
,
// transport_blocks
1
,
// transport_blocks
...
@@ -1255,6 +1249,7 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP,
...
@@ -1255,6 +1249,7 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP,
uint8_t
rbg_map
[
25
];
uint8_t
rbg_map
[
25
];
uint8_t
rbg
;
uint8_t
rbg
;
int
first_rb
;
int
first_rb
;
int
nb_rb
;
int
N_RB_DL
;
int
N_RB_DL
;
int
N_RBG
;
int
N_RBG
;
nfapi_dl_config_request_pdu_t
*
dl_config_pdu
;
nfapi_dl_config_request_pdu_t
*
dl_config_pdu
;
...
@@ -1337,10 +1332,11 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP,
...
@@ -1337,10 +1332,11 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP,
// we have to schedule a retransmission
// we have to schedule a retransmission
dl_req
->
sfn_sf
=
frameP
<<
4
|
subframeP
;
dl_req
->
sfn_sf
=
frameP
<<
4
|
subframeP
;
first_rb
=
0
;
first_rb
=
0
;
vrb_map
[
first_rb
]
=
1
;
nb_rb
=
4
;
vrb_map
[
first_rb
+
1
]
=
1
;
if
(
cc
[
CC_idP
].
mib
->
message
.
dl_Bandwidth
==
3
)
nb_rb
=
6
;
vrb_map
[
first_rb
+
2
]
=
1
;
for
(
int
i
=
0
;
i
<
nb_rb
;
i
++
){
vrb_map
[
first_rb
+
3
]
=
1
;
vrb_map
[
first_rb
+
i
]
=
1
;
}
rbg_map
[
0
]
=
1
;
rbg_map
[
0
]
=
1
;
rbg_map
[
1
]
=
1
;
rbg_map
[
1
]
=
1
;
for
(
rbg
=
2
;
rbg
<
N_RBG
;
rbg
++
)
for
(
rbg
=
2
;
rbg
<
N_RBG
;
rbg
++
)
...
@@ -1352,7 +1348,7 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP,
...
@@ -1352,7 +1348,7 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP,
1
,
// rnti_type, CRNTI
1
,
// rnti_type, CRNTI
ra
->
harq_pid
,
// harq_process
ra
->
harq_pid
,
// harq_process
1
,
// tpc, none
1
,
// tpc, none
allocate_prbs_sub
(
4
,
N_RB_DL
,
N_RBG
,
rbg_map
),
// resource_block_coding
allocate_prbs_sub
(
nb_rb
,
N_RB_DL
,
N_RBG
,
rbg_map
),
// resource_block_coding
ra
->
msg4_mcs
,
// mcs
ra
->
msg4_mcs
,
// mcs
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
oldNDI
[
ra
->
harq_pid
][
TB1
],
UE_list
->
UE_template
[
CC_idP
][
UE_id
].
oldNDI
[
ra
->
harq_pid
][
TB1
],
round
&
3
,
// rv
round
&
3
,
// rv
...
@@ -1376,7 +1372,7 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP,
...
@@ -1376,7 +1372,7 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP,
/* retransmission, no pdu_index */
/* retransmission, no pdu_index */
,
ra
->
rnti
,
0
,
// resource_allocation_type : format 1A/1B/1D
,
ra
->
rnti
,
0
,
// resource_allocation_type : format 1A/1B/1D
0
,
// virtual_resource_block_assignment_flag : localized
0
,
// virtual_resource_block_assignment_flag : localized
allocate_prbs_sub
(
4
,
N_RB_DL
,
N_RBG
,
rbg_map
),
// resource_block_coding : RIV, 4 PRB
allocate_prbs_sub
(
nb_rb
,
N_RB_DL
,
N_RBG
,
rbg_map
),
// resource_block_coding : RIV, 4 PRB
2
,
// modulation: QPSK
2
,
// modulation: QPSK
round
&
3
,
// redundancy version
round
&
3
,
// redundancy version
1
,
// transport_blocks
1
,
// transport_blocks
...
...
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