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
Michael Black
OpenXG-RAN
Commits
86dee258
Commit
86dee258
authored
Aug 31, 2020
by
kn.raju
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Reverted multi RACH process
parent
eeb20f23
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
18 additions
and
20 deletions
+18
-20
openair1/PHY/NR_TRANSPORT/nr_prach.c
openair1/PHY/NR_TRANSPORT/nr_prach.c
+5
-6
openair1/SCHED_NR/fapi_nr_l1.c
openair1/SCHED_NR/fapi_nr_l1.c
+3
-3
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+8
-9
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
+1
-1
openair2/RRC/NR/rrc_gNB_reconfig.c
openair2/RRC/NR/rrc_gNB_reconfig.c
+1
-1
No files found.
openair1/PHY/NR_TRANSPORT/nr_prach.c
View file @
86dee258
...
@@ -189,7 +189,7 @@ void rx_nr_prach_ru(RU_t *ru,
...
@@ -189,7 +189,7 @@ void rx_nr_prach_ru(RU_t *ru,
int16_t
*
prach2
;
int16_t
*
prach2
;
if
(
prach_sequence_length
==
0
)
{
if
(
prach_sequence_length
==
0
)
{
LOG_
I
(
PHY
,
"PRACH (ru %d) in %d.%d, format %d, msg1_frequencyStart %d
\n
"
,
LOG_
D
(
PHY
,
"PRACH (ru %d) in %d.%d, format %d, msg1_frequencyStart %d
\n
"
,
ru
->
idx
,
frame
,
slot2
,
prachFormat
,
msg1_frequencystart
);
ru
->
idx
,
frame
,
slot2
,
prachFormat
,
msg1_frequencystart
);
AssertFatal
(
prachFormat
<
4
,
"Illegal prach format %d for length 839
\n
"
,
prachFormat
);
AssertFatal
(
prachFormat
<
4
,
"Illegal prach format %d for length 839
\n
"
,
prachFormat
);
switch
(
prachFormat
)
{
switch
(
prachFormat
)
{
...
@@ -212,7 +212,7 @@ void rx_nr_prach_ru(RU_t *ru,
...
@@ -212,7 +212,7 @@ void rx_nr_prach_ru(RU_t *ru,
}
}
}
}
else
{
else
{
LOG_
I
(
PHY
,
"PRACH (ru %d) in %d.%d, format %s, msg1_frequencyStart %d,startSymbol %d
\n
"
,
LOG_
D
(
PHY
,
"PRACH (ru %d) in %d.%d, format %s, msg1_frequencyStart %d,startSymbol %d
\n
"
,
ru
->
idx
,
frame
,
slot
,
prachfmt
[
prachFormat
],
msg1_frequencystart
,
prachStartSymbol
);
ru
->
idx
,
frame
,
slot
,
prachfmt
[
prachFormat
],
msg1_frequencystart
,
prachStartSymbol
);
switch
(
prachFormat
)
{
switch
(
prachFormat
)
{
...
@@ -522,7 +522,7 @@ void rx_nr_prach_ru(RU_t *ru,
...
@@ -522,7 +522,7 @@ void rx_nr_prach_ru(RU_t *ru,
}
}
//Coherent combining of PRACH repetitions (assumes channel does not change, to be revisted for "long" PRACH)
//Coherent combining of PRACH repetitions (assumes channel does not change, to be revisted for "long" PRACH)
LOG_
I
(
PHY
,
"Doing PRACH combining of %d reptitions N_ZC %d,mu %d prachFormat %d prach2 %p content %d
\n
"
,
reps
,
N_ZC
,
mu
,
prachFormat
,
prach2
,
*
prach2
);
LOG_
D
(
PHY
,
"Doing PRACH combining of %d reptitions N_ZC %d
\n
"
,
reps
,
N_ZC
);
int16_t
rxsigF_tmp
[
N_ZC
<<
1
];
int16_t
rxsigF_tmp
[
N_ZC
<<
1
];
// if (k+N_ZC > dftlen) { // PRACH signal is split around DC
// if (k+N_ZC > dftlen) { // PRACH signal is split around DC
int16_t
*
rxsigF2
=
rxsigF
[
aa
];
int16_t
*
rxsigF2
=
rxsigF
[
aa
];
...
@@ -534,7 +534,6 @@ void rx_nr_prach_ru(RU_t *ru,
...
@@ -534,7 +534,6 @@ void rx_nr_prach_ru(RU_t *ru,
for
(
int
i
=
1
;
i
<
reps
;
i
++
)
rxsigF_tmp
[
j
]
+=
rxsigF2
[
k2
+
(
i
*
dftlen
<<
1
)];
for
(
int
i
=
1
;
i
<
reps
;
i
++
)
rxsigF_tmp
[
j
]
+=
rxsigF2
[
k2
+
(
i
*
dftlen
<<
1
)];
}
}
memcpy
((
void
*
)
rxsigF2
,(
void
*
)
rxsigF_tmp
,
N_ZC
<<
2
);
memcpy
((
void
*
)
rxsigF2
,(
void
*
)
rxsigF_tmp
,
N_ZC
<<
2
);
LOG_I
(
PHY
,
"GES printing rxsigF2 %d
\n
"
,
*
rxsigF2
);
}
}
}
}
...
@@ -602,7 +601,7 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
...
@@ -602,7 +601,7 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
uint8_t
prach_fmt
=
prach_pdu
->
prach_format
;
uint8_t
prach_fmt
=
prach_pdu
->
prach_format
;
uint16_t
N_ZC
=
(
prach_sequence_length
==
0
)
?
839
:
139
;
uint16_t
N_ZC
=
(
prach_sequence_length
==
0
)
?
839
:
139
;
LOG_
I
(
PHY
,
"L1 PRACH RX: rooSequenceIndex %d, numRootSeqeuences %d, NCS %d, N_ZC %d
\n
"
,
rootSequenceIndex
,
numrootSequenceIndex
,
NCS
,
N_ZC
);
LOG_
D
(
PHY
,
"L1 PRACH RX: rooSequenceIndex %d, numRootSeqeuences %d, NCS %d, N_ZC %d
\n
"
,
rootSequenceIndex
,
numrootSequenceIndex
,
NCS
,
N_ZC
);
prach_ifft
=
gNB
->
prach_vars
.
prach_ifft
;
prach_ifft
=
gNB
->
prach_vars
.
prach_ifft
;
prachF
=
gNB
->
prach_vars
.
prachF
;
prachF
=
gNB
->
prach_vars
.
prachF
;
...
@@ -773,7 +772,7 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
...
@@ -773,7 +772,7 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
lev
=
(
int32_t
)
prach_ifft
[(
preamble_shift2
+
i
)];
lev
=
(
int32_t
)
prach_ifft
[(
preamble_shift2
+
i
)];
levdB
=
dB_fixed_times10
(
lev
);
levdB
=
dB_fixed_times10
(
lev
);
if
(
levdB
>*
max_preamble_energy
)
{
if
(
levdB
>*
max_preamble_energy
)
{
LOG_
I
(
PHY
,
"preamble_index %d, delay %d en %d dB > %d dB
\n
"
,
preamble_index
,
i
,
levdB
,
*
max_preamble_energy
);
LOG_
D
(
PHY
,
"preamble_index %d, delay %d en %d dB > %d dB
\n
"
,
preamble_index
,
i
,
levdB
,
*
max_preamble_energy
);
*
max_preamble_energy
=
levdB
;
*
max_preamble_energy
=
levdB
;
*
max_preamble_delay
=
i
;
// Note: This has to be normalized to the 30.72 Ms/s sampling rate
*
max_preamble_delay
=
i
;
// Note: This has to be normalized to the 30.72 Ms/s sampling rate
*
max_preamble
=
preamble_index
;
*
max_preamble
=
preamble_index
;
...
...
openair1/SCHED_NR/fapi_nr_l1.c
View file @
86dee258
...
@@ -153,7 +153,7 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
...
@@ -153,7 +153,7 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
TX_req
->
SFN
,
TX_req
->
Slot
,
TX_req
->
Number_of_PDUs
,
TX_req
->
SFN
,
TX_req
->
Slot
,
TX_req
->
Number_of_PDUs
,
number_ul_dci_pdu
,
number_ul_tti_pdu
);
number_ul_dci_pdu
,
number_ul_tti_pdu
);
//
int pdcch_received=0;
int
pdcch_received
=
0
;
gNB
->
num_pdsch_rnti
=
0
;
gNB
->
num_pdsch_rnti
=
0
;
for
(
int
i
=
0
;
i
<
NUMBER_OF_NR_DLSCH_MAX
;
i
++
)
{
for
(
int
i
=
0
;
i
<
NUMBER_OF_NR_DLSCH_MAX
;
i
++
)
{
gNB
->
dlsch
[
i
][
0
]
->
rnti
=
0
;
gNB
->
dlsch
[
i
][
0
]
->
rnti
=
0
;
...
@@ -176,13 +176,13 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
...
@@ -176,13 +176,13 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
break
;
break
;
case
NFAPI_NR_DL_TTI_PDCCH_PDU_TYPE
:
case
NFAPI_NR_DL_TTI_PDCCH_PDU_TYPE
:
//
AssertFatal(pdcch_received == 0, "pdcch_received is not 0, we can only handle one PDCCH PDU per slot\n");
AssertFatal
(
pdcch_received
==
0
,
"pdcch_received is not 0, we can only handle one PDCCH PDU per slot
\n
"
);
LOG_D
(
PHY
,
"frame %d, slot %d, Got NFAPI_NR_DL_TTI_PDCCH_PDU_TYPE for %d.%d
\n
"
,
frame
,
slot
,
DL_req
->
SFN
,
DL_req
->
Slot
);
LOG_D
(
PHY
,
"frame %d, slot %d, Got NFAPI_NR_DL_TTI_PDCCH_PDU_TYPE for %d.%d
\n
"
,
frame
,
slot
,
DL_req
->
SFN
,
DL_req
->
Slot
);
handle_nfapi_nr_pdcch_pdu
(
gNB
,
handle_nfapi_nr_pdcch_pdu
(
gNB
,
frame
,
slot
,
frame
,
slot
,
&
dl_tti_pdu
->
pdcch_pdu
);
&
dl_tti_pdu
->
pdcch_pdu
);
//
pdcch_received = 1;
pdcch_received
=
1
;
break
;
break
;
case
NFAPI_NR_DL_TTI_PDSCH_PDU_TYPE
:
case
NFAPI_NR_DL_TTI_PDSCH_PDU_TYPE
:
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
86dee258
...
@@ -444,6 +444,7 @@ void nr_initiate_ra_proc(module_id_t module_idP,
...
@@ -444,6 +444,7 @@ void nr_initiate_ra_proc(module_id_t module_idP,
NR_CellGroupConfig_t
*
secondaryCellGroup
=
UE_list
->
secondaryCellGroup
[
UE_id
];
NR_CellGroupConfig_t
*
secondaryCellGroup
=
UE_list
->
secondaryCellGroup
[
UE_id
];
NR_COMMON_channels_t
*
cc
=
&
nr_mac
->
common_channels
[
CC_id
];
NR_COMMON_channels_t
*
cc
=
&
nr_mac
->
common_channels
[
CC_id
];
NR_ServingCellConfigCommon_t
*
scc
=
cc
->
ServingCellConfigCommon
;
NR_ServingCellConfigCommon_t
*
scc
=
cc
->
ServingCellConfigCommon
;
NR_RA_t
*
ra
=
&
cc
->
ra
[
0
];
// if the preamble received correspond to one of the listed
// if the preamble received correspond to one of the listed
// the UE sent a RACH either for starting RA procedure or RA procedure failed and UE retries
// the UE sent a RACH either for starting RA procedure or RA procedure failed and UE retries
...
@@ -462,9 +463,6 @@ void nr_initiate_ra_proc(module_id_t module_idP,
...
@@ -462,9 +463,6 @@ void nr_initiate_ra_proc(module_id_t module_idP,
return
;
// if the PRACH preamble does not correspond to any of the ones sent through RRC abort RA proc
return
;
// if the PRACH preamble does not correspond to any of the ones sent through RRC abort RA proc
}
}
for
(
int
i
=
0
;
i
<
NB_RA_PROC_MAX
;
i
++
)
{
NR_RA_t
*
ra
=
&
cc
->
ra
[
i
];
// This should be handled differently when we use the initialBWP for RA
// This should be handled differently when we use the initialBWP for RA
ra
->
bwp_id
=
1
;
ra
->
bwp_id
=
1
;
NR_BWP_Downlink_t
*
bwp
=
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
ra
->
bwp_id
-
1
];
NR_BWP_Downlink_t
*
bwp
=
secondaryCellGroup
->
spCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
->
list
.
array
[
ra
->
bwp_id
-
1
];
...
@@ -542,7 +540,6 @@ void nr_initiate_ra_proc(module_id_t module_idP,
...
@@ -542,7 +540,6 @@ void nr_initiate_ra_proc(module_id_t module_idP,
return
;
return
;
}
}
}
LOG_E
(
MAC
,
"[gNB %d][RAPROC] FAILURE: CC_id %d Frame %d initiating RA procedure for preamble index %d
\n
"
,
module_idP
,
CC_id
,
frameP
,
preamble_index
);
LOG_E
(
MAC
,
"[gNB %d][RAPROC] FAILURE: CC_id %d Frame %d initiating RA procedure for preamble index %d
\n
"
,
module_idP
,
CC_id
,
frameP
,
preamble_index
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_INITIATE_RA_PROC
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_INITIATE_RA_PROC
,
0
);
...
@@ -556,10 +553,12 @@ void nr_schedule_RA(module_id_t module_idP, frame_t frameP, sub_frame_t slotP){
...
@@ -556,10 +553,12 @@ void nr_schedule_RA(module_id_t module_idP, frame_t frameP, sub_frame_t slotP){
NR_COMMON_channels_t
*
cc
=
&
mac
->
common_channels
[
CC_id
];
NR_COMMON_channels_t
*
cc
=
&
mac
->
common_channels
[
CC_id
];
start_meas
(
&
mac
->
schedule_ra
);
start_meas
(
&
mac
->
schedule_ra
);
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
for
(
int
i
=
0
;
i
<
NR_NB_RA_PROC_MAX
;
i
++
)
{
// for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) {
// for (int i = 0; i < NR_NB_RA_PROC_MAX; i++) {
NR_RA_t
*
ra
=
&
cc
->
ra
[
i
];
// NR_RA_t *ra = &cc->ra[i];
NR_RA_t
*
ra
=
&
cc
->
ra
[
0
];
LOG_D
(
MAC
,
"RA[state:%d]
\n
"
,
ra
->
state
);
LOG_D
(
MAC
,
"RA[state:%d]
\n
"
,
ra
->
state
);
switch
(
ra
->
state
){
switch
(
ra
->
state
){
...
@@ -575,8 +574,8 @@ void nr_schedule_RA(module_id_t module_idP, frame_t frameP, sub_frame_t slotP){
...
@@ -575,8 +574,8 @@ void nr_schedule_RA(module_id_t module_idP, frame_t frameP, sub_frame_t slotP){
default:
default:
break
;
break
;
}
}
}
//
}
}
//
}
stop_meas
(
&
mac
->
schedule_ra
);
stop_meas
(
&
mac
->
schedule_ra
);
}
}
...
...
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
View file @
86dee258
...
@@ -208,7 +208,7 @@ void NR_UL_indication(NR_UL_IND_t *UL_info) {
...
@@ -208,7 +208,7 @@ void NR_UL_indication(NR_UL_IND_t *UL_info) {
NR_IF_Module_t
*
ifi
=
if_inst
[
module_id
];
NR_IF_Module_t
*
ifi
=
if_inst
[
module_id
];
gNB_MAC_INST
*
mac
=
RC
.
nrmac
[
module_id
];
gNB_MAC_INST
*
mac
=
RC
.
nrmac
[
module_id
];
LOG_
I
(
PHY
,
"SFN/SF:%d%d module_id:%d CC_id:%d UL_info[rach_pdus:%d rx_ind:%d crcs:%d]
\n
"
,
LOG_
D
(
PHY
,
"SFN/SF:%d%d module_id:%d CC_id:%d UL_info[rach_pdus:%d rx_ind:%d crcs:%d]
\n
"
,
UL_info
->
frame
,
UL_info
->
slot
,
UL_info
->
frame
,
UL_info
->
slot
,
module_id
,
CC_id
,
UL_info
->
rach_ind
.
number_of_pdus
,
module_id
,
CC_id
,
UL_info
->
rach_ind
.
number_of_pdus
,
UL_info
->
rx_ind
.
number_of_pdus
,
UL_info
->
crc_ind
.
number_crcs
);
UL_info
->
rx_ind
.
number_of_pdus
,
UL_info
->
crc_ind
.
number_crcs
);
...
...
openair2/RRC/NR/rrc_gNB_reconfig.c
View file @
86dee258
...
@@ -161,7 +161,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
...
@@ -161,7 +161,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
ssbElem
[
0
]
->
ssb
=
0
;
ssbElem
[
0
]
->
ssb
=
0
;
ssbElem
[
0
]
->
ra_PreambleIndex
=
63
;
ssbElem
[
0
]
->
ra_PreambleIndex
=
63
;
ASN_SEQUENCE_ADD
(
&
secondaryCellGroup
->
spCellConfig
->
reconfigurationWithSync
->
rach_ConfigDedicated
->
choice
.
uplink
->
cfra
->
resources
.
choice
.
ssb
->
ssb_ResourceList
.
list
,
ssbElem
[
0
]);
ASN_SEQUENCE_ADD
(
&
secondaryCellGroup
->
spCellConfig
->
reconfigurationWithSync
->
rach_ConfigDedicated
->
choice
.
uplink
->
cfra
->
resources
.
choice
.
ssb
->
ssb_ResourceList
.
list
,
ssbElem
[
0
]);
#if
1
#if
0
ssbElem[1] = calloc(1,sizeof(struct NR_CFRA_SSB_Resource));
ssbElem[1] = calloc(1,sizeof(struct NR_CFRA_SSB_Resource));
ssbElem[1]->ssb = 1;
ssbElem[1]->ssb = 1;
ssbElem[1]->ra_PreambleIndex = 62;
ssbElem[1]->ra_PreambleIndex = 62;
...
...
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