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
351667fc
Commit
351667fc
authored
1 year ago
by
Marius Tillner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
testing where second retransmission gets lost
parent
ca3c98ba
No related merge requests found
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
23199 additions
and
14 deletions
+23199
-14
executables/nr-gnb.c
executables/nr-gnb.c
+2
-1
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+26
-6
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+1
-1
openair2/LAYER2/nr_pdcp/nr_pdcp_entity.c
openair2/LAYER2/nr_pdcp/nr_pdcp_entity.c
+11
-6
restore
restore
+23159
-0
No files found.
executables/nr-gnb.c
View file @
351667fc
...
@@ -102,6 +102,7 @@ time_stats_t softmodem_stats_rx_sf; // total rx time
...
@@ -102,6 +102,7 @@ time_stats_t softmodem_stats_rx_sf; // total rx time
#include "executables/thread-common.h"
#include "executables/thread-common.h"
#include "common/utils/LATSEQ/latseq.h"
//#define TICK_TO_US(ts) (ts.diff)
//#define TICK_TO_US(ts) (ts.diff)
...
@@ -279,7 +280,7 @@ void rx_func(void *param) {
...
@@ -279,7 +280,7 @@ void rx_func(void *param) {
res
->
key
=
slot_tx
;
res
->
key
=
slot_tx
;
pushNotifiedFIFO
(
&
gNB
->
L1_tx_out
,
res
);
pushNotifiedFIFO
(
&
gNB
->
L1_tx_out
,
res
);
}
}
LATSEQ_P
(
"U End.rx.func--"
,
"::fm%d.sl%d"
,
frame_rx
,
slot_rx
);
#if 0
#if 0
LOG_D(PHY, "rxtx:%lld nfapi:%lld phy:%lld tx:%lld rx:%lld prach:%lld ofdm:%lld ",
LOG_D(PHY, "rxtx:%lld nfapi:%lld phy:%lld tx:%lld rx:%lld prach:%lld ofdm:%lld ",
softmodem_stats_rxtx_sf.diff_now, nfapi_meas.diff_now,
softmodem_stats_rxtx_sf.diff_now, nfapi_meas.diff_now,
...
...
This diff is collapsed.
Click to expand it.
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
351667fc
...
@@ -215,6 +215,7 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req) {
...
@@ -215,6 +215,7 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req) {
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_processes
[
rdata
->
harq_pid
]
->
ulsch_pdu
;
nfapi_nr_pusch_pdu_t
*
pusch_pdu
=
&
gNB
->
ulsch
[
rdata
->
ulsch_id
]
->
harq_processes
[
rdata
->
harq_pid
]
->
ulsch_pdu
;
LATSEQ_P
(
"U Begin.post.decode--"
,
"::fm%d.sl%d"
,
ulsch_harq
->
frame
,
ulsch_harq
->
slot
);
bool
decodeSuccess
=
(
rdata
->
decodeIterations
<=
rdata
->
decoderParms
.
numMaxIter
);
bool
decodeSuccess
=
(
rdata
->
decodeIterations
<=
rdata
->
decoderParms
.
numMaxIter
);
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
"
,
...
@@ -222,7 +223,7 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req) {
...
@@ -222,7 +223,7 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req) {
gNB
->
nbDecode
--
;
gNB
->
nbDecode
--
;
LOG_D
(
PHY
,
"remain to decoded in subframe: %d
\n
"
,
gNB
->
nbDecode
);
LOG_D
(
PHY
,
"remain to decoded in subframe: %d
\n
"
,
gNB
->
nbDecode
);
if
(
decodeSuccess
)
{
if
(
decodeSuccess
)
{
LATSEQ_P
(
"U mac.decoded--mac.demuxed"
,
"
::frame%d.slot%d.ulschid%d.harqpid%d.harqround%d"
,
ulsch_harq
->
frame
,
ulsch_harq
->
slot
,
rdata
->
ulsch_id
,
rdata
->
harq_pid
,
ulsch_harq
->
round
);
LATSEQ_P
(
"U mac.decoded--mac.demuxed"
,
"
len%d::frame%d.slot%d.harqpid%d.harqround%d.mcs%d.ldpciter%d"
,
rdata
->
Kr_bytes
,
ulsch_harq
->
frame
,
ulsch_harq
->
slot
,
rdata
->
harq_pid
,
ulsch_harq
->
round
,
pusch_pdu
->
mcs_index
,
rdata
->
decodeIterations
);
memcpy
(
ulsch_harq
->
b
+
rdata
->
offset
,
memcpy
(
ulsch_harq
->
b
+
rdata
->
offset
,
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
));
...
@@ -267,8 +268,12 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req) {
...
@@ -267,8 +268,12 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req) {
LOG_D
(
PHY
,
"ULSCH %d in error
\n
"
,
rdata
->
ulsch_id
);
LOG_D
(
PHY
,
"ULSCH %d in error
\n
"
,
rdata
->
ulsch_id
);
nr_fill_indication
(
gNB
,
ulsch_harq
->
frame
,
ulsch_harq
->
slot
,
rdata
->
ulsch_id
,
rdata
->
harq_pid
,
1
,
0
);
nr_fill_indication
(
gNB
,
ulsch_harq
->
frame
,
ulsch_harq
->
slot
,
rdata
->
ulsch_id
,
rdata
->
harq_pid
,
1
,
0
);
LATSEQ_P
(
"U mac.decoded--mac.retx"
,
"::frame%d.slot%d.ulschid%d.harqpid%d"
,
ulsch_harq
->
frame
,
ulsch_harq
->
slot
,
rdata
->
ulsch_id
,
rdata
->
harq_pid
);
if
(
ulsch_harq
->
round
==
3
)
{
LATSEQ_P
(
"U mac.retx--phy.demodulatestart"
,
"::harqpid%d.harqround%d"
,
rdata
->
harq_pid
,
ulsch_harq
->
round
+
1
);
LATSEQ_P
(
"U mac.decoded--mac.retxdrop"
,
"::frame%d.slot%d.harqpid%d"
,
ulsch_harq
->
frame
,
ulsch_harq
->
slot
,
rdata
->
harq_pid
);
}
else
{
LATSEQ_P
(
"U mac.decoded--mac.retx.decodefailed"
,
"::frame%d.slot%d.framertx%d.slotrtx%d.harqpid%d"
,
ulsch_harq
->
frame
,
ulsch_harq
->
slot
,
ulsch_harq
->
frame
,
ulsch_harq
->
slot
,
rdata
->
harq_pid
);
LATSEQ_P
(
"U mac.retx.decodefailed--phy.demodulatestart"
,
"::framertx%d.slotrtx%d.harqpid%d.harqround%d"
,
ulsch_harq
->
frame
,
ulsch_harq
->
slot
,
rdata
->
harq_pid
,
ulsch_harq
->
round
+
1
);
}
// dumpsig=1;
// dumpsig=1;
}
}
/*
/*
...
@@ -311,6 +316,7 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req) {
...
@@ -311,6 +316,7 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req) {
void
nr_ulsch_procedures
(
PHY_VARS_gNB
*
gNB
,
int
frame_rx
,
int
slot_rx
,
int
ULSCH_id
,
uint8_t
harq_pid
)
void
nr_ulsch_procedures
(
PHY_VARS_gNB
*
gNB
,
int
frame_rx
,
int
slot_rx
,
int
ULSCH_id
,
uint8_t
harq_pid
)
{
{
LATSEQ_P
(
"U Beginning.ulsch.procedures--"
,
"::fm%d.sl%d"
,
frame_rx
,
slot_rx
);
NR_DL_FRAME_PARMS
*
frame_parms
=
&
gNB
->
frame_parms
;
NR_DL_FRAME_PARMS
*
frame_parms
=
&
gNB
->
frame_parms
;
nfapi_nr_pusch_pdu_t
*
pusch_pdu
=
&
gNB
->
ulsch
[
ULSCH_id
]
->
harq_processes
[
harq_pid
]
->
ulsch_pdu
;
nfapi_nr_pusch_pdu_t
*
pusch_pdu
=
&
gNB
->
ulsch
[
ULSCH_id
]
->
harq_processes
[
harq_pid
]
->
ulsch_pdu
;
...
@@ -371,7 +377,7 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int ULSCH
...
@@ -371,7 +377,7 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int ULSCH
//----------------------------------------------------------
//----------------------------------------------------------
//--------------------- ULSCH decoding ---------------------
//--------------------- ULSCH decoding ---------------------
//----------------------------------------------------------
//----------------------------------------------------------
LATSEQ_P
(
"U before.ulsch.decoding--"
,
"::x%d"
,
1
);
start_meas
(
&
gNB
->
ulsch_decoding_stats
);
start_meas
(
&
gNB
->
ulsch_decoding_stats
);
nr_ulsch_decoding
(
gNB
,
nr_ulsch_decoding
(
gNB
,
ULSCH_id
,
ULSCH_id
,
...
@@ -382,6 +388,7 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int ULSCH
...
@@ -382,6 +388,7 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int ULSCH
slot_rx
,
slot_rx
,
harq_pid
,
harq_pid
,
G
);
G
);
LATSEQ_P
(
"U after.ulsch.decoding--"
,
"::x%d"
,
1
);
if
(
enable_ldpc_offload
==
0
)
{
if
(
enable_ldpc_offload
==
0
)
{
while
(
gNB
->
nbDecode
>
0
)
{
while
(
gNB
->
nbDecode
>
0
)
{
notifiedFIFO_elt_t
*
req
=
pullTpool
(
&
gNB
->
respDecode
,
&
gNB
->
threadPool
);
notifiedFIFO_elt_t
*
req
=
pullTpool
(
&
gNB
->
respDecode
,
&
gNB
->
threadPool
);
...
@@ -392,6 +399,7 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int ULSCH
...
@@ -392,6 +399,7 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int ULSCH
}
}
}
}
stop_meas
(
&
gNB
->
ulsch_decoding_stats
);
stop_meas
(
&
gNB
->
ulsch_decoding_stats
);
LATSEQ_P
(
"U End.ulsch.procedures--"
,
"::fm%d.sl%d"
,
frame_rx
,
slot_rx
);
}
}
...
@@ -689,6 +697,7 @@ int check_srs_pdu(const nfapi_nr_srs_pdu_t *srs_pdu, nfapi_nr_srs_pdu_t *saved_s
...
@@ -689,6 +697,7 @@ int check_srs_pdu(const nfapi_nr_srs_pdu_t *srs_pdu, nfapi_nr_srs_pdu_t *saved_s
}
}
int
phy_procedures_gNB_uespec_RX
(
PHY_VARS_gNB
*
gNB
,
int
frame_rx
,
int
slot_rx
)
{
int
phy_procedures_gNB_uespec_RX
(
PHY_VARS_gNB
*
gNB
,
int
frame_rx
,
int
slot_rx
)
{
LATSEQ_P
(
"U Beginning.phy.procedures.gNB.uespec--"
,
"::fm%d.sl%d"
,
frame_rx
,
slot_rx
);
/* those variables to log T_GNB_PHY_PUCCH_PUSCH_IQ only when we try to decode */
/* those variables to log T_GNB_PHY_PUCCH_PUSCH_IQ only when we try to decode */
int
pucch_decode_done
=
0
;
int
pucch_decode_done
=
0
;
int
pusch_decode_done
=
0
;
int
pusch_decode_done
=
0
;
...
@@ -828,9 +837,9 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
...
@@ -828,9 +837,9 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RX_PUSCH
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RX_PUSCH
,
1
);
start_meas
(
&
gNB
->
rx_pusch_stats
);
start_meas
(
&
gNB
->
rx_pusch_stats
);
LATSEQ_P
(
"U phy.demodulatestart--phy.demodulateend"
,
"::frame%d.slot%d.
ulschid%d.harqpid%d.harqround%d"
,
frame_rx
,
slot_rx
,
ULSCH_id
,
harq_pid
,
ulsch_harq
->
round
);
LATSEQ_P
(
"U phy.demodulatestart--phy.demodulateend"
,
"::frame%d.slot%d.
harqpid%d.harqround%d"
,
frame_rx
,
slot_rx
,
harq_pid
,
ulsch_harq
->
round
);
nr_rx_pusch
(
gNB
,
ULSCH_id
,
frame_rx
,
slot_rx
,
harq_pid
);
nr_rx_pusch
(
gNB
,
ULSCH_id
,
frame_rx
,
slot_rx
,
harq_pid
);
LATSEQ_P
(
"U phy.demodulateend--mac.decoded"
,
"::frame%d.slot%d.
ulschid%d.harqpid%d.harqround%d"
,
frame_rx
,
slot_rx
,
ULSCH_id
,
harq_pid
,
ulsch_harq
->
round
);
LATSEQ_P
(
"U phy.demodulateend--mac.decoded"
,
"::frame%d.slot%d.
harqpid%d.harqround%d"
,
frame_rx
,
slot_rx
,
harq_pid
,
ulsch_harq
->
round
);
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_power_tot
=
0
;
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_power_tot
=
0
;
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_noise_power_tot
=
0
;
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_noise_power_tot
=
0
;
for
(
int
aarx
=
0
;
aarx
<
gNB
->
frame_parms
.
nb_antennas_rx
;
aarx
++
)
{
for
(
int
aarx
=
0
;
aarx
<
gNB
->
frame_parms
.
nb_antennas_rx
;
aarx
++
)
{
...
@@ -839,6 +848,7 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
...
@@ -839,6 +848,7 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_noise_power
[
aarx
]
/=
num_dmrs
;
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_noise_power
[
aarx
]
/=
num_dmrs
;
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_noise_power_tot
+=
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_noise_power
[
aarx
];
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_noise_power_tot
+=
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_noise_power
[
aarx
];
}
}
LATSEQ_P
(
"U Before.if--"
,
"::frame%d.slot%d"
,
frame_rx
,
slot_rx
);
if
(
dB_fixed_x10
(
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_power_tot
)
<
if
(
dB_fixed_x10
(
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_power_tot
)
<
dB_fixed_x10
(
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_noise_power_tot
)
+
gNB
->
pusch_thres
)
{
dB_fixed_x10
(
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_noise_power_tot
)
+
gNB
->
pusch_thres
)
{
NR_gNB_SCH_STATS_t
*
stats
=
get_ulsch_stats
(
gNB
,
ulsch
);
NR_gNB_SCH_STATS_t
*
stats
=
get_ulsch_stats
(
gNB
,
ulsch
);
...
@@ -849,20 +859,29 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
...
@@ -849,20 +859,29 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_power_tot
=
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_noise_power_tot
;
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_power_tot
=
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_noise_power_tot
;
gNB
->
pusch_vars
[
ULSCH_id
]
->
DTX
=
1
;
gNB
->
pusch_vars
[
ULSCH_id
]
->
DTX
=
1
;
if
(
stats
)
stats
->
DTX
++
;
if
(
stats
)
stats
->
DTX
++
;
LATSEQ_P
(
"U Before.second.if--"
,
"::frame%d.slot%d"
,
frame_rx
,
slot_rx
);
if
(
!
get_softmodem_params
()
->
phy_test
)
{
if
(
!
get_softmodem_params
()
->
phy_test
)
{
/* in case of phy_test mode, we still want to decode to measure execution time.
/* in case of phy_test mode, we still want to decode to measure execution time.
Therefore, we don't yet call nr_fill_indication, it will be called later */
Therefore, we don't yet call nr_fill_indication, it will be called later */
nr_fill_indication
(
gNB
,
frame_rx
,
slot_rx
,
ULSCH_id
,
harq_pid
,
1
,
1
);
nr_fill_indication
(
gNB
,
frame_rx
,
slot_rx
,
ULSCH_id
,
harq_pid
,
1
,
1
);
pusch_DTX
++
;
pusch_DTX
++
;
if
(
ulsch_harq
->
round
==
3
)
{
LATSEQ_P
(
"U mac.decoded--mac.retxdrop"
,
"::frame%d.slot%d.harqpid%d"
,
frame_rx
,
slot_rx
,
harq_pid
);
}
else
{
LATSEQ_P
(
"U mac.decoded--mac.retx.highnoise"
,
"::frame%d.slot%d.framertx%d.slotrtx%d.harqpid%d"
,
frame_rx
,
slot_rx
,
frame_rx
,
slot_rx
,
harq_pid
);
LATSEQ_P
(
"U mac.retx.highnoise--phy.demodulatestart"
,
"::framertx%d.slotrtx%d.harqpid%d.harqround%d"
,
frame_rx
,
slot_rx
,
harq_pid
,
ulsch_harq
->
round
+
1
);
}
continue
;
continue
;
}
}
}
else
{
}
else
{
LATSEQ_P
(
"U In.else--"
,
"::frame%d.slot%d"
,
frame_rx
,
slot_rx
);
LOG_D
(
PHY
,
"PUSCH detected in %d.%d (%d,%d,%d)
\n
"
,
frame_rx
,
slot_rx
,
LOG_D
(
PHY
,
"PUSCH detected in %d.%d (%d,%d,%d)
\n
"
,
frame_rx
,
slot_rx
,
dB_fixed_x10
(
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_power_tot
),
dB_fixed_x10
(
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_power_tot
),
dB_fixed_x10
(
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_noise_power_tot
),
gNB
->
pusch_thres
);
dB_fixed_x10
(
gNB
->
pusch_vars
[
ULSCH_id
]
->
ulsch_noise_power_tot
),
gNB
->
pusch_thres
);
gNB
->
pusch_vars
[
ULSCH_id
]
->
DTX
=
0
;
gNB
->
pusch_vars
[
ULSCH_id
]
->
DTX
=
0
;
}
}
LATSEQ_P
(
"U After.if--"
,
"::frame%d.slot%d"
,
frame_rx
,
slot_rx
);
stop_meas
(
&
gNB
->
rx_pusch_stats
);
stop_meas
(
&
gNB
->
rx_pusch_stats
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RX_PUSCH
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RX_PUSCH
,
0
);
//LOG_M("rxdataF_comp.m","rxF_comp",gNB->pusch_vars[0]->rxdataF_comp[0],6900,1,1);
//LOG_M("rxdataF_comp.m","rxF_comp",gNB->pusch_vars[0]->rxdataF_comp[0],6900,1,1);
...
@@ -1101,5 +1120,6 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
...
@@ -1101,5 +1120,6 @@ int phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
}
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_UESPEC_RX
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_UESPEC_RX
,
0
);
LATSEQ_P
(
"U End.phy.procedures.gNB.uespec--"
,
"::fm%d.sl%d"
,
frame_rx
,
slot_rx
);
return
pusch_DTX
;
return
pusch_DTX
;
}
}
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
351667fc
...
@@ -407,7 +407,7 @@ int nr_process_mac_pdu(instance_t module_idP,
...
@@ -407,7 +407,7 @@ int nr_process_mac_pdu(instance_t module_idP,
UE
->
mac_stats
.
ul
.
lc_bytes
[
rx_lcid
]
+=
mac_len
;
UE
->
mac_stats
.
ul
.
lc_bytes
[
rx_lcid
]
+=
mac_len
;
if
(
mac_len
>
3
)
if
(
mac_len
>
3
)
LATSEQ_P
(
"U mac.demuxed--rlc.decoded"
,
"len%d::frame%d.slot%d.
carriercompid%d.lcid%d.harqpid%d.bufaddress%u"
,
mac_len
,
frameP
,
slot
,
CC_id
,
rx_lcid
,
harq_pid
,
pduP
+
mac_subheader_len
);
LATSEQ_P
(
"U mac.demuxed--rlc.decoded"
,
"len%d::frame%d.slot%d.
lcid%d.harqpid%d.bufaddress%u"
,
mac_len
,
frameP
,
slot
,
rx_lcid
,
harq_pid
,
pduP
+
mac_subheader_len
);
mac_rlc_data_ind
(
module_idP
,
mac_rlc_data_ind
(
module_idP
,
UE
->
rnti
,
UE
->
rnti
,
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/nr_pdcp/nr_pdcp_entity.c
View file @
351667fc
...
@@ -46,6 +46,7 @@ static void nr_pdcp_entity_recv_pdu(nr_pdcp_entity_t *entity,
...
@@ -46,6 +46,7 @@ static void nr_pdcp_entity_recv_pdu(nr_pdcp_entity_t *entity,
int
rx_deliv_sn
;
int
rx_deliv_sn
;
uint32_t
rx_deliv_hfn
;
uint32_t
rx_deliv_hfn
;
LATSEQ_P
(
"U pdcp.to.decode--"
,
"::x%d"
,
1
);
if
(
size
<
1
)
{
if
(
size
<
1
)
{
LOG_E
(
PDCP
,
"bad PDU received (size = %d)
\n
"
,
size
);
LOG_E
(
PDCP
,
"bad PDU received (size = %d)
\n
"
,
size
);
return
;
return
;
...
@@ -76,6 +77,8 @@ static void nr_pdcp_entity_recv_pdu(nr_pdcp_entity_t *entity,
...
@@ -76,6 +77,8 @@ static void nr_pdcp_entity_recv_pdu(nr_pdcp_entity_t *entity,
}
}
entity
->
stats
.
rxpdu_sn
=
rcvd_sn
;
entity
->
stats
.
rxpdu_sn
=
rcvd_sn
;
LATSEQ_P
(
"U pdcp.to.decode--"
,
"::sn%d"
,
rcvd_sn
);
/* SRBs always have MAC-I, even if integrity is not active */
/* SRBs always have MAC-I, even if integrity is not active */
if
(
entity
->
has_integrity
||
entity
->
type
==
NR_PDCP_SRB
)
{
if
(
entity
->
has_integrity
||
entity
->
type
==
NR_PDCP_SRB
)
{
integrity_size
=
4
;
integrity_size
=
4
;
...
@@ -88,7 +91,7 @@ static void nr_pdcp_entity_recv_pdu(nr_pdcp_entity_t *entity,
...
@@ -88,7 +91,7 @@ static void nr_pdcp_entity_recv_pdu(nr_pdcp_entity_t *entity,
entity
->
stats
.
rxpdu_dd_pkts
++
;
entity
->
stats
.
rxpdu_dd_pkts
++
;
entity
->
stats
.
rxpdu_dd_bytes
+=
size
;
entity
->
stats
.
rxpdu_dd_bytes
+=
size
;
LATSEQ_P
(
"U pdcp.decoded--pdcp.discarded.badpdusize"
,
"::sn%d"
,
rcvd_sn
);
return
;
return
;
}
}
...
@@ -120,7 +123,7 @@ static void nr_pdcp_entity_recv_pdu(nr_pdcp_entity_t *entity,
...
@@ -120,7 +123,7 @@ static void nr_pdcp_entity_recv_pdu(nr_pdcp_entity_t *entity,
LOG_E
(
PDCP
,
"discard NR PDU, integrity failed
\n
"
);
LOG_E
(
PDCP
,
"discard NR PDU, integrity failed
\n
"
);
entity
->
stats
.
rxpdu_dd_pkts
++
;
entity
->
stats
.
rxpdu_dd_pkts
++
;
entity
->
stats
.
rxpdu_dd_bytes
+=
size
;
entity
->
stats
.
rxpdu_dd_bytes
+=
size
;
LATSEQ_P
(
"U pdcp.decoded--pdcp.discarded.integrityfailed"
,
"::sn%d"
,
rcvd_sn
);
}
}
}
}
...
@@ -130,7 +133,7 @@ static void nr_pdcp_entity_recv_pdu(nr_pdcp_entity_t *entity,
...
@@ -130,7 +133,7 @@ static void nr_pdcp_entity_recv_pdu(nr_pdcp_entity_t *entity,
LOG_W
(
PDCP
,
"discard NR PDU rcvd_count=%d, entity->rx_deliv %d,sdu_in_list %d
\n
"
,
rcvd_count
,
entity
->
rx_deliv
,
nr_pdcp_sdu_in_list
(
entity
->
rx_list
,
rcvd_count
));
LOG_W
(
PDCP
,
"discard NR PDU rcvd_count=%d, entity->rx_deliv %d,sdu_in_list %d
\n
"
,
rcvd_count
,
entity
->
rx_deliv
,
nr_pdcp_sdu_in_list
(
entity
->
rx_list
,
rcvd_count
));
entity
->
stats
.
rxpdu_dd_pkts
++
;
entity
->
stats
.
rxpdu_dd_pkts
++
;
entity
->
stats
.
rxpdu_dd_bytes
+=
size
;
entity
->
stats
.
rxpdu_dd_bytes
+=
size
;
LATSEQ_P
(
"U pdcp.decoded--pdcp.discarded.rcvdsmallerdeliv"
,
"::sn%d"
,
rcvd_sn
);
return
;
return
;
}
}
...
@@ -152,7 +155,7 @@ static void nr_pdcp_entity_recv_pdu(nr_pdcp_entity_t *entity,
...
@@ -152,7 +155,7 @@ static void nr_pdcp_entity_recv_pdu(nr_pdcp_entity_t *entity,
uint32_t
count
=
entity
->
rx_deliv
;
uint32_t
count
=
entity
->
rx_deliv
;
while
(
entity
->
rx_list
!=
NULL
&&
count
==
entity
->
rx_list
->
count
)
{
while
(
entity
->
rx_list
!=
NULL
&&
count
==
entity
->
rx_list
->
count
)
{
nr_pdcp_sdu_t
*
cur
=
entity
->
rx_list
;
nr_pdcp_sdu_t
*
cur
=
entity
->
rx_list
;
LATSEQ_P
(
"U pdcp.decoded--sdap.sdu"
,
"len%d::sn%d
.count%d.rcvdcount%d.rcvdhfn%d"
,
cur
->
size
,
rcvd_sn
,
count
,
rcvd_count
,
rcvd_hf
n
);
LATSEQ_P
(
"U pdcp.decoded--sdap.sdu"
,
"len%d::sn%d
"
,
cur
->
size
,
rcvd_s
n
);
entity
->
deliver_sdu
(
entity
->
deliver_sdu_data
,
entity
,
entity
->
deliver_sdu
(
entity
->
deliver_sdu_data
,
entity
,
cur
->
buffer
,
cur
->
size
,
rcvd_sn
);
cur
->
buffer
,
cur
->
size
,
rcvd_sn
);
entity
->
rx_list
=
cur
->
next
;
entity
->
rx_list
=
cur
->
next
;
...
@@ -334,7 +337,8 @@ static void check_t_reordering(nr_pdcp_entity_t *entity)
...
@@ -334,7 +337,8 @@ static void check_t_reordering(nr_pdcp_entity_t *entity)
/* deliver all SDUs with count < rx_reord */
/* deliver all SDUs with count < rx_reord */
while
(
entity
->
rx_list
!=
NULL
&&
entity
->
rx_list
->
count
<
entity
->
rx_reord
)
{
while
(
entity
->
rx_list
!=
NULL
&&
entity
->
rx_list
->
count
<
entity
->
rx_reord
)
{
nr_pdcp_sdu_t
*
cur
=
entity
->
rx_list
;
nr_pdcp_sdu_t
*
cur
=
entity
->
rx_list
;
LATSEQ_P
(
"U pdcp.reorderdeliv1--sdap.sdu"
,
"len%d::sn%d.count%d"
,
cur
->
size
,
cur
->
count
,
cur
->
count
);
LATSEQ_P
(
"U pdcp.decoded--pdpc.outoforderdeliv"
,
"len%d::sn%d"
,
cur
->
size
,
cur
->
count
);
LATSEQ_P
(
"U pdpc.outoforderdeliv--sdap.sdu"
,
"len%d::sn%d"
,
cur
->
size
,
cur
->
count
);
entity
->
deliver_sdu
(
entity
->
deliver_sdu_data
,
entity
,
entity
->
deliver_sdu
(
entity
->
deliver_sdu_data
,
entity
,
cur
->
buffer
,
cur
->
size
,
cur
->
count
);
cur
->
buffer
,
cur
->
size
,
cur
->
count
);
entity
->
rx_list
=
cur
->
next
;
entity
->
rx_list
=
cur
->
next
;
...
@@ -346,7 +350,8 @@ static void check_t_reordering(nr_pdcp_entity_t *entity)
...
@@ -346,7 +350,8 @@ static void check_t_reordering(nr_pdcp_entity_t *entity)
count
=
entity
->
rx_reord
;
count
=
entity
->
rx_reord
;
while
(
entity
->
rx_list
!=
NULL
&&
count
==
entity
->
rx_list
->
count
)
{
while
(
entity
->
rx_list
!=
NULL
&&
count
==
entity
->
rx_list
->
count
)
{
nr_pdcp_sdu_t
*
cur
=
entity
->
rx_list
;
nr_pdcp_sdu_t
*
cur
=
entity
->
rx_list
;
LATSEQ_P
(
"U pdcp.reorderdeliv2--sdap.sdu"
,
"len%d::sn%d.count%d"
,
cur
->
size
,
cur
->
count
,
cur
->
count
);
LATSEQ_P
(
"U pdcp.decoded--pdcp.reorderdeliv"
,
"len%d::sn%d"
,
cur
->
size
,
cur
->
count
);
LATSEQ_P
(
"U pdcp.reorderdeliv--sdap.sdu"
,
"len%d::sn%d"
,
cur
->
size
,
cur
->
count
);
entity
->
deliver_sdu
(
entity
->
deliver_sdu_data
,
entity
,
entity
->
deliver_sdu
(
entity
->
deliver_sdu_data
,
entity
,
cur
->
buffer
,
cur
->
size
,
cur
->
count
);
cur
->
buffer
,
cur
->
size
,
cur
->
count
);
entity
->
rx_list
=
cur
->
next
;
entity
->
rx_list
=
cur
->
next
;
...
...
This diff is collapsed.
Click to expand it.
restore
0 → 100644
View file @
351667fc
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