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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
4bfc0147
Commit
4bfc0147
authored
Sep 24, 2024
by
Sakthivel Velumani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ue mac changes for long prach
Fix bug in talbe 38.211 6.3.3.2-1 for FR2.
parent
8f5aa740
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
41 additions
and
49 deletions
+41
-49
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
+24
-42
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
+2
-1
openair2/LAYER2/NR_MAC_UE/config_ue.c
openair2/LAYER2/NR_MAC_UE/config_ue.c
+1
-1
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
+14
-5
No files found.
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c
View file @
4bfc0147
...
@@ -701,51 +701,33 @@ uint16_t get_NCS(uint8_t index, uint16_t format0, uint8_t restricted_set_config)
...
@@ -701,51 +701,33 @@ uint16_t get_NCS(uint8_t index, uint16_t format0, uint8_t restricted_set_config)
}
}
}
}
//from 38.211 Table 6.3.3.2-1
//from 38.211 Table 6.3.3.2-1 // 15 30 60 120 240 480
static
const
int16_t
N_RA_RB
[
16
]
=
{
6
,
3
,
2
,
24
,
12
,
6
,
12
,
6
,
3
,
24
,
12
,
6
,
12
,
6
,
24
,
12
};
static
const
unsigned
int
N_RA_RB
[
6
][
6
]
=
{{
12
,
6
,
3
,
-
1
,
-
1
,
-
1
},
{
24
,
12
,
6
,
-
1
,
-
1
,
-
1
},
{
-
1
,
-
1
,
12
,
6
,
-
1
,
-
1
},
{
-
1
,
-
1
,
24
,
12
,
3
,
2
},
// L839
{
6
,
3
,
2
,
-
1
,
-
1
,
-
1
},
{
24
,
12
,
6
,
-
1
,
-
1
,
-
1
}};
/* Function to get number of RBs required for prach occasion based on
/* Function to get number of RBs required for prach occasion based on
* 38.211 Table 6.3.3.2-1 */
* 38.211 Table 6.3.3.2-1 */
int16_t
get_N_RA_RB
(
int
delta_f_RA_PRACH
,
int
delta_f_PUSCH
)
unsigned
int
get_N_RA_RB
(
const
unsigned
int
delta_f_RA_PRACH
,
const
unsigned
int
delta_f_PUSCH
)
{
{
int8_t
index
=
0
;
DevAssert
(
delta_f_PUSCH
<
6
);
switch
(
delta_f_RA_PRACH
)
{
DevAssert
(
delta_f_RA_PRACH
<
6
);
case
0
:
unsigned
int
n_rb
;
index
=
6
;
n_rb
=
N_RA_RB
[
delta_f_RA_PRACH
][
delta_f_PUSCH
];
if
(
delta_f_PUSCH
==
0
)
DevAssert
(
n_rb
!=
-
1
);
index
+=
0
;
return
n_rb
;
else
if
(
delta_f_PUSCH
==
1
)
}
index
+=
1
;
else
// frome Table 6.3.3.1-1
index
+=
2
;
unsigned
int
get_delta_f_RA_long
(
const
unsigned
int
format
)
break
;
{
case
1
:
DevAssert
(
format
<
4
);
index
=
9
;
return
(
format
==
3
)
?
5
:
4
;
if
(
delta_f_PUSCH
==
0
)
}
index
+=
0
;
else
if
(
delta_f_PUSCH
==
1
)
index
+=
1
;
else
index
+=
2
;
break
;
case
2
:
index
=
11
;
if
(
delta_f_PUSCH
==
2
)
index
+=
0
;
else
index
+=
1
;
break
;
case
3
:
index
=
13
;
if
(
delta_f_PUSCH
==
2
)
index
+=
0
;
else
index
+=
1
;
break
;
default
:
index
=
10
;
/*30khz prach scs and 30khz pusch scs*/
}
return
N_RA_RB
[
index
];
}
// Table 6.3.3.2-2: Random access configurations for FR1 and paired spectrum/supplementary uplink
// Table 6.3.3.2-2: Random access configurations for FR1 and paired spectrum/supplementary uplink
// the column 5, (SFN_nbr is a bitmap where we set bit to '1' in the position of the subframe where the RACH can be sent.
// the column 5, (SFN_nbr is a bitmap where we set bit to '1' in the position of the subframe where the RACH can be sent.
// E.g. in row 4, and column 5 we have set value 512 ('1000000000') which means RACH can be sent at subframe 9.
// E.g. in row 4, and column 5 we have set value 512 ('1000000000') which means RACH can be sent at subframe 9.
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
View file @
4bfc0147
...
@@ -262,7 +262,8 @@ uint16_t compute_pucch_prb_size(uint8_t format,
...
@@ -262,7 +262,8 @@ uint16_t compute_pucch_prb_size(uint8_t format,
float
get_max_code_rate
(
NR_PUCCH_MaxCodeRate_t
*
maxCodeRate
);
float
get_max_code_rate
(
NR_PUCCH_MaxCodeRate_t
*
maxCodeRate
);
int
get_f3_dmrs_symbols
(
NR_PUCCH_Resource_t
*
pucchres
,
NR_PUCCH_Config_t
*
pucch_Config
);
int
get_f3_dmrs_symbols
(
NR_PUCCH_Resource_t
*
pucchres
,
NR_PUCCH_Config_t
*
pucch_Config
);
int16_t
get_N_RA_RB
(
int
delta_f_RA_PRACH
,
int
delta_f_PUSCH
);
unsigned
int
get_delta_f_RA_long
(
const
unsigned
int
format
);
unsigned
int
get_N_RA_RB
(
const
unsigned
int
delta_f_RA_PRACH
,
const
unsigned
int
delta_f_PUSCH
);
void
find_period_offset_SR
(
const
NR_SchedulingRequestResourceConfig_t
*
SchedulingReqRec
,
int
*
period
,
int
*
offset
);
void
find_period_offset_SR
(
const
NR_SchedulingRequestResourceConfig_t
*
SchedulingReqRec
,
int
*
period
,
int
*
offset
);
...
...
openair2/LAYER2/NR_MAC_UE/config_ue.c
View file @
4bfc0147
...
@@ -190,7 +190,7 @@ static void config_common_ue_sa(NR_UE_MAC_INST_t *mac, NR_ServingCellConfigCommo
...
@@ -190,7 +190,7 @@ static void config_common_ue_sa(NR_UE_MAC_INST_t *mac, NR_ServingCellConfigCommo
int
config_index
=
rach_ConfigCommon
->
rach_ConfigGeneric
.
prach_ConfigurationIndex
;
int
config_index
=
rach_ConfigCommon
->
rach_ConfigGeneric
.
prach_ConfigurationIndex
;
const
int64_t
*
prach_config_info_p
=
get_prach_config_info
(
mac
->
frequency_range
,
config_index
,
frame_type
);
const
int64_t
*
prach_config_info_p
=
get_prach_config_info
(
mac
->
frequency_range
,
config_index
,
frame_type
);
int
format
=
prach_config_info_p
[
0
];
int
format
=
prach_config_info_p
[
0
];
cfg
->
prach_config
.
prach_sub_c_spacing
=
format
==
3
?
5
:
4
;
cfg
->
prach_config
.
prach_sub_c_spacing
=
get_delta_f_RA_long
(
format
)
;
}
}
cfg
->
prach_config
.
restricted_set_config
=
rach_ConfigCommon
->
restrictedSetConfig
;
cfg
->
prach_config
.
restricted_set_config
=
rach_ConfigCommon
->
restrictedSetConfig
;
...
...
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
View file @
4bfc0147
...
@@ -76,9 +76,18 @@ void init_RA(NR_UE_MAC_INST_t *mac,
...
@@ -76,9 +76,18 @@ void init_RA(NR_UE_MAC_INST_t *mac,
fapi_nr_config_request_t
*
cfg
=
&
mac
->
phy_config
.
config_req
;
fapi_nr_config_request_t
*
cfg
=
&
mac
->
phy_config
.
config_req
;
prach_resources
->
RA_PREAMBLE_BACKOFF
=
0
;
prach_resources
->
RA_PREAMBLE_BACKOFF
=
0
;
AssertFatal
(
nr_rach_ConfigCommon
&&
nr_rach_ConfigCommon
->
msg1_SubcarrierSpacing
,
NR_SubcarrierSpacing_t
prach_scs
;
"Cannot handle yet the scenario without msg1_SubcarrierSpacing (L839)
\n
"
);
int
scs_for_pcmax
;
// for long prach the UL BWP SCS is used for calculating RA_PCMAX
NR_SubcarrierSpacing_t
prach_scs
=
*
nr_rach_ConfigCommon
->
msg1_SubcarrierSpacing
;
if
(
nr_rach_ConfigCommon
&&
nr_rach_ConfigCommon
->
msg1_SubcarrierSpacing
)
{
prach_scs
=
*
nr_rach_ConfigCommon
->
msg1_SubcarrierSpacing
;
scs_for_pcmax
=
prach_scs
;
}
else
{
const
unsigned
int
index
=
rach_ConfigGeneric
->
prach_ConfigurationIndex
;
const
unsigned
int
unpaired
=
mac
->
phy_config
.
config_req
.
cell_config
.
frame_duplex_type
;
const
unsigned
int
format
=
get_format0
(
index
,
unpaired
,
mac
->
frequency_range
);
prach_scs
=
get_delta_f_RA_long
(
format
);
scs_for_pcmax
=
mac
->
current_UL_BWP
->
scs
;
}
int
n_prbs
=
get_N_RA_RB
(
prach_scs
,
mac
->
current_UL_BWP
->
scs
);
int
n_prbs
=
get_N_RA_RB
(
prach_scs
,
mac
->
current_UL_BWP
->
scs
);
int
start_prb
=
rach_ConfigGeneric
->
msg1_FrequencyStart
+
mac
->
current_UL_BWP
->
BWPStart
;
int
start_prb
=
rach_ConfigGeneric
->
msg1_FrequencyStart
+
mac
->
current_UL_BWP
->
BWPStart
;
// PRACH shall be as specified for QPSK modulated DFT-s-OFDM of equivalent RB allocation (38.101-1)
// PRACH shall be as specified for QPSK modulated DFT-s-OFDM of equivalent RB allocation (38.101-1)
...
@@ -89,8 +98,8 @@ void init_RA(NR_UE_MAC_INST_t *mac,
...
@@ -89,8 +98,8 @@ void init_RA(NR_UE_MAC_INST_t *mac,
mac
->
current_UL_BWP
->
channel_bandwidth
,
mac
->
current_UL_BWP
->
channel_bandwidth
,
2
,
2
,
false
,
false
,
prach_scs
,
scs_for_pcmax
,
cfg
->
carrier_config
.
dl_grid_size
[
prach_scs
],
cfg
->
carrier_config
.
dl_grid_size
[
scs_for_pcmax
],
true
,
true
,
n_prbs
,
n_prbs
,
start_prb
);
start_prb
);
...
...
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