Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
oai
openairinterface5G
Commits
66442047
Commit
66442047
authored
Oct 27, 2016
by
calvin wang
Browse files
add BSR trigger code for interoperability test
parent
0dfde2f4
Changes
2
Show whitespace changes
Inline
Side-by-side
openair2/LAYER2/MAC/defs.h
View file @
66442047
...
@@ -947,6 +947,10 @@ typedef struct {
...
@@ -947,6 +947,10 @@ typedef struct {
uint8_t
BSR
[
MAX_NUM_LCGID
];
// should be more for mesh topology
uint8_t
BSR
[
MAX_NUM_LCGID
];
// should be more for mesh topology
/// keep the number of bytes in rlc buffer for each lcgid
/// keep the number of bytes in rlc buffer for each lcgid
uint16_t
BSR_bytes
[
MAX_NUM_LCGID
];
uint16_t
BSR_bytes
[
MAX_NUM_LCGID
];
#if 0 //calvin for BSR test,current buffer greater then previous one, or buffer from 0 to !0
/// after multiplexing buffer remain for each lcid
uint16_t LCID_buffer_remain[MAX_NUM_LCID];
#endif
/// buffer status for each lcid
/// buffer status for each lcid
uint8_t
LCID_status
[
MAX_NUM_LCID
];
uint8_t
LCID_status
[
MAX_NUM_LCID
];
/// SR pending as defined in 36.321
/// SR pending as defined in 36.321
...
...
openair2/LAYER2/MAC/ue_procedures.c
View file @
66442047
...
@@ -1356,6 +1356,9 @@ void ue_get_sdu(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subf
...
@@ -1356,6 +1356,9 @@ void ue_get_sdu(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subf
//update_bsr(module_idP, frameP, eNB_index, DCCH, UE_mac_inst[module_idP].scheduling_info.LCGID[DCCH]);
//update_bsr(module_idP, frameP, eNB_index, DCCH, UE_mac_inst[module_idP].scheduling_info.LCGID[DCCH]);
//header_len +=2;
//header_len +=2;
UE_mac_inst
[
module_idP
].
scheduling_info
.
LCID_status
[
DCCH
]
=
LCID_EMPTY
;
UE_mac_inst
[
module_idP
].
scheduling_info
.
LCID_status
[
DCCH
]
=
LCID_EMPTY
;
#if 0 //calvin for BSR test,current buffer greater then previous one, or buffer from 0 to !0
UE_mac_inst[module_idP].scheduling_info.LCID_buffer_remain[DCCH] = rlc_status.bytes_in_buffer-sdu_lengths[0];
#endif
}
else
{
}
else
{
dcch_header_len
=
0
;
dcch_header_len
=
0
;
num_sdus
=
0
;
num_sdus
=
0
;
...
@@ -1391,10 +1394,13 @@ void ue_get_sdu(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subf
...
@@ -1391,10 +1394,13 @@ void ue_get_sdu(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subf
sdu_length_total
+=
sdu_lengths
[
num_sdus
];
sdu_length_total
+=
sdu_lengths
[
num_sdus
];
sdu_lcids
[
num_sdus
]
=
DCCH1
;
sdu_lcids
[
num_sdus
]
=
DCCH1
;
LOG_D
(
MAC
,
"[UE %d] TX Got %d bytes for DCCH1
\n
"
,
module_idP
,
sdu_lengths
[
num_sdus
]);
LOG_D
(
MAC
,
"[UE %d] TX Got %d bytes for DCCH1
\n
"
,
module_idP
,
sdu_lengths
[
num_sdus
]);
num_sdus
++
;
//update_bsr(module_idP, frameP, DCCH1);
//update_bsr(module_idP, frameP, DCCH1);
//dcch_header_len +=2; // include dcch1
//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_status
[
DCCH1
]
=
LCID_EMPTY
;
#if 0 //calvin for BSR test,current buffer greater then previous one, or buffer from 0 to !0
UE_mac_inst[module_idP].scheduling_info.LCID_buffer_remain[DCCH1] = rlc_status.bytes_in_buffer-sdu_lengths[num_sdus];
#endif
num_sdus
++
;
}
else
{
}
else
{
dcch1_header_len
=
0
;
dcch1_header_len
=
0
;
}
}
...
@@ -1449,6 +1455,9 @@ void ue_get_sdu(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subf
...
@@ -1449,6 +1455,9 @@ void ue_get_sdu(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subf
dtch_header_len
--
;
dtch_header_len
--
;
dtch_header_len_last
--
;
dtch_header_len_last
--
;
}
}
#if 0 //calvin for BSR test,current buffer greater then previous one, or buffer from 0 to !0
UE_mac_inst[module_idP].scheduling_info.LCID_buffer_remain[lcid] = rlc_status.bytes_in_buffer-sdu_lengths[num_sdus];
#endif
num_sdus
++
;
num_sdus
++
;
//UE_mac_inst[module_idP].ul_active = update_bsr(module_idP, frameP, eNB_index,lcid, UE_mac_inst[module_idP].scheduling_info.LCGID[lcid]);
//UE_mac_inst[module_idP].ul_active = update_bsr(module_idP, frameP, eNB_index,lcid, UE_mac_inst[module_idP].scheduling_info.LCGID[lcid]);
}
else
{
}
else
{
...
@@ -2077,7 +2086,11 @@ boolean_t update_bsr(module_id_t module_idP, frame_t frameP, eNB_index_t eNB_in
...
@@ -2077,7 +2086,11 @@ boolean_t update_bsr(module_id_t module_idP, frame_t frameP, eNB_index_t eNB_in
lcid
,
lcid
,
0
);
0
);
if
(
rlc_status
.
bytes_in_buffer
>
0
)
{
if
((
rlc_status
.
bytes_in_buffer
>
0
)
#if 0 //calvin for BSR test,current buffer greater then previous one, or buffer from 0 to !0
&& (rlc_status.bytes_in_buffer > UE_mac_inst[module_idP].scheduling_info.LCID_buffer_remain[lcid])
#endif
){
//BSR trigger SR
//BSR trigger SR
sr_pending
=
TRUE
;
sr_pending
=
TRUE
;
UE_mac_inst
[
module_idP
].
scheduling_info
.
LCID_status
[
lcid
]
=
LCID_NOT_EMPTY
;
UE_mac_inst
[
module_idP
].
scheduling_info
.
LCID_status
[
lcid
]
=
LCID_NOT_EMPTY
;
...
...
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