Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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 UE
Commits
fd5bdf2b
Commit
fd5bdf2b
authored
Mar 09, 2021
by
rmagueta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add back-off indicator subheader to Msg2
parent
7f05a513
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
31 additions
and
10 deletions
+31
-10
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+11
-6
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+20
-4
No files found.
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
fd5bdf2b
...
...
@@ -2266,27 +2266,32 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_t
NR_MAC_RAR
*
rar
=
(
NR_MAC_RAR
*
)
(
dlsch_buffer
+
1
);
// RAR subPDU pointer
uint8_t
preamble_index
=
get_ra_PreambleIndex
(
mod_id
,
cc_id
,
gNB_id
);
//prach_resources->ra_PreambleIndex;
LOG_D
(
MAC
,
"In %s:[%d.%d]: [UE %d][RAPROC] invoking MAC for received RAR (current preamble %d)
\n
"
,
__FUNCTION__
,
frame
,
slot
,
mod_id
,
preamble_index
);
LOG_D
(
NR_
MAC
,
"In %s:[%d.%d]: [UE %d][RAPROC] invoking MAC for received RAR (current preamble %d)
\n
"
,
__FUNCTION__
,
frame
,
slot
,
mod_id
,
preamble_index
);
while
(
1
)
{
n_subheaders
++
;
if
(
rarh
->
T
==
1
)
{
n_subPDUs
++
;
LOG_
D
(
MAC
,
"[UE %d][RAPROC] Got RAPID RAR subPDU
\n
"
,
mod_id
);
LOG_
I
(
NR_
MAC
,
"[UE %d][RAPROC] Got RAPID RAR subPDU
\n
"
,
mod_id
);
}
else
{
n_subPDUs
++
;
ra
->
RA_backoff_indicator
=
table_7_2_1
[((
NR_RA_HEADER_BI
*
)
rarh
)
->
BI
];
ra
->
RA_BI_found
=
1
;
LOG_D
(
MAC
,
"[UE %d][RAPROC] Got BI RAR subPDU %d
\n
"
,
mod_id
,
ra
->
RA_backoff_indicator
);
LOG_I
(
NR_MAC
,
"[UE %d][RAPROC] Got BI RAR subPDU %d ms
\n
"
,
mod_id
,
ra
->
RA_backoff_indicator
);
if
(
((
NR_RA_HEADER_BI
*
)
rarh
)
->
E
==
1
)
{
rarh
+=
sizeof
(
NR_RA_HEADER_BI
);
continue
;
}
else
{
break
;
}
}
if
(
rarh
->
RAPID
==
preamble_index
)
{
LOG_I
(
MAC
,
"[UE %d][RAPROC][%d.%d] Found RAR with the intended RAPID %d
\n
"
,
mod_id
,
frame
,
slot
,
rarh
->
RAPID
);
LOG_I
(
NR_
MAC
,
"[UE %d][RAPROC][%d.%d] Found RAR with the intended RAPID %d
\n
"
,
mod_id
,
frame
,
slot
,
rarh
->
RAPID
);
rar
=
(
NR_MAC_RAR
*
)
(
dlsch_buffer
+
n_subheaders
+
(
n_subPDUs
-
1
)
*
sizeof
(
NR_MAC_RAR
));
ra
->
RA_RAPID_found
=
1
;
break
;
}
if
(
rarh
->
E
==
0
)
{
LOG_W
(
PHY
,
"[UE %d][RAPROC] Received RAR preamble (%d) doesn't match the intended RAPID...
\n
"
,
mod_id
,
preamble_index
);
LOG_W
(
NR_MAC
,
"[UE %d][RAPROC] Received RAR preamble (%d) doesn't match the intended RAPID (%d)
\n
"
,
mod_id
,
rarh
->
RAPID
,
preamble_index
);
break
;
}
else
{
rarh
+=
sizeof
(
NR_MAC_RAR
)
+
1
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
fd5bdf2b
...
...
@@ -835,7 +835,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
uint8_t
time_domain_assignment
=
3
;
uint8_t
mcsIndex
=
0
;
int
rbStart
=
0
;
int
rbSize
=
6
;
int
rbSize
=
8
;
if
(
nr_mac
->
sched_ctrlCommon
==
NULL
){
nr_mac
->
sched_ctrlCommon
=
calloc
(
1
,
sizeof
(
*
nr_mac
->
sched_ctrlCommon
));
...
...
@@ -1043,7 +1043,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
tx_req
->
PDU_length
=
pdsch_pdu_rel15
->
TBSize
[
0
];
tx_req
->
PDU_index
=
pduindex
;
tx_req
->
num_TLV
=
1
;
tx_req
->
TLVs
[
0
].
length
=
8
;
tx_req
->
TLVs
[
0
].
length
=
tx_req
->
PDU_length
+
2
;
nr_mac
->
TX_req
[
CC_id
].
SFN
=
frameP
;
nr_mac
->
TX_req
[
CC_id
].
Number_of_PDUs
++
;
nr_mac
->
TX_req
[
CC_id
].
Slot
=
slotP
;
...
...
@@ -1371,8 +1371,9 @@ void nr_fill_rar(uint8_t Mod_idP,
nfapi_nr_pusch_pdu_t
*
pusch_pdu
){
LOG_I
(
MAC
,
"[gNB] Generate RAR MAC PDU frame %d slot %d preamble index %u TA command %d
\n
"
,
ra
->
Msg2_frame
,
ra
->
Msg2_slot
,
ra
->
preamble_index
,
ra
->
timing_offset
);
NR_RA_HEADER_RAPID
*
rarh
=
(
NR_RA_HEADER_RAPID
*
)
dlsch_buffer
;
NR_MAC_RAR
*
rar
=
(
NR_MAC_RAR
*
)
(
dlsch_buffer
+
1
);
NR_RA_HEADER_BI
*
rarbi
=
(
NR_RA_HEADER_BI
*
)
dlsch_buffer
;
NR_RA_HEADER_RAPID
*
rarh
=
(
NR_RA_HEADER_RAPID
*
)
(
dlsch_buffer
+
1
);
NR_MAC_RAR
*
rar
=
(
NR_MAC_RAR
*
)
(
dlsch_buffer
+
2
);
unsigned
char
csi_req
=
0
,
tpc_command
;
//uint8_t N_UL_Hop;
uint8_t
valid_bits
;
...
...
@@ -1381,6 +1382,16 @@ void nr_fill_rar(uint8_t Mod_idP,
tpc_command
=
3
;
// this is 0 dB
/// E/T/R/R/BI subheader ///
// E = 1, MAC PDU includes another MAC sub-PDU (RAPID)
// T = 0, Back-off indicator subheader
// R = 2, Reserved
// BI = 0, 5ms
rarbi
->
E
=
1
;
rarbi
->
T
=
0
;
rarbi
->
R
=
0
;
rarbi
->
BI
=
0
;
/// E/T/RAPID subheader ///
// E = 0, one only RAR, first and last
// T = 1, RAPID
...
...
@@ -1428,6 +1439,11 @@ void nr_fill_rar(uint8_t Mod_idP,
rar
->
UL_GRANT_4
=
(
uint8_t
)
ul_grant
&
0xff
;
// FIXME: To be removed
//LOG_I(NR_MAC, "rarbi->E = 0x%x\n", rarbi->E);
//LOG_I(NR_MAC, "rarbi->T = 0x%x\n", rarbi->T);
//LOG_I(NR_MAC, "rarbi->R = 0x%x\n", rarbi->R);
//LOG_I(NR_MAC, "rarbi->BI = 0x%x\n", rarbi->BI);
LOG_I
(
NR_MAC
,
"rarh->E = 0x%x
\n
"
,
rarh
->
E
);
LOG_I
(
NR_MAC
,
"rarh->T = 0x%x
\n
"
,
rarh
->
T
);
LOG_I
(
NR_MAC
,
"rarh->RAPID = 0x%x (%i)
\n
"
,
rarh
->
RAPID
,
rarh
->
RAPID
);
...
...
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