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
lizhongxiao
OpenXG-RAN
Commits
b38cc832
Commit
b38cc832
authored
Jul 05, 2021
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
RSRP tables in mac common
parent
cb0de3ba
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
55 additions
and
48 deletions
+55
-48
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+47
-0
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
+3
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
+5
-48
No files found.
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
View file @
b38cc832
...
...
@@ -36,6 +36,53 @@
#define reserved 0xffff
#define MIN_RSRP_VALUE -141
//Measured RSRP Values Table 10.1.16.1-1 from 36.133
//Stored all the upper limits[Max RSRP Value of corresponding index]
//stored -1 for invalid values
int
L1_SSB_CSI_RSRP_measReport_mapping_38133_10_1_6_1_1
[
128
]
=
{
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
//0 - 9
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
140
,
-
139
,
-
138
,
-
137
,
//10 - 19
-
136
,
-
135
,
-
134
,
-
133
,
-
132
,
-
131
,
-
130
,
-
129
,
-
128
,
-
127
,
//20 - 29
-
126
,
-
125
,
-
124
,
-
123
,
-
122
,
-
121
,
-
120
,
-
119
,
-
118
,
-
117
,
//30 - 39
-
116
,
-
115
,
-
114
,
-
113
,
-
112
,
-
111
,
-
110
,
-
109
,
-
108
,
-
107
,
//40 - 49
-
106
,
-
105
,
-
104
,
-
103
,
-
102
,
-
101
,
-
100
,
-
99
,
-
98
,
-
97
,
//50 - 59
-
96
,
-
95
,
-
94
,
-
93
,
-
92
,
-
91
,
-
90
,
-
89
,
-
88
,
-
87
,
//60 - 69
-
86
,
-
85
,
-
84
,
-
83
,
-
82
,
-
81
,
-
80
,
-
79
,
-
78
,
-
77
,
//70 - 79
-
76
,
-
75
,
-
74
,
-
73
,
-
72
,
-
71
,
-
70
,
-
69
,
-
68
,
-
67
,
//80 - 89
-
66
,
-
65
,
-
64
,
-
63
,
-
62
,
-
61
,
-
60
,
-
59
,
-
58
,
-
57
,
//90 - 99
-
56
,
-
55
,
-
54
,
-
53
,
-
52
,
-
51
,
-
50
,
-
49
,
-
48
,
-
47
,
//100 - 109
-
46
,
-
45
,
-
44
,
-
44
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
//110 - 119
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
//120 - 127
};
//Differential RSRP values Table 10.1.6.1-2 from 36.133
//Stored the upper limits[MAX RSRP Value]
int
diff_rsrp_ssb_csi_meas_10_1_6_1_2
[
16
]
=
{
0
,
-
2
,
-
4
,
-
6
,
-
8
,
-
10
,
-
12
,
-
14
,
-
16
,
-
18
,
//0 - 9
-
20
,
-
22
,
-
24
,
-
26
,
-
28
,
-
30
//10 - 15
};
//returns the measured RSRP value (upper limit)
int
get_measured_rsrp
(
uint8_t
index
)
{
//if index is invalid returning minimum rsrp -140
if
(
index
<=
15
||
index
>=
114
)
return
MIN_RSRP_VALUE
;
return
L1_SSB_CSI_RSRP_measReport_mapping_38133_10_1_6_1_1
[
index
];
}
//returns the differential RSRP value (upper limit)
int
get_diff_rsrp
(
uint8_t
index
,
int
strongest_rsrp
)
{
if
(
strongest_rsrp
!=
-
1
)
{
return
strongest_rsrp
+
diff_rsrp_ssb_csi_meas_10_1_6_1_2
[
index
];
}
else
return
MIN_RSRP_VALUE
;
}
// start symbols for SSB types A,B,C,D,E
uint16_t
symbol_ssb_AC
[
8
]
=
{
2
,
8
,
16
,
22
,
30
,
36
,
44
,
50
};
uint16_t
symbol_ssb_BD
[
64
]
=
{
4
,
8
,
16
,
20
,
32
,
36
,
44
,
48
,
60
,
64
,
72
,
76
,
88
,
92
,
100
,
104
,
144
,
148
,
156
,
160
,
172
,
176
,
184
,
188
,
200
,
204
,
212
,
216
,
228
,
232
,
240
,
244
,
284
,
288
,
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
View file @
b38cc832
...
...
@@ -148,6 +148,9 @@ uint16_t compute_pucch_prb_size(uint8_t format,
uint8_t
n_symb
,
uint8_t
n_re_ctrl
);
int
get_measured_rsrp
(
uint8_t
index
);
int
get_diff_rsrp
(
uint8_t
index
,
int
strongest_rsrp
);
int16_t
get_N_RA_RB
(
int
delta_f_RA_PRACH
,
int
delta_f_PUSCH
);
void
find_period_offest_SR
(
NR_SchedulingRequestResourceConfig_t
*
SchedulingReqRec
,
int
*
period
,
int
*
offset
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
View file @
b38cc832
...
...
@@ -83,7 +83,6 @@ void nr_fill_nfapi_pucch(module_id_t mod_id,
pucch
->
r_pucch
);
}
#define MIN_RSRP_VALUE -141
#define MAX_NUM_SSB 128
#define MAX_SSB_SCHED 8
#define L1_RSRP_HYSTERIS 10 //considering 10 dBm as hysterisis for avoiding frequent SSB Beam Switching. !Fixme provide exact value if any
...
...
@@ -92,32 +91,6 @@ void nr_fill_nfapi_pucch(module_id_t mod_id,
int
ssb_index_sorted
[
MAX_NUM_SSB
]
=
{
0
};
int
ssb_rsrp_sorted
[
MAX_NUM_SSB
]
=
{
0
};
//Measured RSRP Values Table 10.1.16.1-1 from 36.133
//Stored all the upper limits[Max RSRP Value of corresponding index]
//stored -1 for invalid values
int
L1_SSB_CSI_RSRP_measReport_mapping_38133_10_1_6_1_1
[
128
]
=
{
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
//0 - 9
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
140
,
-
139
,
-
138
,
-
137
,
//10 - 19
-
136
,
-
135
,
-
134
,
-
133
,
-
132
,
-
131
,
-
130
,
-
129
,
-
128
,
-
127
,
//20 - 29
-
126
,
-
125
,
-
124
,
-
123
,
-
122
,
-
121
,
-
120
,
-
119
,
-
118
,
-
117
,
//30 - 39
-
116
,
-
115
,
-
114
,
-
113
,
-
112
,
-
111
,
-
110
,
-
109
,
-
108
,
-
107
,
//40 - 49
-
106
,
-
105
,
-
104
,
-
103
,
-
102
,
-
101
,
-
100
,
-
99
,
-
98
,
-
97
,
//50 - 59
-
96
,
-
95
,
-
94
,
-
93
,
-
92
,
-
91
,
-
90
,
-
89
,
-
88
,
-
87
,
//60 - 69
-
86
,
-
85
,
-
84
,
-
83
,
-
82
,
-
81
,
-
80
,
-
79
,
-
78
,
-
77
,
//70 - 79
-
76
,
-
75
,
-
74
,
-
73
,
-
72
,
-
71
,
-
70
,
-
69
,
-
68
,
-
67
,
//80 - 89
-
66
,
-
65
,
-
64
,
-
63
,
-
62
,
-
61
,
-
60
,
-
59
,
-
58
,
-
57
,
//90 - 99
-
56
,
-
55
,
-
54
,
-
53
,
-
52
,
-
51
,
-
50
,
-
49
,
-
48
,
-
47
,
//100 - 109
-
46
,
-
45
,
-
44
,
-
44
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
//110 - 119
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
//120 - 127
};
//Differential RSRP values Table 10.1.6.1-2 from 36.133
//Stored the upper limits[MAX RSRP Value]
int
diff_rsrp_ssb_csi_meas_10_1_6_1_2
[
16
]
=
{
0
,
-
2
,
-
4
,
-
6
,
-
8
,
-
10
,
-
12
,
-
14
,
-
16
,
-
18
,
//0 - 9
-
20
,
-
22
,
-
24
,
-
26
,
-
28
,
-
30
//10 - 15
};
void
nr_schedule_pucch
(
int
Mod_idP
,
frame_t
frameP
,
...
...
@@ -188,7 +161,7 @@ void compute_csi_bitlen(NR_CSI_MeasConfig_t *csi_MeasConfig, NR_UE_info_t *UE_in
if
(
csi_resourceconfig
->
csi_ResourceConfigId
!=
csi_ResourceConfigId
)
continue
;
else
{
uint8_t
nb_ssb_resources
=
0
;
uint8_t
nb_ssb_resources
=
0
;
//Finding the CSI_RS or SSB Resources
if
(
NR_CSI_ReportConfig__reportQuantity_PR_cri_RSRP
==
reportQuantity_type
||
NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP
==
reportQuantity_type
)
{
...
...
@@ -213,7 +186,7 @@ void compute_csi_bitlen(NR_CSI_MeasConfig_t *csi_MeasConfig, NR_UE_info_t *UE_in
*
(
csi_resourceconfig
->
csi_RS_ResourceSetList
.
choice
.
nzp_CSI_RS_SSB
->
csi_SSB_ResourceSetList
->
list
.
array
[
0
])){
///We can configure only one SSB resource set from spec 38.331 IE CSI-ResourceConfig
nb_ssb_resources
=
csi_MeasConfig
->
csi_SSB_ResourceSetToAddModList
->
list
.
array
[
csi_ssb_idx
]
->
csi_SSB_ResourceList
.
list
.
count
;
nb_ssb_resources
=
csi_MeasConfig
->
csi_SSB_ResourceSetToAddModList
->
list
.
array
[
csi_ssb_idx
]
->
csi_SSB_ResourceList
.
list
.
count
;
csi_report
->
SSB_Index_list
=
csi_MeasConfig
->
csi_SSB_ResourceSetToAddModList
->
list
.
array
[
csi_ssb_idx
]
->
csi_SSB_ResourceList
.
list
.
array
;
csi_report
->
CSI_Index_list
=
NULL
;
break
;
...
...
@@ -225,7 +198,7 @@ void compute_csi_bitlen(NR_CSI_MeasConfig_t *csi_MeasConfig, NR_UE_info_t *UE_in
*
(
csi_resourceconfig
->
csi_RS_ResourceSetList
.
choice
.
nzp_CSI_RS_SSB
->
nzp_CSI_RS_ResourceSetList
->
list
.
array
[
0
]))
{
///For periodic and semi-persistent CSI Resource Settings, the number of CSI-RS Resource Sets configured is limited to S=1 for spec 38.212
nb_ssb_resources
=
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
->
list
.
array
[
csi_ssb_idx
]
->
nzp_CSI_RS_Resources
.
list
.
count
;
nb_ssb_resources
=
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
->
list
.
array
[
csi_ssb_idx
]
->
nzp_CSI_RS_Resources
.
list
.
count
;
csi_report
->
CSI_Index_list
=
csi_MeasConfig
->
nzp_CSI_RS_ResourceSetToAddModList
->
list
.
array
[
csi_ssb_idx
]
->
nzp_CSI_RS_Resources
.
list
.
array
;
csi_report
->
SSB_Index_list
=
NULL
;
break
;
...
...
@@ -659,22 +632,6 @@ int checkTargetSSBInTCIStates_pdcchConfig(int ssb_index_t, int Mod_idP, int UE_i
return
-
1
;
}
//returns the measured RSRP value (upper limit)
int
get_measured_rsrp
(
uint8_t
index
)
{
//if index is invalid returning minimum rsrp -140
if
(
index
<=
15
||
index
>=
114
)
return
MIN_RSRP_VALUE
;
return
L1_SSB_CSI_RSRP_measReport_mapping_38133_10_1_6_1_1
[
index
];
}
//returns the differential RSRP value (upper limit)
int
get_diff_rsrp
(
uint8_t
index
,
int
strongest_rsrp
)
{
if
(
strongest_rsrp
!=
-
1
)
{
return
strongest_rsrp
+
diff_rsrp_ssb_csi_meas_10_1_6_1_2
[
index
];
}
else
return
MIN_RSRP_VALUE
;
}
//identifies the target SSB Beam index
//keeps the required date for PDCCH and PDSCH TCI state activation/deactivation CE consutruction globally
...
...
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