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
4c3b7188
Commit
4c3b7188
authored
May 13, 2021
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
commit before merge
parent
64cb9407
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
36 additions
and
35 deletions
+36
-35
openair1/PHY/NR_TRANSPORT/nr_prach.c
openair1/PHY/NR_TRANSPORT/nr_prach.c
+28
-28
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+8
-7
No files found.
openair1/PHY/NR_TRANSPORT/nr_prach.c
View file @
4c3b7188
...
@@ -858,37 +858,37 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
...
@@ -858,37 +858,37 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
memset
(
prachF
,
0
,
sizeof
(
int16_t
)
*
2
*
1024
);
memset
(
prachF
,
0
,
sizeof
(
int16_t
)
*
2
*
1024
);
if
(
LOG_DUMPFLAG
(
PRACH
))
{
if
(
LOG_DUMPFLAG
(
PRACH
))
{
LOG_M
(
"prach_rxF0.m"
,
"prach_rxF0"
,
rxsigF
[
0
],
N_ZC
,
1
,
1
);
LOG_M
(
"prach_rxF0.m"
,
"prach_rxF0"
,
rxsigF
[
0
],
N_ZC
,
1
,
1
);
LOG_M
(
"prach_rxF1.m"
,
"prach_rxF1"
,
rxsigF
[
1
],
6144
,
1
,
1
);
LOG_M
(
"prach_rxF1.m"
,
"prach_rxF1"
,
rxsigF
[
1
],
6144
,
1
,
1
);
}
}
for
(
aa
=
0
;
aa
<
nb_rx
;
aa
++
)
{
for
(
aa
=
0
;
aa
<
nb_rx
;
aa
++
)
{
// Do componentwise product with Xu* on each antenna
// Do componentwise product with Xu* on each antenna
for
(
offset
=
0
;
offset
<
(
N_ZC
<<
1
);
offset
+=
2
)
{
for
(
offset
=
0
;
offset
<
(
N_ZC
<<
1
);
offset
+=
2
)
{
prachF
[
offset
]
=
(
int16_t
)(((
int32_t
)
Xu
[
offset
]
*
rxsigF
[
aa
][
offset
]
+
(
int32_t
)
Xu
[
offset
+
1
]
*
rxsigF
[
aa
][
offset
+
1
])
>>
15
);
prachF
[
offset
]
=
(
int16_t
)(((
int32_t
)
Xu
[
offset
]
*
rxsigF
[
aa
][
offset
]
+
(
int32_t
)
Xu
[
offset
+
1
]
*
rxsigF
[
aa
][
offset
+
1
])
>>
15
);
prachF
[
offset
+
1
]
=
(
int16_t
)(((
int32_t
)
Xu
[
offset
]
*
rxsigF
[
aa
][
offset
+
1
]
-
(
int32_t
)
Xu
[
offset
+
1
]
*
rxsigF
[
aa
][
offset
])
>>
15
);
prachF
[
offset
+
1
]
=
(
int16_t
)(((
int32_t
)
Xu
[
offset
]
*
rxsigF
[
aa
][
offset
+
1
]
-
(
int32_t
)
Xu
[
offset
+
1
]
*
rxsigF
[
aa
][
offset
])
>>
15
);
}
}
// Now do IFFT of size 1024 (N_ZC=839) or 256 (N_ZC=139)
// Now do IFFT of size 1024 (N_ZC=839) or 256 (N_ZC=139)
if
(
N_ZC
==
839
)
{
if
(
N_ZC
==
839
)
{
log2_ifft_size
=
10
;
log2_ifft_size
=
10
;
idft
(
IDFT_1024
,
prachF
,
prach_ifft_tmp
,
1
);
idft
(
IDFT_1024
,
prachF
,
prach_ifft_tmp
,
1
);
// compute energy and accumulate over receive antennas
// compute energy and accumulate over receive antennas
for
(
i
=
0
;
i
<
2048
;
i
++
)
for
(
i
=
0
;
i
<
2048
;
i
++
)
prach_ifft
[
i
]
+=
((
int32_t
)
prach_ifft_tmp
[
i
<<
1
]
*
(
int32_t
)
prach_ifft_tmp
[
i
<<
1
]
+
(
int32_t
)
prach_ifft_tmp
[
1
+
(
i
<<
1
)]
*
(
int32_t
)
prach_ifft_tmp
[
1
+
(
i
<<
1
)])
>>
10
;
prach_ifft
[
i
]
+=
((
int32_t
)
prach_ifft_tmp
[
i
<<
1
]
*
(
int32_t
)
prach_ifft_tmp
[
i
<<
1
]
+
(
int32_t
)
prach_ifft_tmp
[
1
+
(
i
<<
1
)]
*
(
int32_t
)
prach_ifft_tmp
[
1
+
(
i
<<
1
)])
/
nb_rx
;
}
else
{
}
else
{
idft
(
IDFT_256
,
prachF
,
prach_ifft_tmp
,
1
);
idft
(
IDFT_256
,
prachF
,
prach_ifft_tmp
,
1
);
log2_ifft_size
=
8
;
log2_ifft_size
=
8
;
// compute energy and accumulate over receive antennas and repetitions for BR
// compute energy and accumulate over receive antennas and repetitions for BR
for
(
i
=
0
;
i
<
256
;
i
++
)
for
(
i
=
0
;
i
<
256
;
i
++
)
prach_ifft
[
i
]
+=
((
int32_t
)
prach_ifft_tmp
[
i
<<
1
]
*
(
int32_t
)
prach_ifft_tmp
[(
i
<<
1
)]
+
(
int32_t
)
prach_ifft_tmp
[
1
+
(
i
<<
1
)]
*
(
int32_t
)
prach_ifft_tmp
[
1
+
(
i
<<
1
)])
>>
10
;
prach_ifft
[
i
]
+=
((
int32_t
)
prach_ifft_tmp
[
i
<<
1
]
*
(
int32_t
)
prach_ifft_tmp
[(
i
<<
1
)]
+
(
int32_t
)
prach_ifft_tmp
[
1
+
(
i
<<
1
)]
*
(
int32_t
)
prach_ifft_tmp
[
1
+
(
i
<<
1
)])
/
nb_rx
;
}
}
if
(
LOG_DUMPFLAG
(
PRACH
))
{
if
(
LOG_DUMPFLAG
(
PRACH
))
{
if
(
aa
==
0
)
LOG_M
(
"prach_rxF_comp0.m"
,
"prach_rxF_comp0"
,
prachF
,
1024
,
1
,
1
);
if
(
aa
==
0
)
LOG_M
(
"prach_rxF_comp0.m"
,
"prach_rxF_comp0"
,
prachF
,
1024
,
1
,
1
);
if
(
aa
==
1
)
LOG_M
(
"prach_rxF_comp1.m"
,
"prach_rxF_comp1"
,
prachF
,
1024
,
1
,
1
);
if
(
aa
==
1
)
LOG_M
(
"prach_rxF_comp1.m"
,
"prach_rxF_comp1"
,
prachF
,
1024
,
1
,
1
);
}
}
}
// antennas_rx
}
// antennas_rx
}
// new dft
}
// new dft
...
@@ -900,10 +900,10 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
...
@@ -900,10 +900,10 @@ 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_D
(
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
;
}
}
}
}
}
// preamble_index
}
// preamble_index
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
4c3b7188
...
@@ -1631,13 +1631,14 @@ uint16_t do_RRCReconfiguration(
...
@@ -1631,13 +1631,14 @@ uint16_t do_RRCReconfiguration(
// *security_config->keyToUse = NR_SecurityConfig__keyToUse_master;
// *security_config->keyToUse = NR_SecurityConfig__keyToUse_master;
ie
=
calloc
(
1
,
sizeof
(
NR_RRCReconfiguration_IEs_t
));
ie
=
calloc
(
1
,
sizeof
(
NR_RRCReconfiguration_IEs_t
));
ie
->
radioBearerConfig
=
calloc
(
1
,
sizeof
(
NR_RadioBearerConfig_t
));
if
(
SRB_configList
||
DRB_configList
)
{
ie
->
radioBearerConfig
->
srb_ToAddModList
=
SRB_configList
;
ie
->
radioBearerConfig
=
calloc
(
1
,
sizeof
(
NR_RadioBearerConfig_t
));
ie
->
radioBearerConfig
->
drb_ToAddModList
=
DRB_configList
;
ie
->
radioBearerConfig
->
srb_ToAddModList
=
SRB_configList
;
ie
->
radioBearerConfig
->
securityConfig
=
security_config
;
ie
->
radioBearerConfig
->
drb_ToAddModList
=
DRB_configList
;
ie
->
radioBearerConfig
->
srb3_ToRelease
=
NULL
;
ie
->
radioBearerConfig
->
securityConfig
=
security_config
;
ie
->
radioBearerConfig
->
drb_ToReleaseList
=
DRB_releaseList
;
ie
->
radioBearerConfig
->
srb3_ToRelease
=
NULL
;
ie
->
radioBearerConfig
->
drb_ToReleaseList
=
DRB_releaseList
;
}
/******************** Secondary Cell Group ********************/
/******************** Secondary Cell Group ********************/
// rrc_gNB_carrier_data_t *carrier = &(gnb_rrc_inst->carrier);
// rrc_gNB_carrier_data_t *carrier = &(gnb_rrc_inst->carrier);
// fill_default_secondaryCellGroup( carrier->servingcellconfigcommon,
// fill_default_secondaryCellGroup( carrier->servingcellconfigcommon,
...
...
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