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
14c81b11
Commit
14c81b11
authored
Jun 08, 2023
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
further changes after merge with develop
parent
318140f6
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
26 additions
and
102 deletions
+26
-102
CMakeLists.txt
CMakeLists.txt
+1
-4
cmake_targets/build_oai
cmake_targets/build_oai
+1
-1
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
+1
-10
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+20
-14
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+2
-2
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
+0
-38
openair2/NR_PHY_INTERFACE/NR_IF_Module.h
openair2/NR_PHY_INTERFACE/NR_IF_Module.h
+0
-1
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+1
-32
No files found.
CMakeLists.txt
View file @
14c81b11
...
@@ -46,7 +46,6 @@ include_directories(${CONFIG_INCLUDE_DIRS})
...
@@ -46,7 +46,6 @@ include_directories(${CONFIG_INCLUDE_DIRS})
pkg_search_module
(
CRYPTO libcrypto REQUIRED
)
pkg_search_module
(
CRYPTO libcrypto REQUIRED
)
include_directories
(
${
CRYPTO_INCLUDE_DIRS
}
)
include_directories
(
${
CRYPTO_INCLUDE_DIRS
}
)
<<<<<<< HEAD
add_list2_option
(
TP_PROTO
"None"
"Ethernet"
"benetel4g"
"benetel5g"
"oran_fhlib_5g"
)
add_list2_option
(
TP_PROTO
"None"
"Ethernet"
"benetel4g"
"benetel5g"
"oran_fhlib_5g"
)
if
(
${
TP_PROTO
}
STREQUAL
"oran_fhlib_5g"
)
if
(
${
TP_PROTO
}
STREQUAL
"oran_fhlib_5g"
)
if
(
DEFINED ENV{RTE_SDK}
)
if
(
DEFINED ENV{RTE_SDK}
)
...
@@ -61,7 +60,6 @@ if (${TP_PROTO} STREQUAL "oran_fhlib_5g")
...
@@ -61,7 +60,6 @@ if (${TP_PROTO} STREQUAL "oran_fhlib_5g")
message
(
FATAL_ERROR
"RTE_TARGET is NOT defined"
)
message
(
FATAL_ERROR
"RTE_TARGET is NOT defined"
)
endif
()
endif
()
endif
()
endif
()
=======
# Check if asn1c is installed, and check if it supports all options we need
# Check if asn1c is installed, and check if it supports all options we need
# a user can provide ASN1C_EXEC to override an asn1c to use (e.g., parallel
# a user can provide ASN1C_EXEC to override an asn1c to use (e.g., parallel
# installation)
# installation)
...
@@ -79,7 +77,6 @@ check_option(${ASN1C_EXEC} -no-gen-UPER ASN1C_EXEC)
...
@@ -79,7 +77,6 @@ check_option(${ASN1C_EXEC} -no-gen-UPER ASN1C_EXEC)
check_option
(
${
ASN1C_EXEC
}
-no-gen-JER ASN1C_EXEC
)
check_option
(
${
ASN1C_EXEC
}
-no-gen-JER ASN1C_EXEC
)
check_option
(
${
ASN1C_EXEC
}
-no-gen-BER ASN1C_EXEC
)
check_option
(
${
ASN1C_EXEC
}
-no-gen-BER ASN1C_EXEC
)
check_option
(
${
ASN1C_EXEC
}
-no-gen-OER ASN1C_EXEC
)
check_option
(
${
ASN1C_EXEC
}
-no-gen-OER ASN1C_EXEC
)
>>>>>>> origin/develop
#uhd 4.0 and iris installs by default in /usr/local
#uhd 4.0 and iris installs by default in /usr/local
include_directories
(
"/usr/local/include/"
)
include_directories
(
"/usr/local/include/"
)
...
@@ -634,7 +631,7 @@ target_link_libraries(benetel_5g PRIVATE pthread dl rt m numa)
...
@@ -634,7 +631,7 @@ target_link_libraries(benetel_5g PRIVATE pthread dl rt m numa)
# ORAN 5G library
# ORAN 5G library
######################################################################
######################################################################
add_boolean_option
(
ORAN_BRONZE ON
"Build support for Bronze version of ORAN FHI"
)
add_boolean_option
(
ORAN_BRONZE ON
"Build support for Bronze version of ORAN FHI"
ON
)
if
(
ORAN_BRONZE
)
if
(
ORAN_BRONZE
)
set
(
ORAN_FHLIB_5G_SOURCE
set
(
ORAN_FHLIB_5G_SOURCE
${
OPENAIR_DIR
}
/radio/ETHERNET/oran/5g/sample-app-bronze.c
${
OPENAIR_DIR
}
/radio/ETHERNET/oran/5g/sample-app-bronze.c
...
...
cmake_targets/build_oai
View file @
14c81b11
...
@@ -631,7 +631,7 @@ function main() {
...
@@ -631,7 +631,7 @@ function main() {
echo_info
"liboai_transpro.so is linked to BENETEL4G transport"
echo_info
"liboai_transpro.so is linked to BENETEL4G transport"
fi
fi
if
[
"
$TP
"
==
"oran_fhlib_5g"
]
;
then
if
[
"
$TP
"
==
"oran_fhlib_5g"
]
;
then
compilations
$BUILD_DIR
oran_fhlib_5g
compilations
$BUILD_DIR
oran_fhlib_5g
.txt oran_fhlib_5g
ln
-sf
liboran_fhlib_5g.so liboai_transpro.so
ln
-sf
liboran_fhlib_5g.so liboai_transpro.so
ORAN_BRONZE
=
1
ORAN_BRONZE
=
1
echo_info
"liboai_transpro.so is linked to oran_fhlib_5G transport"
echo_info
"liboai_transpro.so is linked to oran_fhlib_5G transport"
...
...
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
View file @
14c81b11
...
@@ -118,7 +118,7 @@ static uint32_t prnt_crc_cnt = 0;
...
@@ -118,7 +118,7 @@ static uint32_t prnt_crc_cnt = 0;
#endif
#endif
void
nr_processULSegment
(
void
*
arg
)
void
nr_processULSegment
(
void
*
arg
)
{
ldpcDecode_t
*
rdata
=
(
ldpcDecode_t
*
)
arg
;
ldpcDecode_t
*
rdata
=
(
ldpcDecode_t
*
)
arg
;
PHY_VARS_gNB
*
phy_vars_gNB
=
rdata
->
gNB
;
PHY_VARS_gNB
*
phy_vars_gNB
=
rdata
->
gNB
;
NR_UL_gNB_HARQ_t
*
ulsch_harq
=
rdata
->
ulsch_harq
;
NR_UL_gNB_HARQ_t
*
ulsch_harq
=
rdata
->
ulsch_harq
;
...
@@ -250,15 +250,11 @@ void nr_processULSegment(void *arg)
...
@@ -250,15 +250,11 @@ void nr_processULSegment(void *arg)
#endif
#endif
rdata
->
decodeIterations
=
no_iteration_ldpc
;
rdata
->
decodeIterations
=
no_iteration_ldpc
;
if
(
rdata
->
decodeIterations
>
p_decoderParms
->
numMaxIter
)
rdata
->
decodeIterations
--
;
if
(
rdata
->
decodeIterations
>
p_decoderParms
->
numMaxIter
)
rdata
->
decodeIterations
--
;
/* remember that the data is ok to not decode it again in case of retransmission */
ulsch_harq
->
crc_ok
[
r
]
=
true
;
}
else
{
}
else
{
#ifdef PRINT_CRC_CHECK
#ifdef PRINT_CRC_CHECK
LOG_I
(
PHY
,
"CRC NOK
\n
"
);
LOG_I
(
PHY
,
"CRC NOK
\n
"
);
#endif
#endif
rdata
->
decodeIterations
=
max_ldpc_iterations
+
1
;
rdata
->
decodeIterations
=
max_ldpc_iterations
+
1
;
/* set skip_ldpc_decoding to 1 to indicate to remaining threads that they shall not run LDPC decoding */
__atomic_store_n
(
&
ulsch_harq
->
skip_ldpc_decoding
,
1
,
__ATOMIC_SEQ_CST
);
}
}
for
(
int
m
=
0
;
m
<
Kr
>>
3
;
m
++
)
{
for
(
int
m
=
0
;
m
<
Kr
>>
3
;
m
++
)
{
...
@@ -570,8 +566,6 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
...
@@ -570,8 +566,6 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
else
{
else
{
dtx_det
=
0
;
dtx_det
=
0
;
/* tell to the threads that LDPC decoding has to be done */
__atomic_store_n
(
&
harq_process
->
skip_ldpc_decoding
,
0
,
__ATOMIC_SEQ_CST
);
for
(
int
r
=
0
;
r
<
harq_process
->
C
;
r
++
)
{
for
(
int
r
=
0
;
r
<
harq_process
->
C
;
r
++
)
{
int
E
=
nr_get_E
(
G
,
harq_process
->
C
,
Qm
,
n_layers
,
r
);
int
E
=
nr_get_E
(
G
,
harq_process
->
C
,
Qm
,
n_layers
,
r
);
...
@@ -597,9 +591,6 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
...
@@ -597,9 +591,6 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
rdata
->
ulsch
=
ulsch
;
rdata
->
ulsch
=
ulsch
;
rdata
->
ulsch_id
=
ULSCH_id
;
rdata
->
ulsch_id
=
ULSCH_id
;
rdata
->
tbslbrm
=
pusch_pdu
->
maintenance_parms_v3
.
tbSizeLbrmBytes
;
rdata
->
tbslbrm
=
pusch_pdu
->
maintenance_parms_v3
.
tbSizeLbrmBytes
;
/* in case of a new rx, tell nr_processULSegment() to process the data, so set crc_ok[r] to false */
if
(
harq_process
->
new_rx
)
harq_process
->
crc_ok
[
r
]
=
false
;
pushTpool
(
&
phy_vars_gNB
->
threadPool
,
req
);
pushTpool
(
&
phy_vars_gNB
->
threadPool
,
req
);
phy_vars_gNB
->
nbDecode
++
;
phy_vars_gNB
->
nbDecode
++
;
LOG_D
(
PHY
,
"Added a block to decode, in pipe: %d
\n
"
,
phy_vars_gNB
->
nbDecode
);
LOG_D
(
PHY
,
"Added a block to decode, in pipe: %d
\n
"
,
phy_vars_gNB
->
nbDecode
);
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
14c81b11
...
@@ -220,12 +220,13 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
...
@@ -220,12 +220,13 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
// if ((frame&127) == 0) dump_pdsch_stats(gNB);
// if ((frame&127) == 0) dump_pdsch_stats(gNB);
//apply the OFDM symbol rotation here
//apply the OFDM symbol rotation here
for
(
aa
=
0
;
aa
<
cfg
->
carrier_config
.
num_tx_ant
.
value
;
aa
++
)
{
if
(
1
/*(gNB->num_RU == 1) && (gNB->RU_list[0]->if_south != REMOTE_IF4p5)*/
)
{
apply_nr_rotation
(
fp
,
&
gNB
->
common_vars
.
txdataF
[
aa
][
txdataF_offset
],
slot
,
0
,
fp
->
Ncp
==
EXTENDED
?
12
:
14
);
for
(
aa
=
0
;
aa
<
cfg
->
carrier_config
.
num_tx_ant
.
value
;
aa
++
)
{
apply_nr_rotation
(
fp
,
&
gNB
->
common_vars
.
txdataF
[
aa
][
txdataF_offset
],
slot
,
0
,
fp
->
Ncp
==
EXTENDED
?
12
:
14
);
T
(
T_GNB_PHY_DL_OUTPUT_SIGNAL
,
T_INT
(
0
),
T
(
T_GNB_PHY_DL_OUTPUT_SIGNAL
,
T_INT
(
0
),
T_INT
(
frame
),
T_INT
(
slot
),
T_INT
(
frame
),
T_INT
(
slot
),
T_INT
(
aa
),
T_BUFFER
(
&
gNB
->
common_vars
.
txdataF
[
aa
][
txdataF_offset
],
fp
->
samples_per_slot_wCP
*
sizeof
(
int32_t
)));
T_INT
(
aa
),
T_BUFFER
(
&
gNB
->
common_vars
.
txdataF
[
aa
][
txdataF_offset
],
fp
->
samples_per_slot_wCP
*
sizeof
(
int32_t
)));
}
}
}
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_TX
+
offset
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_TX
+
offset
,
0
);
...
@@ -237,10 +238,8 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req)
...
@@ -237,10 +238,8 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req)
NR_UL_gNB_HARQ_t
*
ulsch_harq
=
rdata
->
ulsch_harq
;
NR_UL_gNB_HARQ_t
*
ulsch_harq
=
rdata
->
ulsch_harq
;
NR_gNB_ULSCH_t
*
ulsch
=
rdata
->
ulsch
;
NR_gNB_ULSCH_t
*
ulsch
=
rdata
->
ulsch
;
int
r
=
rdata
->
segment_r
;
int
r
=
rdata
->
segment_r
;
nfapi_nr_pusch_pdu_t
*
pusch_pdu
=
&
gNB
->
ulsch
[
rdata
->
ulsch_id
].
harq_process
->
ulsch_pdu
;
nfapi_nr_pusch_pdu_t
*
pusch_pdu
=
&
gNB
->
ulsch
[
rdata
->
ulsch_id
].
harq_process
->
ulsch_pdu
;
bool
decodeSuccess
=
(
rdata
->
decodeIterations
<=
rdata
->
decoderParms
.
numMaxIter
);
bool
decodeSuccess
=
(
rdata
->
decodeIterations
<=
rdata
->
decoderParms
.
numMaxIter
);
if
(
decodeSuccess
)
(
*
decodeSuccessCount
)
++
;
ulsch_harq
->
processedSegments
++
;
ulsch_harq
->
processedSegments
++
;
LOG_D
(
PHY
,
"processing result of segment: %d, processed %d/%d
\n
"
,
LOG_D
(
PHY
,
"processing result of segment: %d, processed %d/%d
\n
"
,
rdata
->
segment_r
,
ulsch_harq
->
processedSegments
,
rdata
->
nbSegments
);
rdata
->
segment_r
,
ulsch_harq
->
processedSegments
,
rdata
->
nbSegments
);
...
@@ -251,17 +250,24 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req)
...
@@ -251,17 +250,24 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req)
ulsch_harq
->
c
[
r
],
ulsch_harq
->
c
[
r
],
rdata
->
Kr_bytes
-
(
ulsch_harq
->
F
>>
3
)
-
((
ulsch_harq
->
C
>
1
)
?
3
:
0
));
rdata
->
Kr_bytes
-
(
ulsch_harq
->
F
>>
3
)
-
((
ulsch_harq
->
C
>
1
)
?
3
:
0
));
}
else
{
}
else
{
LOG_D
(
PHY
,
"uplink segment error %d/%d
\n
"
,
rdata
->
segment_r
,
rdata
->
nbSegments
);
if
(
rdata
->
nbSegments
!=
ulsch_harq
->
processedSegments
)
{
LOG_D
(
PHY
,
"ULSCH %d in error
\n
"
,
rdata
->
ulsch_id
);
int
nb
=
abortTpoolJob
(
&
gNB
->
threadPool
,
req
->
key
);
nb
+=
abortNotifiedFIFOJob
(
&
gNB
->
respDecode
,
req
->
key
);
gNB
->
nbDecode
-=
nb
;
LOG_D
(
PHY
,
"uplink segment error %d/%d, aborted %d segments
\n
"
,
rdata
->
segment_r
,
rdata
->
nbSegments
,
nb
);
LOG_D
(
PHY
,
"ULSCH %d in error
\n
"
,
rdata
->
ulsch_id
);
AssertFatal
(
ulsch_harq
->
processedSegments
+
nb
==
rdata
->
nbSegments
,
"processed: %d, aborted: %d , total %d
\n
"
,
ulsch_harq
->
processedSegments
,
nb
,
rdata
->
nbSegments
);
ulsch_harq
->
processedSegments
=
rdata
->
nbSegments
;
}
}
}
//int dumpsig=0;
//int dumpsig=0;
// if all segments are done
// if all segments are done
if
(
rdata
->
nbSegments
==
ulsch_harq
->
processedSegments
)
{
if
(
rdata
->
nbSegments
==
ulsch_harq
->
processedSegments
)
{
if
(
decodeSuccess
&&
!
gNB
->
pusch_vars
[
rdata
->
ulsch_id
].
DTX
)
{
if
(
decodeSuccess
&&
!
gNB
->
pusch_vars
[
rdata
->
ulsch_id
].
DTX
)
{
LOG_D
(
PHY
,
LOG_D
(
PHY
,
"[gNB %d] ULSCH: Setting ACK for SFN/SF %d.%d (rnti %x, pid %d, ndi %d, status %d, round %d, TBS %d, Max interation "
"[gNB %d] ULSCH: Setting ACK for SFN/SF %d.%d (rnti %x, pid %d, ndi %d, status %d, roun
d %d, TBS %d, Max interation "
"(all seg) %d)
\n
"
,
"(all seg) %d)
\n
"
,
gNB
->
Mod_id
,
gNB
->
Mod_id
,
ulsch
->
frame
,
ulsch
->
frame
,
ulsch
->
slot
,
ulsch
->
slot
,
...
@@ -405,7 +411,7 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int ULSCH
...
@@ -405,7 +411,7 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int ULSCH
notifiedFIFO_elt_t
*
req
=
pullTpool
(
&
gNB
->
respDecode
,
&
gNB
->
threadPool
);
notifiedFIFO_elt_t
*
req
=
pullTpool
(
&
gNB
->
respDecode
,
&
gNB
->
threadPool
);
if
(
req
==
NULL
)
if
(
req
==
NULL
)
break
;
// Tpool has been stopped
break
;
// Tpool has been stopped
nr_postDecode
(
gNB
,
req
,
&
decodeSuccessCount
);
nr_postDecode
(
gNB
,
req
);
delNotifiedFIFO_elt
(
req
);
delNotifiedFIFO_elt
(
req
);
}
}
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
14c81b11
...
@@ -176,7 +176,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP,
...
@@ -176,7 +176,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP,
if
((
ssb_start_symbol
/
14
)
==
rel_slot
){
if
((
ssb_start_symbol
/
14
)
==
rel_slot
){
const
int
prb_offset
=
offset_pointa
>>
scs
;
const
int
prb_offset
=
offset_pointa
>>
scs
;
schedule_ssb
(
frameP
,
slotP
,
scc
,
dl_req
,
i_ssb
,
ssbSubcarrierOffset
,
offset_pointa
,
(
*
(
uint32_t
*
)
cc
->
MIB_pdu
.
payload
)
&
((
1
<<
24
)
-
1
));
schedule_ssb
(
frameP
,
slotP
,
scc
,
dl_req
,
i_ssb
,
ssbSubcarrierOffset
,
offset_pointa
,
(
*
(
uint32_t
*
)
cc
->
MIB_pdu
.
payload
)
&
((
1
<<
24
)
-
1
));
fill_ssb_vrb_map
(
cc
,
prb_offset
,
ssbSubcarrierOffset
,
ssb_start_symbol
%
NR_SYMBOLS_PER_SLOT
,
CC_id
);
fill_ssb_vrb_map
(
cc
,
prb_offset
,
ssbSubcarrierOffset
,
ssb_start_symbol
,
CC_id
);
if
(
get_softmodem_params
()
->
sa
==
1
)
{
if
(
get_softmodem_params
()
->
sa
==
1
)
{
get_type0_PDCCH_CSS_config_parameters
(
&
gNB
->
type0_PDCCH_CSS_config
[
i_ssb
],
get_type0_PDCCH_CSS_config_parameters
(
&
gNB
->
type0_PDCCH_CSS_config
[
i_ssb
],
frameP
,
frameP
,
...
@@ -205,7 +205,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP,
...
@@ -205,7 +205,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP,
if
((
ssb_start_symbol
/
14
)
==
rel_slot
){
if
((
ssb_start_symbol
/
14
)
==
rel_slot
){
const
int
prb_offset
=
offset_pointa
>>
scs
;
const
int
prb_offset
=
offset_pointa
>>
scs
;
schedule_ssb
(
frameP
,
slotP
,
scc
,
dl_req
,
i_ssb
,
ssbSubcarrierOffset
,
offset_pointa
,
(
*
(
uint32_t
*
)
cc
->
MIB_pdu
.
payload
)
&
((
1
<<
24
)
-
1
));
schedule_ssb
(
frameP
,
slotP
,
scc
,
dl_req
,
i_ssb
,
ssbSubcarrierOffset
,
offset_pointa
,
(
*
(
uint32_t
*
)
cc
->
MIB_pdu
.
payload
)
&
((
1
<<
24
)
-
1
));
fill_ssb_vrb_map
(
cc
,
prb_offset
,
ssbSubcarrierOffset
,
ssb_start_symbol
%
NR_SYMBOLS_PER_SLOT
,
CC_id
);
fill_ssb_vrb_map
(
cc
,
prb_offset
,
ssbSubcarrierOffset
,
ssb_start_symbol
,
CC_id
);
if
(
get_softmodem_params
()
->
sa
==
1
)
{
if
(
get_softmodem_params
()
->
sa
==
1
)
{
get_type0_PDCCH_CSS_config_parameters
(
&
gNB
->
type0_PDCCH_CSS_config
[
i_ssb
],
get_type0_PDCCH_CSS_config_parameters
(
&
gNB
->
type0_PDCCH_CSS_config
[
i_ssb
],
frameP
,
frameP
,
...
...
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
View file @
14c81b11
...
@@ -385,43 +385,6 @@ static void match_crc_rx_pdu(nfapi_nr_rx_data_indication_t *rx_ind, nfapi_nr_crc
...
@@ -385,43 +385,6 @@ static void match_crc_rx_pdu(nfapi_nr_rx_data_indication_t *rx_ind, nfapi_nr_crc
}
}
}
}
void
scheduler
(
module_id_t
module_id
,
int
CC_id
,
int
frame
,
int
slot
)
{
NR_IF_Module_t
*
ifi
=
nr_if_inst
[
module_id
];
gNB_MAC_INST
*
mac
=
RC
.
nrmac
[
module_id
];
NR_Sched_Rsp_t
*
sched_info
=
&
NR_Sched_INFO
[
module_id
][
CC_id
];
gNB_dlsch_ulsch_scheduler
(
module_id
,
frame
,
slot
);
ifi
->
CC_mask
=
0
;
sched_info
->
module_id
=
module_id
;
sched_info
->
CC_id
=
CC_id
;
sched_info
->
frame
=
frame
;
sched_info
->
slot
=
slot
;
sched_info
->
DL_req
=
&
mac
->
DL_req
[
CC_id
];
sched_info
->
UL_dci_req
=
&
mac
->
UL_dci_req
[
CC_id
];
sched_info
->
UL_tti_req
=
mac
->
UL_tti_req
[
CC_id
];
sched_info
->
TX_req
=
&
mac
->
TX_req
[
CC_id
];
#ifdef DUMP_FAPI
dump_dl
(
sched_info
);
#endif
AssertFatal
(
ifi
->
NR_Schedule_response
!=
NULL
,
"nr_schedule_response is null (mod %d, cc %d)
\n
"
,
module_id
,
CC_id
);
ifi
->
NR_Schedule_response
(
sched_info
);
LOG_D
(
NR_PHY
,
"NR_Schedule_response: SFN SLOT:%d %d dl_pdus:%d
\n
"
,
sched_info
->
frame
,
sched_info
->
slot
,
sched_info
->
DL_req
->
dl_tti_request_body
.
nPDUs
);
}
void
NR_UL_indication
(
NR_UL_IND_t
*
UL_info
)
{
void
NR_UL_indication
(
NR_UL_IND_t
*
UL_info
)
{
AssertFatal
(
UL_info
!=
NULL
,
"UL_info is null
\n
"
);
AssertFatal
(
UL_info
!=
NULL
,
"UL_info is null
\n
"
);
module_id_t
module_id
=
UL_info
->
module_id
;
module_id_t
module_id
=
UL_info
->
module_id
;
...
@@ -546,7 +509,6 @@ NR_IF_Module_t *NR_IF_Module_init(int Mod_id) {
...
@@ -546,7 +509,6 @@ NR_IF_Module_t *NR_IF_Module_init(int Mod_id) {
nr_if_inst
[
Mod_id
]
->
CC_mask
=
0
;
nr_if_inst
[
Mod_id
]
->
CC_mask
=
0
;
nr_if_inst
[
Mod_id
]
->
NR_UL_indication
=
NR_UL_indication
;
nr_if_inst
[
Mod_id
]
->
NR_UL_indication
=
NR_UL_indication
;
nr_if_inst
[
Mod_id
]
->
NR_mac_scheduler
=
scheduler
;
AssertFatal
(
pthread_mutex_init
(
&
nr_if_inst
[
Mod_id
]
->
if_mutex
,
NULL
)
==
0
,
AssertFatal
(
pthread_mutex_init
(
&
nr_if_inst
[
Mod_id
]
->
if_mutex
,
NULL
)
==
0
,
"allocation of nr_if_inst[%d]->if_mutex fails
\n
"
,
Mod_id
);
"allocation of nr_if_inst[%d]->if_mutex fails
\n
"
,
Mod_id
);
}
}
...
...
openair2/NR_PHY_INTERFACE/NR_IF_Module.h
View file @
14c81b11
...
@@ -113,7 +113,6 @@ typedef struct NR_IF_Module_s {
...
@@ -113,7 +113,6 @@ typedef struct NR_IF_Module_s {
//define the function pointer
//define the function pointer
void
(
*
NR_UL_indication
)(
NR_UL_IND_t
*
UL_INFO
);
void
(
*
NR_UL_indication
)(
NR_UL_IND_t
*
UL_INFO
);
void
(
*
NR_Schedule_response
)(
NR_Sched_Rsp_t
*
Sched_INFO
);
void
(
*
NR_Schedule_response
)(
NR_Sched_Rsp_t
*
Sched_INFO
);
void
(
*
NR_mac_scheduler
)(
module_id_t
module_idP
,
int
CC_id
,
int
frame
,
int
slot
);
void
(
*
NR_PHY_config_req
)(
NR_PHY_Config_t
*
config_INFO
);
void
(
*
NR_PHY_config_req
)(
NR_PHY_Config_t
*
config_INFO
);
uint32_t
CC_mask
;
uint32_t
CC_mask
;
uint16_t
current_frame
;
uint16_t
current_frame
;
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
14c81b11
...
@@ -107,15 +107,6 @@
...
@@ -107,15 +107,6 @@
extern
RAN_CONTEXT_t
RC
;
extern
RAN_CONTEXT_t
RC
;
extern
void
pdcp_config_set_security
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
pdcp_t
*
const
pdcp_pP
,
const
rb_id_t
rb_idP
,
const
uint16_t
lc_idP
,
const
uint8_t
security_modeP
,
uint8_t
*
const
kRRCenc
,
uint8_t
*
const
kRRCint
,
uint8_t
*
const
kUPenc
);
static
inline
uint64_t
bitStr_to_uint64
(
BIT_STRING_t
*
asn
);
static
inline
uint64_t
bitStr_to_uint64
(
BIT_STRING_t
*
asn
);
mui_t
rrc_gNB_mui
=
0
;
mui_t
rrc_gNB_mui
=
0
;
...
@@ -358,27 +349,6 @@ void apply_macrlc_config_reest(gNB_RRC_INST *rrc, rrc_gNB_ue_context_t *const ue
...
@@ -358,27 +349,6 @@ void apply_macrlc_config_reest(gNB_RRC_INST *rrc, rrc_gNB_ue_context_t *const ue
nr_rrc_addmod_srbs
(
ctxt_pP
->
rntiMaybeUEid
,
ue_p
->
Srb
,
maxSRBs
,
ue_p
->
masterCellGroup
->
rlc_BearerToAddModList
);
nr_rrc_addmod_srbs
(
ctxt_pP
->
rntiMaybeUEid
,
ue_p
->
Srb
,
maxSRBs
,
ue_p
->
masterCellGroup
->
rlc_BearerToAddModList
);
}
}
void
apply_macrlc_config_reest
(
gNB_RRC_INST
*
rrc
,
rrc_gNB_ue_context_t
*
const
ue_context_pP
,
const
protocol_ctxt_t
*
const
ctxt_pP
,
ue_id_t
ue_id
)
{
rrc_mac_config_req_gNB
(
rrc
->
module_id
,
rrc
->
configuration
.
pdsch_AntennaPorts
,
rrc
->
configuration
.
pusch_AntennaPorts
,
rrc
->
configuration
.
sib1_tda
,
rrc
->
configuration
.
minRXTXTIME
,
NULL
,
NULL
,
NULL
,
0
,
ue_id
,
get_softmodem_params
()
->
sa
?
ue_context_pP
->
ue_context
.
masterCellGroup
:
NULL
);
nr_rrc_rlc_config_asn1_req
(
ctxt_pP
,
ue_context_pP
->
ue_context
.
SRB_configList
,
NULL
,
NULL
,
get_softmodem_params
()
->
sa
?
ue_context_pP
->
ue_context
.
masterCellGroup
->
rlc_BearerToAddModList
:
NULL
);
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
static
void
rrc_gNB_generate_RRCSetup
(
instance_t
instance
,
static
void
rrc_gNB_generate_RRCSetup
(
instance_t
instance
,
rnti_t
rnti
,
rnti_t
rnti
,
...
@@ -1007,8 +977,6 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
...
@@ -1007,8 +977,6 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
NULL
);
NULL
);
LOG_DUMPMSG
(
NR_RRC
,
DEBUG_RRC
,(
char
*
)
buffer
,
size
,
"[MSG] RRC Reconfiguration
\n
"
);
LOG_DUMPMSG
(
NR_RRC
,
DEBUG_RRC
,(
char
*
)
buffer
,
size
,
"[MSG] RRC Reconfiguration
\n
"
);
ue_context_pP
->
ue_context
.
pdu_session_release_command_flag
=
1
;
/* Free all NAS PDUs */
/* Free all NAS PDUs */
if
(
nas_length
>
0
)
{
if
(
nas_length
>
0
)
{
/* Free the NAS PDU buffer and invalidate it */
/* Free the NAS PDU buffer and invalidate it */
...
@@ -2176,6 +2144,7 @@ int rrc_gNB_decode_dcch(const protocol_ctxt_t *const ctxt_pP,
...
@@ -2176,6 +2144,7 @@ int rrc_gNB_decode_dcch(const protocol_ctxt_t *const ctxt_pP,
==
-
1
)
==
-
1
)
return
-
1
;
return
-
1
;
break
;
break
;
default:
default:
break
;
break
;
}
}
...
...
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