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
e6c13fa9
Commit
e6c13fa9
authored
Jun 30, 2023
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop-FR2-bugfix' into integration_2023_w26
parents
70270250
dcae67c3
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
13 additions
and
19 deletions
+13
-19
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
+1
-7
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+11
-11
openair2/LAYER2/NR_MAC_UE/mac_defs.h
openair2/LAYER2/NR_MAC_UE/mac_defs.h
+1
-1
No files found.
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
View file @
e6c13fa9
...
@@ -483,19 +483,13 @@ typedef enum nr_ssb_and_cset_mux_pattern_type_e {
...
@@ -483,19 +483,13 @@ typedef enum nr_ssb_and_cset_mux_pattern_type_e {
NR_SSB_AND_CSET_MUX_PATTERN_TYPE3
NR_SSB_AND_CSET_MUX_PATTERN_TYPE3
}
nr_ssb_and_cset_mux_pattern_type_t
;
}
nr_ssb_and_cset_mux_pattern_type_t
;
typedef
enum
{
SFN_C_MOD_2_EQ_0
,
SFN_C_MOD_2_EQ_1
,
SFN_C_IMPOSSIBLE
}
SFN_C_TYPE
;
typedef
struct
Type0_PDCCH_CSS_config_s
{
typedef
struct
Type0_PDCCH_CSS_config_s
{
int32_t
num_rbs
;
int32_t
num_rbs
;
int32_t
num_symbols
;
int32_t
num_symbols
;
int32_t
rb_offset
;
// Offset from SSB RB0
int32_t
rb_offset
;
// Offset from SSB RB0
uint32_t
type0_pdcch_ss_mux_pattern
;
uint32_t
type0_pdcch_ss_mux_pattern
;
uint16_t
frame
;
uint16_t
frame
;
SFN_C_TYPE
sfn_c
;
int
sfn_c
;
uint32_t
n_c
;
uint32_t
n_c
;
uint32_t
n_0
;
uint32_t
n_0
;
uint32_t
number_of_search_space_per_slot
;
uint32_t
number_of_search_space_per_slot
;
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
View file @
e6c13fa9
...
@@ -164,12 +164,12 @@ const int32_t table_38213_13_10_c4[16] = { 0, 8, 0, 8,-41, 25,-41, 49, reserv
...
@@ -164,12 +164,12 @@ const int32_t table_38213_13_10_c4[16] = { 0, 8, 0, 8,-41, 25,-41, 49, reserv
const
float
table_38213_13_11_c1
[
16
]
=
{
0
,
0
,
2
,
2
,
5
,
5
,
7
,
7
,
0
,
5
,
0
,
0
,
2
,
2
,
5
,
5
};
// O
const
float
table_38213_13_11_c1
[
16
]
=
{
0
,
0
,
2
,
2
,
5
,
5
,
7
,
7
,
0
,
5
,
0
,
0
,
2
,
2
,
5
,
5
};
// O
const
int32_t
table_38213_13_11_c2
[
16
]
=
{
1
,
2
,
1
,
2
,
1
,
2
,
1
,
2
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
};
const
int32_t
table_38213_13_11_c2
[
16
]
=
{
1
,
2
,
1
,
2
,
1
,
2
,
1
,
2
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
};
const
float
table_38213_13_11_c3
[
16
]
=
{
1
,
0
.
5
f
,
1
,
0
.
5
f
,
1
,
0
.
5
f
,
1
,
0
.
5
f
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
};
// M
const
float
table_38213_13_11_c3
[
16
]
=
{
1
,
0
.
5
f
,
1
,
0
.
5
f
,
1
,
0
.
5
f
,
1
,
0
.
5
f
,
2
,
2
,
1
,
1
,
1
,
1
,
1
,
1
};
// M
const
int32_t
table_38213_13_11_c4
[
16
]
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
2
,
1
,
2
,
1
,
2
};
// i is even as default
const
int32_t
table_38213_13_11_c4
[
16
]
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
2
,
1
,
2
,
1
,
2
};
// i is even as default
const
float
table_38213_13_12_c1
[
16
]
=
{
0
,
0
,
2
.
5
f
,
2
.
5
f
,
5
,
5
,
0
,
2
.
5
f
,
5
,
7
.
5
f
,
7
.
5
f
,
7
.
5
f
,
0
,
5
,
reserved
,
reserved
};
// O, index 14-15 reserved
const
float
table_38213_13_12_c1
[
16
]
=
{
0
,
0
,
2
.
5
f
,
2
.
5
f
,
5
,
5
,
0
,
2
.
5
f
,
5
,
7
.
5
f
,
7
.
5
f
,
7
.
5
f
,
0
,
5
,
reserved
,
reserved
};
// O, index 14-15 reserved
const
int32_t
table_38213_13_12_c2
[
16
]
=
{
1
,
2
,
1
,
2
,
1
,
2
,
2
,
2
,
2
,
1
,
2
,
2
,
1
,
1
,
reserved
,
reserved
};
// index 14-15 reserved
const
int32_t
table_38213_13_12_c2
[
16
]
=
{
1
,
2
,
1
,
2
,
1
,
2
,
2
,
2
,
2
,
1
,
2
,
2
,
1
,
1
,
reserved
,
reserved
};
// index 14-15 reserved
const
float
table_38213_13_12_c3
[
16
]
=
{
1
,
0
.
5
f
,
1
,
0
.
5
f
,
1
,
0
.
5
f
,
0
.
5
f
,
0
.
5
f
,
0
.
5
f
,
1
,
0
.
5
f
,
0
.
5
f
,
1
,
1
,
reserved
,
reserved
};
// M, index 14-15 reserved
const
float
table_38213_13_12_c3
[
16
]
=
{
1
,
0
.
5
f
,
1
,
0
.
5
f
,
1
,
0
.
5
f
,
0
.
5
f
,
0
.
5
f
,
0
.
5
f
,
1
,
0
.
5
f
,
0
.
5
f
,
2
,
2
,
reserved
,
reserved
};
// M, index 14-15 reserved
const
int32_t
table_38213_10_1_1_c2
[
5
]
=
{
0
,
0
,
4
,
2
,
1
};
const
int32_t
table_38213_10_1_1_c2
[
5
]
=
{
0
,
0
,
4
,
2
,
1
};
...
@@ -4301,7 +4301,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
...
@@ -4301,7 +4301,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
// type0-pdcch search space
// type0-pdcch search space
float
big_o
=
0
.
0
f
;
float
big_o
=
0
.
0
f
;
float
big_m
=
0
.
0
f
;
float
big_m
=
0
.
0
f
;
type0_PDCCH_CSS_config
->
sfn_c
=
SFN_C_IMPOSSIBLE
;
// only valid for mux=1
type0_PDCCH_CSS_config
->
sfn_c
=
-
1
;
// only valid for mux=1
type0_PDCCH_CSS_config
->
n_c
=
UINT_MAX
;
type0_PDCCH_CSS_config
->
n_c
=
UINT_MAX
;
type0_PDCCH_CSS_config
->
number_of_search_space_per_slot
=
UINT_MAX
;
type0_PDCCH_CSS_config
->
number_of_search_space_per_slot
=
UINT_MAX
;
type0_PDCCH_CSS_config
->
first_symbol_index
=
UINT_MAX
;
type0_PDCCH_CSS_config
->
first_symbol_index
=
UINT_MAX
;
...
@@ -4316,11 +4316,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
...
@@ -4316,11 +4316,7 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
uint32_t
temp
=
(
uint32_t
)(
big_o
*
(
1
<<
scs_pdcch
))
+
(
uint32_t
)(
type0_PDCCH_CSS_config
->
ssb_index
*
big_m
);
uint32_t
temp
=
(
uint32_t
)(
big_o
*
(
1
<<
scs_pdcch
))
+
(
uint32_t
)(
type0_PDCCH_CSS_config
->
ssb_index
*
big_m
);
type0_PDCCH_CSS_config
->
n_c
=
temp
/
num_slot_per_frame
;
type0_PDCCH_CSS_config
->
n_c
=
temp
/
num_slot_per_frame
;
if
((
temp
/
num_slot_per_frame
)
&
0x1
){
type0_PDCCH_CSS_config
->
sfn_c
=
type0_PDCCH_CSS_config
->
n_c
%
2
;
type0_PDCCH_CSS_config
->
sfn_c
=
SFN_C_MOD_2_EQ_1
;
}
else
{
type0_PDCCH_CSS_config
->
sfn_c
=
SFN_C_MOD_2_EQ_0
;
}
if
((
index_4lsb
==
1
||
index_4lsb
==
3
||
index_4lsb
==
5
||
index_4lsb
==
7
)
&&
(
type0_PDCCH_CSS_config
->
ssb_index
&
1
)){
if
((
index_4lsb
==
1
||
index_4lsb
==
3
||
index_4lsb
==
5
||
index_4lsb
==
7
)
&&
(
type0_PDCCH_CSS_config
->
ssb_index
&
1
)){
type0_PDCCH_CSS_config
->
first_symbol_index
=
type0_PDCCH_CSS_config
->
num_symbols
;
type0_PDCCH_CSS_config
->
first_symbol_index
=
type0_PDCCH_CSS_config
->
num_symbols
;
...
@@ -4335,9 +4331,13 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
...
@@ -4335,9 +4331,13 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
if
(
type0_PDCCH_CSS_config
->
type0_pdcch_ss_mux_pattern
==
1
&&
frequency_range
==
FR2
){
if
(
type0_PDCCH_CSS_config
->
type0_pdcch_ss_mux_pattern
==
1
&&
frequency_range
==
FR2
){
big_o
=
table_38213_13_12_c1
[
index_4lsb
];
big_o
=
table_38213_13_12_c1
[
index_4lsb
];
type0_PDCCH_CSS_config
->
number_of_search_space_per_slot
=
table_38213_13_1
1
_c2
[
index_4lsb
];
type0_PDCCH_CSS_config
->
number_of_search_space_per_slot
=
table_38213_13_1
2
_c2
[
index_4lsb
];
big_m
=
table_38213_13_12_c3
[
index_4lsb
];
big_m
=
table_38213_13_12_c3
[
index_4lsb
];
uint32_t
temp
=
(
uint32_t
)(
big_o
*
(
1
<<
scs_pdcch
))
+
(
uint32_t
)(
type0_PDCCH_CSS_config
->
ssb_index
*
big_m
);
type0_PDCCH_CSS_config
->
n_c
=
temp
/
num_slot_per_frame
;
type0_PDCCH_CSS_config
->
sfn_c
=
type0_PDCCH_CSS_config
->
n_c
%
2
;
if
((
index_4lsb
==
1
||
index_4lsb
==
3
||
index_4lsb
==
5
||
index_4lsb
==
10
)
&&
(
type0_PDCCH_CSS_config
->
ssb_index
&
1
)){
if
((
index_4lsb
==
1
||
index_4lsb
==
3
||
index_4lsb
==
5
||
index_4lsb
==
10
)
&&
(
type0_PDCCH_CSS_config
->
ssb_index
&
1
)){
type0_PDCCH_CSS_config
->
first_symbol_index
=
7
;
type0_PDCCH_CSS_config
->
first_symbol_index
=
7
;
}
else
if
((
index_4lsb
==
6
||
index_4lsb
==
7
||
index_4lsb
==
8
||
index_4lsb
==
11
)
&&
(
type0_PDCCH_CSS_config
->
ssb_index
&
1
)){
}
else
if
((
index_4lsb
==
6
||
index_4lsb
==
7
||
index_4lsb
==
8
||
index_4lsb
==
11
)
&&
(
type0_PDCCH_CSS_config
->
ssb_index
&
1
)){
...
@@ -4461,8 +4461,8 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
...
@@ -4461,8 +4461,8 @@ void get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PD
// AssertFatal(first_symbol_index!=UINT_MAX,"");
// AssertFatal(first_symbol_index!=UINT_MAX,"");
// mac->type0_pdcch_dci_config.monitoring_symbols_within_slot = (0x3fff << first_symbol_index) & (0x3fff >> (14-coreset_duration-first_symbol_index)) & 0x3fff;
// mac->type0_pdcch_dci_config.monitoring_symbols_within_slot = (0x3fff << first_symbol_index) & (0x3fff >> (14-coreset_duration-first_symbol_index)) & 0x3fff;
AssertFatal
(
type0_PDCCH_CSS_config
->
sfn_c
!=
SFN_C_IMPOSSIBLE
,
""
);
AssertFatal
(
type0_PDCCH_CSS_config
->
sfn_c
>=
0
,
""
);
AssertFatal
(
type0_PDCCH_CSS_config
->
n_c
!=
UINT_MAX
,
""
);
AssertFatal
(
type0_PDCCH_CSS_config
->
n_c
!=
UINT_MAX
,
""
);
type0_PDCCH_CSS_config
->
n_0
=
((
uint32_t
)(
big_o
*
(
1
<<
scs_pdcch
))
+
(
uint32_t
)(
type0_PDCCH_CSS_config
->
ssb_index
*
big_m
))
%
num_slot_per_frame
;
type0_PDCCH_CSS_config
->
n_0
=
((
uint32_t
)(
big_o
*
(
1
<<
scs_pdcch
))
+
(
uint32_t
)(
type0_PDCCH_CSS_config
->
ssb_index
*
big_m
))
%
num_slot_per_frame
;
type0_PDCCH_CSS_config
->
cset_start_rb
=
ssb_offset_point_a
-
type0_PDCCH_CSS_config
->
rb_offset
;
type0_PDCCH_CSS_config
->
cset_start_rb
=
ssb_offset_point_a
-
type0_PDCCH_CSS_config
->
rb_offset
;
...
...
openair2/LAYER2/NR_MAC_UE/mac_defs.h
View file @
e6c13fa9
...
@@ -420,7 +420,7 @@ typedef struct {
...
@@ -420,7 +420,7 @@ typedef struct {
/// Type0-PDCCH seach space
/// Type0-PDCCH seach space
fapi_nr_dl_config_dci_dl_pdu_rel15_t
type0_pdcch_dci_config
;
fapi_nr_dl_config_dci_dl_pdu_rel15_t
type0_pdcch_dci_config
;
uint32_t
type0_pdcch_ss_mux_pattern
;
uint32_t
type0_pdcch_ss_mux_pattern
;
SFN_C_TYPE
type0_pdcch_ss_sfn_c
;
int
type0_pdcch_ss_sfn_c
;
uint32_t
type0_pdcch_ss_n_c
;
uint32_t
type0_pdcch_ss_n_c
;
uint32_t
type0_pdcch_consecutive_slots
;
uint32_t
type0_pdcch_consecutive_slots
;
...
...
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