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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
c641f334
Commit
c641f334
authored
Feb 12, 2018
by
wujing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix total usable RBs when pucch rb=6
parent
19a2b37c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
55 additions
and
14 deletions
+55
-14
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+2
-2
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+11
-0
openair2/LAYER2/MAC/pre_processor.c
openair2/LAYER2/MAC/pre_processor.c
+41
-11
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
+1
-1
No files found.
openair2/ENB_APP/enb_config.c
View file @
c641f334
...
...
@@ -876,9 +876,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for prach_freq_offset choice: 2(N_RB_DL %d)!
\n
"
,
RC
.
config_file_name
,
i
,
prach_freq_offset
,
N_RB_DL
);
if
(((
N_RB_DL
==
50
)
||
(
N_RB_DL
==
100
))
&&
(
prach_freq_offset
!=
3
))
if
(((
N_RB_DL
==
50
)
||
(
N_RB_DL
==
100
))
&&
(
prach_freq_offset
<
3
))
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for prach_freq_offset choice: 3(N_RB_DL %d)!
\n
"
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for prach_freq_offset choice: 3
,4
(N_RB_DL %d)!
\n
"
,
RC
.
config_file_name
,
i
,
prach_freq_offset
,
N_RB_DL
);
#endif
...
...
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
View file @
c641f334
...
...
@@ -1710,6 +1710,7 @@ void schedule_ulsch_rnti(module_id_t module_idP,
hi_dci0_req
=
&
eNB
->
HI_DCI0_req
[
CC_id
][
subframeP
].
hi_dci0_request_body
;
eNB
->
HI_DCI0_req
[
CC_id
][
subframeP
].
sfn_sf
=
(
frameP
<<
4
)
+
subframeP
;
ul_req_tmp
=
&
eNB
->
UL_req_tmp
[
CC_id
][
sched_subframeP
].
ul_config_request_body
;
nfapi_ul_config_request_t
*
ul_req
=
&
eNB
->
UL_req_tmp
[
CC_id
][
sched_subframeP
];
ULSCH_first_end
=
0
;
cc
=
&
eNB
->
common_channels
[
CC_id
];
...
...
@@ -1959,6 +1960,12 @@ void schedule_ulsch_rnti(module_id_t module_idP,
#endif
ul_req_tmp
->
number_of_pdus
++
;
eNB
->
ul_handle
++
;
ul_req
->
header
.
message_id
=
NFAPI_UL_CONFIG_REQUEST
;
ul_req_tmp
->
tl
.
tag
=
NFAPI_UL_CONFIG_REQUEST_BODY_TAG
;
uint16_t
ul_sched_frame
=
sched_frame
;
uint16_t
ul_sched_subframeP
=
sched_subframeP
;
add_subframe
(
&
ul_sched_frame
,
&
ul_sched_subframeP
,
2
);
ul_req
->
sfn_sf
=
ul_sched_frame
<<
4
|
ul_sched_subframeP
;
add_ue_ulsch_info
(
module_idP
,
CC_id
,
...
...
@@ -2096,6 +2103,10 @@ void schedule_ulsch_rnti(module_id_t module_idP,
#endif
ul_req_tmp
->
number_of_pdus
++
;
eNB
->
ul_handle
++
;
ul_req
->
header
.
message_id
=
NFAPI_UL_CONFIG_REQUEST
;
ul_req_tmp
->
tl
.
tag
=
NFAPI_UL_CONFIG_REQUEST_BODY_TAG
;
ul_req
->
sfn_sf
=
sched_frame
<<
4
|
sched_subframeP
;
LOG_D
(
MAC
,
"[eNB %d] CC_id %d Frame %d, subframeP %d: Generated ULSCH DCI for next UE_id %d, format 0(round >0)
\n
"
,
module_idP
,
CC_id
,
frameP
,
subframeP
,
UE_id
);
// increment first rb for next UE allocation
...
...
openair2/LAYER2/MAC/pre_processor.c
View file @
c641f334
...
...
@@ -2700,6 +2700,7 @@ void ulsch_scheduler_pre_processor(module_id_t module_idP,
int16_t
tx_power
;
int
UE_id
;
rnti_t
rnti
;
COMMON_channels_t
*
cc
;
LOG_D
(
MAC
,
"In ulsch_preprocessor: ulsch ue select
\n
"
);
//ue select
ulsch_scheduler_pre_ue_select
(
module_idP
,
frameP
,
subframeP
,
sched_subframeP
,
ulsch_ue_select
);
...
...
@@ -2730,22 +2731,51 @@ void ulsch_scheduler_pre_processor(module_id_t module_idP,
}
rnti
=
UE_RNTI
(
CC_id
,
UE_id
);
if
(
frame_parms
->
N_RB_UL
==
25
){
if
(
first_rb
[
CC_id
]
>=
frame_parms
->
N_RB_UL
-
1
){
LOG_W
(
MAC
,
"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: dropping, not enough RBs
\n
"
,
module_idP
,
frameP
,
subframeP
,
UE_id
,
rnti
,
CC_id
);
break
;
cc
=
&
RC
.
mac
[
module_idP
]
->
common_channels
[
CC_id
];
if
(
cc
->
tdd_Config
)
{
if
(
frame_parms
->
N_RB_UL
==
25
)
{
if
(
first_rb
[
CC_id
]
>=
frame_parms
->
N_RB_UL
-
1
)
{
LOG_W
(
MAC
,
"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: dropping, not enough RBs
\n
"
,
module_idP
,
frameP
,
subframeP
,
UE_id
,
rnti
,
CC_id
);
break
;
}
// calculate the average rb ( remain UE)
total_rbs
=
frame_parms
->
N_RB_UL
-
1
-
first_rb
[
CC_id
];
}
else
if
(
frame_parms
->
N_RB_UL
==
50
)
{
if
(
first_rb
[
CC_id
]
>=
frame_parms
->
N_RB_UL
-
2
)
{
LOG_W
(
MAC
,
"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: dropping, not enough RBs
\n
"
,
module_idP
,
frameP
,
subframeP
,
UE_id
,
rnti
,
CC_id
);
break
;
}
// calculate the average rb ( remain UE)
total_rbs
=
frame_parms
->
N_RB_UL
-
1
-
first_rb
[
CC_id
];
}
else
{
if
(
first_rb
[
CC_id
]
>=
frame_parms
->
N_RB_UL
-
2
){
total_rbs
=
frame_parms
->
N_RB_UL
-
2
-
first_rb
[
CC_id
];
}
else
{
if
(
first_rb
[
CC_id
]
>=
frame_parms
->
N_RB_UL
-
3
)
{
LOG_W
(
MAC
,
"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: dropping, not enough RBs
\n
"
,
module_idP
,
frameP
,
subframeP
,
UE_id
,
rnti
,
CC_id
);
break
;
}
// calculate the average rb ( remain UE)
total_rbs
=
frame_parms
->
N_RB_UL
-
3
-
first_rb
[
CC_id
];
}
}
else
{
if
(
frame_parms
->
N_RB_UL
==
25
){
if
(
first_rb
[
CC_id
]
>=
frame_parms
->
N_RB_UL
-
1
){
LOG_W
(
MAC
,
"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: dropping, not enough RBs
\n
"
,
module_idP
,
frameP
,
subframeP
,
UE_id
,
rnti
,
CC_id
);
break
;
break
;
}
// calculate the average rb ( remain UE)
total_rbs
=
frame_parms
->
N_RB_UL
-
1
-
first_rb
[
CC_id
];
}
else
{
if
(
first_rb
[
CC_id
]
>=
frame_parms
->
N_RB_UL
-
2
){
LOG_W
(
MAC
,
"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: dropping, not enough RBs
\n
"
,
module_idP
,
frameP
,
subframeP
,
UE_id
,
rnti
,
CC_id
);
break
;
}
// calculate the average rb ( remain UE)
total_rbs
=
frame_parms
->
N_RB_UL
-
2
-
first_rb
[
CC_id
];
}
// calculate the average rb ( remain UE)
total_rbs
=
frame_parms
->
N_RB_UL
-
2
-
first_rb
[
CC_id
];
}
average_rbs
=
(
int
)
round
((
double
)
total_rbs
/
(
double
)
ue_num_temp
);
if
(
average_rbs
<
3
)
{
...
...
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c
View file @
c641f334
...
...
@@ -550,7 +550,7 @@ rlc_am_mac_status_indication (
}
rlc
->
last_absolute_subframe_status_indication
=
PROTOCOL_CTXT_TIME_MILLI_SECONDS
(
ctxt_pP
);
if
(
tb_sizeP
>
0
)
rlc
->
nb_bytes_requested_by_mac
=
tb_sizeP
;
status_resp
.
buffer_occupancy_in_bytes
=
rlc_am_get_buffer_occupancy_in_bytes
(
ctxt_pP
,
rlc
);
...
...
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