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
Michael Black
OpenXG UE
Commits
38ded2db
Commit
38ded2db
authored
5 years ago
by
Francesco Mani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
taking into account raster step size in nrarfcn functions
parent
4090702a
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
91 additions
and
52 deletions
+91
-52
openair1/PHY/defs_nr_common.h
openair1/PHY/defs_nr_common.h
+1
-0
openair2/LAYER2/NR_MAC_UE/config_ue.c
openair2/LAYER2/NR_MAC_UE/config_ue.c
+2
-0
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+2
-0
openair2/LAYER2/NR_MAC_gNB/nr_mac_common.c
openair2/LAYER2/NR_MAC_gNB/nr_mac_common.c
+84
-50
openair2/LAYER2/NR_MAC_gNB/nr_mac_common.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_common.h
+2
-2
No files found.
openair1/PHY/defs_nr_common.h
View file @
38ded2db
...
...
@@ -352,6 +352,7 @@ typedef struct nr_bandentry_s {
uint64_t
dl_max
;
uint64_t
step_size
;
uint64_t
N_OFFs_DL
;
uint8_t
deltaf_raster
;
}
nr_bandentry_t
;
typedef
struct
nr_band_info_s
{
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_UE/config_ue.c
View file @
38ded2db
...
...
@@ -163,6 +163,7 @@ void config_common_ue(NR_UE_MAC_INST_t *mac,
*
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
]);
cfg
->
carrier_config
.
dl_frequency
=
from_nrarfcn
(
*
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
],
*
scc
->
ssbSubcarrierSpacing
,
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
)
/
1000
;
// freq in kHz
for
(
i
=
0
;
i
<
5
;
i
++
)
{
...
...
@@ -187,6 +188,7 @@ void config_common_ue(NR_UE_MAC_INST_t *mac,
UL_pointA
=
*
scc
->
uplinkConfigCommon
->
frequencyInfoUL
->
absoluteFrequencyPointA
;
cfg
->
carrier_config
.
uplink_frequency
=
from_nrarfcn
(
*
scc
->
uplinkConfigCommon
->
frequencyInfoUL
->
frequencyBandList
->
list
.
array
[
0
],
*
scc
->
ssbSubcarrierSpacing
,
UL_pointA
)
/
1000
;
// freq in kHz
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
38ded2db
...
...
@@ -68,6 +68,7 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
LOG_I
(
PHY
,
"%s() dl_BandwidthP:%d
\n
"
,
__FUNCTION__
,
cfg
->
carrier_config
.
dl_bandwidth
.
value
);
cfg
->
carrier_config
.
dl_frequency
.
value
=
from_nrarfcn
(
*
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
],
*
scc
->
ssbSubcarrierSpacing
,
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
)
/
1000
;
// freq in kHz
cfg
->
carrier_config
.
dl_frequency
.
tl
.
tag
=
NFAPI_NR_CONFIG_DL_FREQUENCY_TAG
;
cfg
->
num_tlv
++
;
...
...
@@ -101,6 +102,7 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
UL_pointA
=
*
scc
->
uplinkConfigCommon
->
frequencyInfoUL
->
absoluteFrequencyPointA
;
cfg
->
carrier_config
.
uplink_frequency
.
value
=
from_nrarfcn
(
*
scc
->
uplinkConfigCommon
->
frequencyInfoUL
->
frequencyBandList
->
list
.
array
[
0
],
*
scc
->
ssbSubcarrierSpacing
,
UL_pointA
)
/
1000
;
// freq in kHz
cfg
->
carrier_config
.
uplink_frequency
.
tl
.
tag
=
NFAPI_NR_CONFIG_UPLINK_FREQUENCY_TAG
;
cfg
->
num_tlv
++
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/nr_mac_common.c
View file @
38ded2db
...
...
@@ -33,42 +33,50 @@
#include "LAYER2/NR_MAC_gNB/mac_proto.h"
nr_bandentry_t
nr_bandtable
[]
=
{
{
1
,
1920000
,
1980000
,
2110000
,
2170000
,
20
,
422000
},
{
2
,
1850000
,
1910000
,
1930000
,
1990000
,
20
,
386000
},
{
3
,
1710000
,
1785000
,
1805000
,
1880000
,
20
,
361000
},
{
5
,
824000
,
849000
,
869000
,
894000
,
20
,
173800
},
{
7
,
2500000
,
2570000
,
2620000
,
2690000
,
20
,
524000
},
{
8
,
880000
,
915000
,
925000
,
960000
,
20
,
185000
},
{
12
,
698000
,
716000
,
728000
,
746000
,
20
,
145800
},
{
20
,
832000
,
862000
,
791000
,
821000
,
20
,
158200
},
{
25
,
1850000
,
1915000
,
1930000
,
1995000
,
20
,
386000
},
{
28
,
703000
,
758000
,
758000
,
813000
,
20
,
151600
},
{
34
,
2010000
,
2025000
,
2010000
,
2025000
,
20
,
402000
},
{
38
,
2570000
,
2620000
,
2570000
,
2630000
,
20
,
514000
},
{
39
,
1880000
,
1920000
,
1880000
,
1920000
,
20
,
376000
},
{
40
,
2300000
,
2400000
,
2300000
,
2400000
,
20
,
460000
},
{
41
,
2496000
,
2690000
,
2496000
,
2690000
,
3
,
499200
},
{
50
,
1432000
,
1517000
,
1432000
,
1517000
,
20
,
286400
},
{
51
,
1427000
,
1432000
,
1427000
,
1432000
,
20
,
285400
},
{
66
,
1710000
,
1780000
,
2110000
,
2200000
,
20
,
422000
},
{
70
,
1695000
,
1710000
,
1995000
,
2020000
,
20
,
399000
},
{
71
,
663000
,
698000
,
617000
,
652000
,
20
,
123400
},
{
74
,
1427000
,
1470000
,
1475000
,
1518000
,
20
,
295000
},
{
75
,
000
,
000
,
1432000
,
1517000
,
20
,
286400
},
{
76
,
000
,
000
,
1427000
,
1432000
,
20
,
285400
},
{
77
,
3300000
,
4200000
,
3300000
,
4200000
,
1
,
620000
},
{
78
,
3300000
,
3800000
,
3300000
,
3800000
,
1
,
620000
},
{
79
,
4400000
,
5000000
,
4400000
,
5000000
,
2
,
693334
},
{
80
,
1710000
,
1785000
,
000
,
000
,
20
,
342000
},
{
81
,
860000
,
915000
,
000
,
000
,
20
,
176000
},
{
82
,
832000
,
862000
,
000
,
000
,
20
,
166400
},
{
83
,
703000
,
748000
,
000
,
000
,
20
,
140600
},
{
84
,
1920000
,
1980000
,
000
,
000
,
20
,
384000
},
{
86
,
1710000
,
1785000
,
000
,
000
,
20
,
342000
},
{
257
,
26500000
,
29500000
,
26500000
,
29500000
,
1
,
2054167
},
{
258
,
24250000
,
27500000
,
24250000
,
27500000
,
1
,
2016667
},
{
260
,
37000000
,
40000000
,
37000000
,
40000000
,
1
,
2229167
},
{
261
,
27500000
,
28350000
,
27500000
,
28350000
,
1
,
2070833
}
{
1
,
1920000
,
1980000
,
2110000
,
2170000
,
20
,
422000
,
100
},
{
2
,
1850000
,
1910000
,
1930000
,
1990000
,
20
,
386000
,
100
},
{
3
,
1710000
,
1785000
,
1805000
,
1880000
,
20
,
361000
,
100
},
{
5
,
824000
,
849000
,
869000
,
894000
,
20
,
173800
,
100
},
{
7
,
2500000
,
2570000
,
2620000
,
2690000
,
20
,
524000
,
100
},
{
8
,
880000
,
915000
,
925000
,
960000
,
20
,
185000
,
100
},
{
12
,
698000
,
716000
,
728000
,
746000
,
20
,
145800
,
100
},
{
20
,
832000
,
862000
,
791000
,
821000
,
20
,
158200
,
100
},
{
25
,
1850000
,
1915000
,
1930000
,
1995000
,
20
,
386000
,
100
},
{
28
,
703000
,
758000
,
758000
,
813000
,
20
,
151600
,
100
},
{
34
,
2010000
,
2025000
,
2010000
,
2025000
,
20
,
402000
,
100
},
{
38
,
2570000
,
2620000
,
2570000
,
2630000
,
20
,
514000
,
100
},
{
39
,
1880000
,
1920000
,
1880000
,
1920000
,
20
,
376000
,
100
},
{
40
,
2300000
,
2400000
,
2300000
,
2400000
,
20
,
460000
,
100
},
{
41
,
2496000
,
2690000
,
2496000
,
2690000
,
3
,
499200
,
15
},
{
41
,
2496000
,
2690000
,
2496000
,
2690000
,
6
,
499200
,
30
},
{
50
,
1432000
,
1517000
,
1432000
,
1517000
,
20
,
286400
,
100
},
{
51
,
1427000
,
1432000
,
1427000
,
1432000
,
20
,
285400
,
100
},
{
66
,
1710000
,
1780000
,
2110000
,
2200000
,
20
,
422000
,
100
},
{
70
,
1695000
,
1710000
,
1995000
,
2020000
,
20
,
399000
,
100
},
{
71
,
663000
,
698000
,
617000
,
652000
,
20
,
123400
,
100
},
{
74
,
1427000
,
1470000
,
1475000
,
1518000
,
20
,
295000
,
100
},
{
75
,
000
,
000
,
1432000
,
1517000
,
20
,
286400
,
100
},
{
76
,
000
,
000
,
1427000
,
1432000
,
20
,
285400
,
100
},
{
77
,
3300000
,
4200000
,
3300000
,
4200000
,
1
,
620000
,
15
},
{
77
,
3300000
,
4200000
,
3300000
,
4200000
,
2
,
620000
,
30
},
{
78
,
3300000
,
3800000
,
3300000
,
3800000
,
1
,
620000
,
15
},
{
78
,
3300000
,
3800000
,
3300000
,
3800000
,
2
,
620000
,
30
},
{
79
,
4400000
,
5000000
,
4400000
,
5000000
,
1
,
693334
,
15
},
{
79
,
4400000
,
5000000
,
4400000
,
5000000
,
2
,
693334
,
30
},
{
80
,
1710000
,
1785000
,
000
,
000
,
20
,
342000
,
100
},
{
81
,
860000
,
915000
,
000
,
000
,
20
,
176000
,
100
},
{
82
,
832000
,
862000
,
000
,
000
,
20
,
166400
,
100
},
{
83
,
703000
,
748000
,
000
,
000
,
20
,
140600
,
100
},
{
84
,
1920000
,
1980000
,
000
,
000
,
20
,
384000
,
100
},
{
86
,
1710000
,
1785000
,
000
,
000
,
20
,
342000
,
100
},
{
257
,
26500000
,
29500000
,
26500000
,
29500000
,
1
,
2054166
,
60
},
{
257
,
26500000
,
29500000
,
26500000
,
29500000
,
2
,
2054167
,
120
},
{
258
,
24250000
,
27500000
,
24250000
,
27500000
,
1
,
2016667
,
60
},
{
258
,
24250000
,
27500000
,
24250000
,
27500000
,
2
,
2016667
,
120
},
{
260
,
37000000
,
40000000
,
37000000
,
40000000
,
1
,
2229166
,
60
},
{
260
,
37000000
,
40000000
,
37000000
,
40000000
,
2
,
2229167
,
120
},
{
261
,
27500000
,
28350000
,
27500000
,
28350000
,
1
,
2070833
,
60
},
{
261
,
27500000
,
28350000
,
27500000
,
28350000
,
2
,
2070833
,
120
}
};
#define NR_BANDTABLE_SIZE (sizeof(nr_bandtable)/sizeof(nr_bandentry_t))
...
...
@@ -230,16 +238,22 @@ uint16_t config_bandwidth(int mu, int nb_rb, int nr_band)
uint32_t
to_nrarfcn
(
int
nr_bandP
,
uint64_t
dl_CarrierFreq
,
uint8_t
scs_index
,
uint32_t
bw
)
{
uint64_t
dl_CarrierFreq_by_1k
=
dl_CarrierFreq
/
1000
;
int
bw_kHz
=
bw
/
1000
;
int
scs_khz
=
15
<<
scs_index
;
int
i
;
uint32_t
nrarfcn
,
delta_arfcn
;
LOG_I
(
MAC
,
"Searching for nr band %d DL Carrier frequency %llu bw %u
\n
"
,
nr_bandP
,(
long
long
unsigned
int
)
dl_CarrierFreq
,
bw
);
AssertFatal
(
nr_bandP
<
258
,
"nr_band %d > 257
\n
"
,
nr_bandP
);
for
(
i
=
0
;
i
<
33
&&
nr_bandtable
[
i
].
band
!=
nr_bandP
;
i
++
);
AssertFatal
(
nr_bandP
<
261
,
"nr_band %d > 260
\n
"
,
nr_bandP
);
for
(
i
=
0
;
i
<
NR_BANDTABLE_SIZE
&&
nr_bandtable
[
i
].
band
!=
nr_bandP
;
i
++
);
// selection of correct Deltaf raster according to SCS
if
(
(
nr_bandtable
[
i
].
deltaf_raster
!=
100
)
&&
(
nr_bandtable
[
i
].
deltaf_raster
!=
scs_khz
))
i
++
;
AssertFatal
(
dl_CarrierFreq_by_1k
>=
nr_bandtable
[
i
].
dl_min
,
"Band %d, bw %u : DL carrier frequency %llu kHz < %llu
\n
"
,
...
...
@@ -250,37 +264,57 @@ uint32_t to_nrarfcn(int nr_bandP,
nr_bandP
,
(
long
long
unsigned
int
)
dl_CarrierFreq
,
bw
,
(
long
long
unsigned
int
)
dl_CarrierFreq_by_1k
,
(
long
long
unsigned
int
)(
nr_bandtable
[
i
].
dl_max
-
bw_kHz
));
int
deltaFglobal
;
int
deltaFglobal
=
60
;
if
(
dl_CarrierFreq
<
3e9
)
deltaFglobal
=
5
;
else
deltaFglobal
=
1
5
;
if
(
dl_CarrierFreq
<
3e9
)
deltaFglobal
=
1
5
;
if
(
dl_CarrierFreq
<
24.25e9
)
deltaFglobal
=
5
;
// This is equation before Table 5.4.2.1-1 in 38101-1-f30
// F_REF=F_REF_Offs + deltaF_Global(N_REF-NREF_REF_Offs)
return
(((
dl_CarrierFreq_by_1k
-
nr_bandtable
[
i
].
dl_min
)
/
deltaFglobal
)
+
nr_bandtable
[
i
].
N_OFFs_DL
);
nrarfcn
=
(((
dl_CarrierFreq_by_1k
-
nr_bandtable
[
i
].
dl_min
)
/
deltaFglobal
)
+
nr_bandtable
[
i
].
N_OFFs_DL
);
delta_arfcn
=
nrarfcn
-
nr_bandtable
[
i
].
N_OFFs_DL
;
if
(
delta_arfcn
%
(
nr_bandtable
[
i
].
step_size
)
!=
0
)
AssertFatal
(
1
==
0
,
"dl_CarrierFreq %lu corresponds to %u which is not on the raster for step size %lu"
,
dl_CarrierFreq
,
nrarfcn
,
nr_bandtable
[
i
].
step_size
);
return
nrarfcn
;
}
uint64_t
from_nrarfcn
(
int
nr_bandP
,
uint8_t
scs_index
,
uint32_t
dl_nrarfcn
)
{
int
i
;
int
deltaFglobal
;
if
(
nr_bandP
<
77
||
nr_bandP
>
79
)
deltaFglobal
=
5
;
else
deltaFglobal
=
15
;
int
deltaFglobal
=
5
;
int
scs_khz
=
15
<<
scs_index
;
uint32_t
delta_arfcn
;
if
(
dl_nrarfcn
>
599999
&&
dl_nrarfcn
<
2016667
)
deltaFglobal
=
15
;
if
(
dl_nrarfcn
>
2016666
&&
dl_nrarfcn
<
3279166
)
deltaFglobal
=
60
;
AssertFatal
(
nr_bandP
<
2
58
,
"nr_band %d > 257
\n
"
,
nr_bandP
);
for
(
i
=
0
;
i
<
33
&&
nr_bandtable
[
i
].
band
!=
nr_bandP
;
i
++
);
AssertFatal
(
nr_bandP
<
2
61
,
"nr_band %d > 260
\n
"
,
nr_bandP
);
for
(
i
=
0
;
i
<
NR_BANDTABLE_SIZE
&&
nr_bandtable
[
i
].
band
!=
nr_bandP
;
i
++
);
AssertFatal
(
dl_nrarfcn
>=
nr_bandtable
[
i
].
N_OFFs_DL
,
"dl_nrarfcn %u < N_OFFs_DL %llu
\n
"
,
dl_nrarfcn
,
(
long
long
unsigned
int
)
nr_bandtable
[
i
].
N_OFFs_DL
);
// selection of correct Deltaf raster according to SCS
if
(
(
nr_bandtable
[
i
].
deltaf_raster
!=
100
)
&&
(
nr_bandtable
[
i
].
deltaf_raster
!=
scs_khz
))
i
++
;
delta_arfcn
=
dl_nrarfcn
-
nr_bandtable
[
i
].
N_OFFs_DL
;
if
(
delta_arfcn
%
(
nr_bandtable
[
i
].
step_size
)
!=
0
)
AssertFatal
(
1
==
0
,
"dl_nrarfcn %u is not on the raster for step size %lu"
,
dl_nrarfcn
,
nr_bandtable
[
i
].
step_size
);
LOG_I
(
PHY
,
"Computing dl_frequency (pointA %llu => %llu (dlmin %llu, nr_bandtable[%d].N_OFFs_DL %llu))
\n
"
,
(
unsigned
long
long
)
dl_nrarfcn
,
(
unsigned
long
long
)(
1000
*
(
nr_bandtable
[
i
].
dl_min
+
(
dl_nrarfcn
-
nr_bandtable
[
i
].
N_OFFs_DL
)
*
deltaFglobal
)),
(
unsigned
long
long
)
nr_bandtable
[
i
].
dl_min
,
i
,
(
unsigned
long
long
)
nr_bandtable
[
i
].
N_OFFs_DL
);
return
1000
*
(
nr_bandtable
[
i
].
dl_min
+
(
dl_nrarfcn
-
nr_bandtable
[
i
].
N_OFFs_DL
)
*
deltaFglobal
);
}
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/nr_mac_common.h
View file @
38ded2db
...
...
@@ -34,9 +34,9 @@
uint16_t
config_bandwidth
(
int
mu
,
int
nb_rb
,
int
nr_band
);
uint64_t
from_nrarfcn
(
int
nr_bandP
,
uint32_t
dl_nrarfcn
);
uint64_t
from_nrarfcn
(
int
nr_bandP
,
uint
8_t
scs_index
,
uint
32_t
dl_nrarfcn
);
uint32_t
to_nrarfcn
(
int
nr_bandP
,
uint64_t
dl_CarrierFreq
,
uint32_t
bw
);
uint32_t
to_nrarfcn
(
int
nr_bandP
,
uint64_t
dl_CarrierFreq
,
uint
8_t
scs_index
,
uint
32_t
bw
);
int16_t
fill_dmrs_mask
(
NR_PDSCH_Config_t
*
pdsch_Config
,
int
dmrs_TypeA_Position
,
int
NrOfSymbols
);
...
...
This diff is collapsed.
Click to expand it.
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