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
zzha zzha
OpenXG-RAN
Commits
7be1952c
Commit
7be1952c
authored
Mar 09, 2021
by
rmagueta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add back-off indicator subheader to Msg2
parent
e5ee5196
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 @
7be1952c
...
...
@@ -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 @
7be1952c
...
...
@@ -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