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
wangjie
OpenXG-RAN
Commits
e56a085a
Commit
e56a085a
authored
4 years ago
by
kn.raju
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed msg2 error and added CFRA config
parent
18695f07
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
35 deletions
+37
-35
openair1/SCHED_NR/nr_prach_procedures.c
openair1/SCHED_NR/nr_prach_procedures.c
+23
-23
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+7
-8
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+7
-4
No files found.
openair1/SCHED_NR/nr_prach_procedures.c
View file @
e56a085a
...
...
@@ -57,16 +57,17 @@ void L1_nr_prach_procedures(PHY_VARS_gNB *gNB,int frame,int slot) {
uint16_t
max_preamble
[
4
]
=
{
0
},
max_preamble_energy
[
4
]
=
{
0
},
max_preamble_delay
[
4
]
=
{
0
};
gNB
->
UL_INFO
.
rach_ind
.
number_of_pdus
=
0
;
uint8_t
pdu_index
=
0
;
RU_t
*
ru
;
int
aa
=
0
;
int
ru_aa
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PRACH_RX
,
1
);
gNB
->
UL_INFO
.
rach_ind
.
sfn
=
frame
;
gNB
->
UL_INFO
.
rach_ind
.
slot
=
slot
;
gNB
->
UL_INFO
.
rach_ind
.
pdu_list
=
gNB
->
prach_pdu_indication_list
;
gNB
->
UL_INFO
.
rach_ind
.
number_of_pdus
=
0
;
for
(
int
i
=
0
;
i
<
gNB
->
num_RU
;
i
++
)
{
ru
=
gNB
->
RU_list
[
i
];
...
...
@@ -101,37 +102,36 @@ void L1_nr_prach_procedures(PHY_VARS_gNB *gNB,int frame,int slot) {
if
((
gNB
->
prach_energy_counter
==
100
)
&&
(
max_preamble_energy
[
0
]
>
gNB
->
measurements
.
prach_I0
+
100
))
{
LOG_I
(
PHY
,
"[gNB %d][RAPROC] Frame %d, slot %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d
\n
"
,
LOG_I
(
PHY
,
"[gNB %d][RAPROC] Frame %d, slot %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d
start symbol %u freq index %u
\n
"
,
gNB
->
Mod_id
,
frame
,
slot
,
max_preamble
[
0
],
max_preamble_energy
[
0
]
/
10
,
max_preamble_energy
[
0
]
%
10
,
max_preamble_delay
[
0
]);
max_preamble_delay
[
0
],
prach_pdu
->
prach_start_symbol
,
prach_pdu
->
num_ra
);
T
(
T_ENB_PHY_INITIATE_RA_PROCEDURE
,
T_INT
(
gNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
slot
),
T_INT
(
max_preamble
[
0
]),
T_INT
(
max_preamble_energy
[
0
]),
T_INT
(
max_preamble_delay
[
0
]));
gNB
->
UL_INFO
.
rach_ind
.
number_of_pdus
+=
1
;
gNB
->
UL_INFO
.
rach_ind
.
sfn
=
frame
;
gNB
->
UL_INFO
.
rach_ind
.
slot
=
slot
;
gNB
->
UL_INFO
.
rach_ind
.
pdu_list
=
&
gNB
->
prach_pdu_indication_list
[
i
];
gNB
->
prach_pdu_indication_list
[
i
].
phy_cell_id
=
gNB
->
gNB_config
.
cell_config
.
phy_cell_id
.
value
;
gNB
->
prach_pdu_indication_list
[
i
].
symbol_index
=
prach_pdu
->
prach_start_symbol
;
// FIXME to be changed for multi-ssb (this is only the start symbol of first occasion)
gNB
->
prach_pdu_indication_list
[
i
].
slot_index
=
slot
;
gNB
->
prach_pdu_indication_list
[
i
].
freq_index
=
prach_pdu
->
num_ra
;
gNB
->
prach_pdu_indication_list
[
i
].
avg_rssi
=
(
max_preamble_energy
[
0
]
<
631
)
?
(
128
+
(
max_preamble_energy
[
0
]
/
5
))
:
254
;
gNB
->
prach_pdu_indication_list
[
i
].
avg_snr
=
0xff
;
// invalid for now
gNB
->
prach_pdu_indication_list
[
i
].
num_preamble
=
1
;
gNB
->
prach_pdu_indication_list
[
i
].
preamble_list
=
gNB
->
preamble_list
;
gNB
->
prach_pdu_indication_list
[
i
].
preamble_list
[
0
].
preamble_index
=
max_preamble
[
0
];
gNB
->
prach_pdu_indication_list
[
i
].
preamble_list
[
0
].
timing_advance
=
max_preamble_delay
[
0
];
gNB
->
prach_pdu_indication_list
[
i
].
preamble_list
[
0
].
preamble_pwr
=
0xffffffff
;
gNB
->
prach_pdu_indication_list
[
pdu_index
].
phy_cell_id
=
gNB
->
gNB_config
.
cell_config
.
phy_cell_id
.
value
;
gNB
->
prach_pdu_indication_list
[
pdu_index
].
symbol_index
=
prach_pdu
->
prach_start_symbol
;
gNB
->
prach_pdu_indication_list
[
pdu_index
].
slot_index
=
slot
;
gNB
->
prach_pdu_indication_list
[
pdu_index
].
freq_index
=
prach_pdu
->
num_ra
;
gNB
->
prach_pdu_indication_list
[
pdu_index
].
avg_rssi
=
(
max_preamble_energy
[
0
]
<
631
)
?
(
128
+
(
max_preamble_energy
[
0
]
/
5
))
:
254
;
gNB
->
prach_pdu_indication_list
[
pdu_index
].
avg_snr
=
0xff
;
// invalid for now
gNB
->
prach_pdu_indication_list
[
pdu_index
].
num_preamble
=
1
;
gNB
->
prach_pdu_indication_list
[
pdu_index
].
preamble_list
=
gNB
->
preamble_list
;
gNB
->
prach_pdu_indication_list
[
pdu_index
].
preamble_list
[
0
].
preamble_index
=
max_preamble
[
0
];
gNB
->
prach_pdu_indication_list
[
pdu_index
].
preamble_list
[
0
].
timing_advance
=
max_preamble_delay
[
0
];
gNB
->
prach_pdu_indication_list
[
pdu_index
].
preamble_list
[
0
].
preamble_pwr
=
0xffffffff
;
pdu_index
++
;
}
gNB
->
measurements
.
prach_I0
=
((
gNB
->
measurements
.
prach_I0
*
900
)
>>
10
)
+
((
max_preamble_energy
[
0
]
*
124
)
>>
10
);
if
(
frame
==
0
)
LOG_I
(
PHY
,
"prach_I0 = %d.%d dB
\n
"
,
gNB
->
measurements
.
prach_I0
/
10
,
gNB
->
measurements
.
prach_I0
%
10
);
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
e56a085a
...
...
@@ -57,7 +57,6 @@ int16_t ssb_index_from_prach(module_id_t module_idP,
uint8_t
freq_index
,
uint8_t
symbol
)
{
gNB_MAC_INST
*
gNB
=
RC
.
nrmac
[
module_idP
];
NR_COMMON_channels_t
*
cc
=
gNB
->
common_channels
;
NR_ServingCellConfigCommon_t
*
scc
=
cc
->
ServingCellConfigCommon
;
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
e56a085a
...
...
@@ -156,10 +156,13 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
secondaryCellGroup
->
spCellConfig
->
reconfigurationWithSync
->
rach_ConfigDedicated
->
choice
.
uplink
->
cfra
->
resources
.
present
=
NR_CFRA__resources_PR_ssb
;
secondaryCellGroup
->
spCellConfig
->
reconfigurationWithSync
->
rach_ConfigDedicated
->
choice
.
uplink
->
cfra
->
resources
.
choice
.
ssb
=
calloc
(
1
,
sizeof
(
struct
NR_CFRA__resources__ssb
));
secondaryCellGroup
->
spCellConfig
->
reconfigurationWithSync
->
rach_ConfigDedicated
->
choice
.
uplink
->
cfra
->
resources
.
choice
.
ssb
->
ra_ssb_OccasionMaskIndex
=
0
;
struct
NR_CFRA_SSB_Resource
*
ssbElem
=
calloc
(
1
,
sizeof
(
struct
NR_CFRA_SSB_Resource
));
ssbElem
->
ssb
=
0
;
ssbElem
->
ra_PreambleIndex
=
63
;
ASN_SEQUENCE_ADD
(
&
secondaryCellGroup
->
spCellConfig
->
reconfigurationWithSync
->
rach_ConfigDedicated
->
choice
.
uplink
->
cfra
->
resources
.
choice
.
ssb
->
ssb_ResourceList
.
list
,
ssbElem
);
struct
NR_CFRA_SSB_Resource
*
ssbElem
[
8
];
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
ssbElem
[
i
]
=
calloc
(
1
,
sizeof
(
struct
NR_CFRA_SSB_Resource
));
ssbElem
[
i
]
->
ssb
=
i
;
ssbElem
[
i
]
->
ra_PreambleIndex
=
63
;
ASN_SEQUENCE_ADD
(
&
secondaryCellGroup
->
spCellConfig
->
reconfigurationWithSync
->
rach_ConfigDedicated
->
choice
.
uplink
->
cfra
->
resources
.
choice
.
ssb
->
ssb_ResourceList
.
list
,
ssbElem
[
i
]);
}
secondaryCellGroup
->
spCellConfig
->
reconfigurationWithSync
->
rach_ConfigDedicated
->
choice
.
uplink
->
cfra
->
ext1
=
NULL
;
secondaryCellGroup
->
spCellConfig
->
rlf_TimersAndConstants
=
calloc
(
1
,
sizeof
(
*
secondaryCellGroup
->
spCellConfig
->
rlf_TimersAndConstants
));
secondaryCellGroup
->
spCellConfig
->
rlf_TimersAndConstants
->
present
=
NR_SetupRelease_RLF_TimersAndConstants_PR_setup
;
...
...
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