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
wangwenhui
OpenXG-RAN
Commits
b0b472e0
Commit
b0b472e0
authored
Nov 24, 2016
by
hbilel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
BSR fixes on CMW500
parent
880cddb4
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
6 deletions
+28
-6
openair2/LAYER2/MAC/config.c
openair2/LAYER2/MAC/config.c
+1
-0
openair2/LAYER2/MAC/ue_procedures.c
openair2/LAYER2/MAC/ue_procedures.c
+27
-6
No files found.
openair2/LAYER2/MAC/config.c
View file @
b0b472e0
...
...
@@ -188,6 +188,7 @@ rrc_mac_config_req(
else
{
UE_mac_inst
[
Mod_idP
].
scheduling_info
.
LCGID
[
logicalChannelIdentity
]
=
MAX_NUM_LCGID
;
}
UE_mac_inst
[
Mod_idP
].
scheduling_info
.
LCID_buffer_remain
[
logicalChannelIdentity
]
=
0
;
}
else
{
LOG_E
(
MAC
,
"[CONFIG][UE %d] LCID %d NULL ul_SpecificParameters
\n
"
,
Mod_idP
,
logicalChannelIdentity
);
mac_xface
->
macphy_exit
(
"NULL ul_SpecificParameters"
);
...
...
openair2/LAYER2/MAC/ue_procedures.c
View file @
b0b472e0
...
...
@@ -128,6 +128,7 @@ void ue_init_mac(module_id_t module_idP)
}
UE_mac_inst
[
module_idP
].
scheduling_info
.
LCID_status
[
i
]
=
LCID_EMPTY
;
UE_mac_inst
[
module_idP
].
scheduling_info
.
LCID_buffer_remain
[
i
]
=
0
;
}
#ifdef CBA
...
...
@@ -1504,6 +1505,7 @@ void ue_get_sdu(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subf
LOG_D
(
MAC
,
"[UE %d] TX Multiplex RLC PDU Got %d bytes for SRB2
\n
"
,
module_idP
,
sdu_lengths
[
num_sdus
]);
//dcch_header_len +=2; // include dcch1
UE_mac_inst
[
module_idP
].
scheduling_info
.
LCID_status
[
DCCH1
]
=
LCID_EMPTY
;
UE_mac_inst
[
module_idP
].
scheduling_info
.
LCID_buffer_remain
[
DCCH1
]
-=
sdu_lengths
[
num_sdus
];
/* Update BSR : substract transmitted data */
if
(
UE_mac_inst
[
module_idP
].
scheduling_info
.
BSR_bytes
[
UE_mac_inst
[
module_idP
].
scheduling_info
.
LCGID
[
DCCH1
]]
>=
sdu_lengths
[
num_sdus
]){
UE_mac_inst
[
module_idP
].
scheduling_info
.
BSR_bytes
[
UE_mac_inst
[
module_idP
].
scheduling_info
.
LCGID
[
DCCH1
]]
-=
sdu_lengths
[
num_sdus
];
...
...
@@ -1653,7 +1655,18 @@ void ue_get_sdu(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subf
if
(
bsr_ce_len
)
{
//Print updated BSR when sent
LOG_D
(
MAC
,
"[UE %d] Frame %d Subframe %d TX BSR size=%d BSR0=%d BSR1=%d BSR2=%d BSR3=%d
\n
"
,
module_idP
,
frameP
,
subframe
,
bsr_ce_len
,
LOG_D
(
MAC
,
"[UE %d] Remaining Buffer after Tx frame%d subframe %d nb LCG =%d Bytes for LCG0=%d LCG1=%d LCG2=%d LCG3=%d BSR Trigger status =%d TBS=%d
\n
"
,
module_idP
,
frameP
,
subframe
,
num_lcg_id_with_data
,
UE_mac_inst
[
module_idP
].
scheduling_info
.
BSR_bytes
[
0
],
UE_mac_inst
[
module_idP
].
scheduling_info
.
BSR_bytes
[
1
],
UE_mac_inst
[
module_idP
].
scheduling_info
.
BSR_bytes
[
2
],
UE_mac_inst
[
module_idP
].
scheduling_info
.
BSR_bytes
[
3
],
UE_mac_inst
[
module_idP
].
BSR_reporting_active
,
buflen
);
LOG_D
(
MAC
,
"[UE %d] Frame %d Subframe %d TX BSR Regular or Periodic size=%d BSR0=%d BSR1=%d BSR2=%d BSR3=%d
\n
"
,
module_idP
,
frameP
,
subframe
,
bsr_ce_len
,
UE_mac_inst
[
module_idP
].
scheduling_info
.
BSR
[
0
],
UE_mac_inst
[
module_idP
].
scheduling_info
.
BSR
[
1
],
UE_mac_inst
[
module_idP
].
scheduling_info
.
BSR
[
2
],
...
...
@@ -2309,6 +2322,7 @@ boolean_t update_bsr(module_id_t module_idP, frame_t frameP, sub_frame_t subfra
uint8_t
array_index
=
0
;
// Reset All BSR Infos
lcid_bytes_in_buffer
[
0
]
=
0
;
for
(
lcid
=
DCCH
;
lcid
<
MAX_NUM_LCID
;
lcid
++
)
{
// Reset transmission status
...
...
@@ -2316,7 +2330,7 @@ boolean_t update_bsr(module_id_t module_idP, frame_t frameP, sub_frame_t subfra
UE_mac_inst
[
module_idP
].
scheduling_info
.
LCID_status
[
lcid
]
=
LCID_EMPTY
;
}
for
(
lcgid
=
0
;
lcid
<
MAX_NUM_LCGID
;
lcgid
++
)
for
(
lcgid
=
0
;
lc
g
id
<
MAX_NUM_LCGID
;
lcgid
++
)
{
// Reset Buffer Info
UE_mac_inst
[
module_idP
].
scheduling_info
.
BSR
[
lcgid
]
=
0
;
...
...
@@ -2344,6 +2358,8 @@ boolean_t update_bsr(module_id_t module_idP, frame_t frameP, sub_frame_t subfra
if
(
rlc_status
.
bytes_in_buffer
>
0
)
{
LOG_D
(
MAC
,
"[UE %d] PDCCH Tick : LCID%d LCGID%d has data to transmit =%d bytes at frame %d subframe %d
\n
"
,
module_idP
,
lcid
,
lcgid
,
rlc_status
.
bytes_in_buffer
,
frameP
,
subframeP
);
UE_mac_inst
[
module_idP
].
scheduling_info
.
LCID_status
[
lcid
]
=
LCID_NOT_EMPTY
;
//Update BSR_bytes and position in lcid_reordered_array only if Group is defined
...
...
@@ -2381,6 +2397,9 @@ boolean_t update_bsr(module_id_t module_idP, frame_t frameP, sub_frame_t subfra
// Check whether a regular BSR can be triggered according to the first cases in 36.321
if
(
num_lcid_with_data
)
{
LOG_D
(
MAC
,
"[UE %d] PDCCH Tick at frame %d subframe %d: NumLCID with data=%d Reordered LCID0=%d LCID1=%d LCID2=%d
\n
"
,
module_idP
,
frameP
,
subframeP
,
num_lcid_with_data
,
lcid_reordered_array
[
0
],
lcid_reordered_array
[
1
],
lcid_reordered_array
[
2
]);
for
(
array_index
=
0
;
array_index
<
num_lcid_with_data
;
array_index
++
)
{
lcid
=
lcid_reordered_array
[
array_index
];
...
...
@@ -2395,8 +2414,8 @@ boolean_t update_bsr(module_id_t module_idP, frame_t frameP, sub_frame_t subfra
{
bsr_regular_triggered
=
TRUE
;
LOG_D
(
MAC
,
"[UE %d] PDCCH Tick : MAC BSR Triggered LCID%d data become available at frame %d subframe %d
\n
"
,
module_idP
,
lcid
,
frameP
,
subframeP
);
LOG_D
(
MAC
,
"[UE %d] PDCCH Tick : MAC BSR Triggered LCID%d
LCGID%d
data become available at frame %d subframe %d
\n
"
,
module_idP
,
lcid
,
UE_mac_inst
[
module_idP
].
scheduling_info
.
LCGID
[
lcid
],
frameP
,
subframeP
);
break
;
}
...
...
@@ -2407,8 +2426,10 @@ boolean_t update_bsr(module_id_t module_idP, frame_t frameP, sub_frame_t subfra
{
bsr_regular_triggered
=
TRUE
;
LOG_D
(
MAC
,
"[UE %d] PDCCH Tick : MAC BSR Triggered ReTxBSR Timer expiry at frame %d subframe %d
\n
"
,
module_idP
,
frameP
,
subframeP
);
if
((
UE_mac_inst
[
module_idP
].
BSR_reporting_active
&
BSR_TRIGGER_REGULAR
)
==
0
)
{
LOG_I
(
MAC
,
"[UE %d] PDCCH Tick : MAC BSR Triggered ReTxBSR Timer expiry at frame %d subframe %d
\n
"
,
module_idP
,
frameP
,
subframeP
);
}
}
}
...
...
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