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
afde7f6c
Commit
afde7f6c
authored
Mar 25, 2024
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
improvements in precoding initialization at MAC
parent
8f858af8
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
75 additions
and
65 deletions
+75
-65
common/utils/nr/nr_common.c
common/utils/nr/nr_common.c
+0
-12
common/utils/nr/nr_common.h
common/utils/nr/nr_common.h
+0
-1
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+68
-39
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+6
-13
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+1
-0
No files found.
common/utils/nr/nr_common.c
View file @
afde7f6c
...
...
@@ -827,18 +827,6 @@ void get_samplerate_and_bw(int mu,
}
}
void
get_K1_K2
(
int
N1
,
int
N2
,
int
*
K1
,
int
*
K2
)
{
// num of allowed k1 and k2 according to 5.2.2.2.1-3 and -4 in 38.214
if
(
N2
==
N1
||
N1
==
2
)
*
K1
=
2
;
else
if
(
N2
==
1
)
*
K1
=
5
;
else
*
K1
=
3
;
*
K2
=
N2
>
1
?
2
:
1
;
}
// from start symbol index and nb or symbols to symbol occupation bitmap in a slot
uint16_t
SL_to_bitmap
(
int
startSymbolIndex
,
int
nrOfSymbols
)
{
return
((
1
<<
nrOfSymbols
)
-
1
)
<<
startSymbolIndex
;
...
...
common/utils/nr/nr_common.h
View file @
afde7f6c
...
...
@@ -188,7 +188,6 @@ int get_dmrs_port(int nl, uint16_t dmrs_ports);
uint16_t
SL_to_bitmap
(
int
startSymbolIndex
,
int
nrOfSymbols
);
int
get_nb_periods_per_frame
(
uint8_t
tdd_period
);
long
rrc_get_max_nr_csrs
(
const
int
max_rbs
,
long
b_SRS
);
void
get_K1_K2
(
int
N1
,
int
N2
,
int
*
K1
,
int
*
K2
);
bool
compare_relative_ul_channel_bw
(
int
nr_band
,
int
scs
,
int
nb_ul
,
frame_type_t
frame_type
);
int
get_supported_bw_mhz
(
frequency_range_t
frequency_range
,
int
bw_index
);
int
get_supported_band_index
(
int
scs
,
frequency_range_t
freq_range
,
int
n_rbs
);
...
...
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
afde7f6c
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
afde7f6c
...
...
@@ -223,21 +223,14 @@ uint16_t get_pm_index(const gNB_MAC_INST *nrmac,
int
k1
,
k2
;
get_k1_k2_indices
(
layers
,
N1
,
N2
,
i13
,
&
k1
,
&
k2
);
// get indices k1 and k2 for PHY matrix (not actual k1 and k2 values)
const
int
O2
=
N2
==
1
?
1
:
4
;
int
O1
=
4
;
//Horizontal beam oversampling = 4 for more than 2 antenna ports
int
max_i2
=
0
;
int
lay_index
=
0
;
if
(
layers
==
1
)
{
max_i2
=
4
;
// computing precoding matrix index according to rule set in allocation function init_codebook_gNB
lay_index
=
i2
+
(
i12
*
max_i2
)
+
(
i11
*
max_i2
*
N2
*
O2
);
}
else
{
max_i2
=
2
;
// num of allowed k1 and k2 according to 5.2.2.2.1-3 and -4 in 38.214
int
K1
,
K2
;
get_K1_K2
(
N1
,
N2
,
&
K1
,
&
K2
);
// computing precoding matrix index according to rule set in allocation function init_codebook_gNB
lay_index
=
i2
+
(
k2
*
max_i2
)
+
(
k1
*
max_i2
*
K2
)
+
(
i12
*
max_i2
*
K2
*
K1
)
+
(
i11
*
max_i2
*
K2
*
K1
*
N2
*
O2
);
}
max_i2
=
layers
==
1
?
4
:
2
;
int
K1
,
K2
;
get_K1_K2
(
N1
,
N2
,
&
K1
,
&
K2
,
layers
);
// computing precoding matrix index according to rule set in allocation function init_codebook_gNB
lay_index
=
i2
+
(
i11
*
max_i2
)
+
(
i12
*
max_i2
*
N1
*
O1
)
+
(
k1
*
max_i2
*
N1
*
O1
*
N2
*
O2
)
+
(
k2
*
max_i2
*
N1
*
O1
*
N2
*
O2
*
K1
);
return
1
+
prev_layers_size
+
lay_index
;
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
afde7f6c
...
...
@@ -36,6 +36,7 @@
#include "common/ngran_types.h"
void
set_cset_offset
(
uint16_t
);
void
get_K1_K2
(
int
N1
,
int
N2
,
int
*
K1
,
int
*
K2
,
int
layers
);
void
mac_top_init_gNB
(
ngran_node_t
node_type
,
NR_ServingCellConfigCommon_t
*
scc
,
...
...
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