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
spbro
OpenXG-RAN
Commits
1da7cada
Commit
1da7cada
authored
Jun 07, 2023
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
solution to L2 failure -> handling switch to 1_0
parent
8c2c8949
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
10 deletions
+16
-10
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+16
-10
No files found.
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
1da7cada
...
...
@@ -443,13 +443,14 @@ int nr_ue_process_dci_indication_pdu(module_id_t module_id,int cc_id, int gNB_in
LOG_D
(
MAC
,
"Received dci indication (rnti %x,dci format %d,n_CCE %d,payloadSize %d,payload %llx)
\n
"
,
dci
->
rnti
,
dci
->
dci_format
,
dci
->
n_CCE
,
dci
->
payloadSize
,
*
(
unsigned
long
long
*
)
dci
->
payloadBits
);
int8_t
ret
=
nr_extract_dci_info
(
mac
,
dci
->
dci_format
,
dci
->
payloadSize
,
dci
->
rnti
,
dci
->
ss_type
,
(
uint64_t
*
)
dci
->
payloadBits
,
def_dci_pdu_rel15
,
slot
);
if
((
ret
&
1
)
==
1
)
return
-
1
;
int
ret
=
nr_extract_dci_info
(
mac
,
dci
->
dci_format
,
dci
->
payloadSize
,
dci
->
rnti
,
dci
->
ss_type
,
(
uint64_t
*
)
dci
->
payloadBits
,
def_dci_pdu_rel15
,
slot
);
if
((
ret
&
1
)
==
1
)
return
-
1
;
else
if
(
ret
==
2
)
{
dci
->
dci_format
=
NR_UL_DCI_FORMAT_0_0
;
dci
->
dci_format
=
(
dci
->
dci_format
==
NR_UL_DCI_FORMAT_0_0
)
?
NR_DL_DCI_FORMAT_1_0
:
NR_UL_DCI_FORMAT_0_0
;
def_dci_pdu_rel15
=
&
mac
->
def_dci_pdu_rel15
[
slot
][
dci
->
dci_format
];
}
int
8_t
ret_proc
=
nr_ue_process_dci
(
module_id
,
cc_id
,
gNB_index
,
frame
,
slot
,
def_dci_pdu_rel15
,
dci
);
int
ret_proc
=
nr_ue_process_dci
(
module_id
,
cc_id
,
gNB_index
,
frame
,
slot
,
def_dci_pdu_rel15
,
dci
);
return
ret_proc
;
}
...
...
@@ -2849,7 +2850,7 @@ static uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
dci_pdu_rel15_t
*
dci_pdu_rel15
,
int
slot
)
{
LOG_D
(
MAC
,
"nr_extract_dci_info : dci_pdu %lx, size %d, format %d
\n
"
,
*
dci_pdu
,
dci_size
,
dci_format
);
int
pos
=
0
;
int
fsize
=
0
;
int
rnti_type
=
get_rnti_type
(
mac
,
rnti
);
...
...
@@ -2866,7 +2867,7 @@ static uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
current_DL_BWP
->
initial_BWPSize
);
else
N_RB
=
mac
->
type0_PDCCH_CSS_config
.
num_rbs
;
LOG_D
(
MAC
,
"nr_extract_dci_info : dci_pdu %lx, size %d
\n
"
,
*
dci_pdu
,
dci_size
);
switch
(
dci_format
)
{
case
NR_DL_DCI_FORMAT_1_0
:
...
...
@@ -2916,7 +2917,7 @@ static uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
//switch to DCI_0_0
if
(
dci_pdu_rel15
->
format_indicator
==
0
)
{
dci_pdu_rel15
=
&
mac
->
def_dci_pdu_rel15
[
slot
][
NR_UL_DCI_FORMAT_0_0
];
return
2
+
nr_extract_dci_info
(
mac
,
NR_UL_DCI_FORMAT_0_0
,
dci_size
,
rnti
,
ss_type
,
dci_pdu
,
dci_pdu_rel15
,
slot
);
return
2
+
nr_extract_dci_info
(
mac
,
NR_UL_DCI_FORMAT_0_0
,
dci_size
,
rnti
,
ss_type
,
dci_pdu
,
dci_pdu_rel15
,
slot
);
}
#ifdef DEBUG_EXTRACT_DCI
LOG_D
(
MAC
,
"Format indicator %d (%d bits) N_RB_BWP %d => %d (0x%lx)
\n
"
,
dci_pdu_rel15
->
format_indicator
,
1
,
N_RB
,
dci_size
-
pos
,
*
dci_pdu
);
...
...
@@ -3107,7 +3108,7 @@ static uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
//switch to DCI_0_0
if
(
dci_pdu_rel15
->
format_indicator
==
0
)
{
dci_pdu_rel15
=
&
mac
->
def_dci_pdu_rel15
[
slot
][
NR_UL_DCI_FORMAT_0_0
];
return
2
+
nr_extract_dci_info
(
mac
,
NR_UL_DCI_FORMAT_0_0
,
dci_size
,
rnti
,
ss_type
,
dci_pdu
,
dci_pdu_rel15
,
slot
);
return
2
+
nr_extract_dci_info
(
mac
,
NR_UL_DCI_FORMAT_0_0
,
dci_size
,
rnti
,
ss_type
,
dci_pdu
,
dci_pdu_rel15
,
slot
);
}
// Freq domain assignment 0-16 bit
...
...
@@ -3248,8 +3249,13 @@ static uint8_t nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
#ifdef DEBUG_EXTRACT_DCI
LOG_I
(
MAC
,
"Format indicator %d (%d bits)=> %d (0x%lx)
\n
"
,
dci_pdu_rel15
->
format_indicator
,
1
,
dci_size
-
pos
,
*
dci_pdu
);
#endif
if
(
dci_pdu_rel15
->
format_indicator
==
1
)
return
1
;
// discard dci, format indicator not corresponding to dci_format
//switch to DCI_1_0
if
(
dci_pdu_rel15
->
format_indicator
==
1
)
{
dci_pdu_rel15
=
&
mac
->
def_dci_pdu_rel15
[
slot
][
NR_DL_DCI_FORMAT_1_0
];
return
2
+
nr_extract_dci_info
(
mac
,
NR_DL_DCI_FORMAT_1_0
,
dci_size
,
rnti
,
ss_type
,
dci_pdu
,
dci_pdu_rel15
,
slot
);
}
fsize
=
dci_pdu_rel15
->
frequency_domain_assignment
.
nbits
;
pos
+=
fsize
;
dci_pdu_rel15
->
frequency_domain_assignment
.
val
=
(
*
dci_pdu
>>
(
dci_size
-
pos
))
&
((
1
<<
fsize
)
-
1
);
...
...
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