Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
OpenXG
OpenXG UE
Commits
201f60d4
Commit
201f60d4
authored
Jan 14, 2021
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
PDCP throughput statistics in log
parent
be98d415
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
32 additions
and
42 deletions
+32
-42
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+1
-1
openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
+1
-1
openair1/SCHED/prach_procedures.c
openair1/SCHED/prach_procedures.c
+1
-1
openair2/LAYER2/MAC/eNB_scheduler_RA.c
openair2/LAYER2/MAC/eNB_scheduler_RA.c
+1
-1
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+5
-6
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+4
-5
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
+19
-27
No files found.
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
201f60d4
...
...
@@ -533,7 +533,7 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,
dlsch0
->
harq_mask
|=
(
1
<<
rel8
->
harq_process
);
if
(
rel8
->
rnti
!=
SI_RNTI
)
LOG_
I
(
PHY
,
"DCI 1A: round %d, mcs %d, TBS %d, rballoc %x, rv %d, rnti %x, harq process %d
\n
"
,
dlsch0_harq
->
round
,
rel8
->
mcs_1
,
dlsch0_harq
->
TBS
,
rel8
->
resource_block_coding
,
if
(
rel8
->
rnti
!=
SI_RNTI
)
LOG_
D
(
PHY
,
"DCI 1A: round %d, mcs %d, TBS %d, rballoc %x, rv %d, rnti %x, harq process %d
\n
"
,
dlsch0_harq
->
round
,
rel8
->
mcs_1
,
dlsch0_harq
->
TBS
,
rel8
->
resource_block_coding
,
rel8
->
redundancy_version_1
,
rel8
->
rnti
,
rel8
->
harq_process
);
break
;
...
...
openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
View file @
201f60d4
...
...
@@ -1122,7 +1122,7 @@ void dump_ulsch_stats(FILE *fd,PHY_VARS_eNB *eNB,int frame) {
char
output
[
16384
];
int
stroff
=
0
;
for
(
int
i
=
0
;
i
<
NUMBER_OF_ULSCH_MAX
;
i
++
)
if
(
eNB
->
ulsch_stats
[
i
].
rnti
>
0
)
{
if
(
eNB
->
ulsch_stats
[
i
].
rnti
>
0
&&
eNB
->
ulsch_stats
[
i
].
round_trials
[
0
]
>
100
)
{
for
(
int
aa
=
0
;
aa
<
eNB
->
frame_parms
.
nb_antennas_rx
;
aa
++
)
stroff
+=
sprintf
(
output
+
stroff
,
"ULSCH RNTI %x: ulsch_power[%d] %d, ulsch_noise_power[%d] %d
\n
"
,
eNB
->
ulsch_stats
[
i
].
rnti
,
aa
,
eNB
->
ulsch_stats
[
i
].
ulsch_power
[
aa
],
aa
,
eNB
->
ulsch_stats
[
i
].
ulsch_noise_power
[
aa
]);
...
...
openair1/SCHED/prach_procedures.c
View file @
201f60d4
...
...
@@ -146,7 +146,7 @@ void prach_procedures(PHY_VARS_eNB *eNB,
}
else
{
if
((
eNB
->
prach_energy_counter
==
100
)
&&
(
max_preamble_energy
[
0
]
>
eNB
->
measurements
.
prach_I0
+
eNB
->
prach_DTX_threshold
))
{
LOG_
I
(
PHY
,
"[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d
\n
"
,
LOG_
D
(
PHY
,
"[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d
\n
"
,
eNB
->
Mod_id
,
eNB
->
CC_id
,
frame
,
...
...
openair2/LAYER2/MAC/eNB_scheduler_RA.c
View file @
201f60d4
...
...
@@ -1295,7 +1295,7 @@ initiate_ra_proc(module_id_t module_idP,
prach_ParametersListCE_r13
=
&
ext4_prach
->
prach_ParametersListCE_r13
;
}
LOG_
I
(
MAC
,
LOG_
D
(
MAC
,
"[eNB %d][RAPROC] CC_id %d Frame %d, Subframe %d Initiating RA procedure for preamble index %d, timing offset %d
\n
"
,
module_idP
,
CC_id
,
frameP
,
subframeP
,
preamble_index
,
timing_offset
);
LOG_D
(
MAC
,
...
...
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
View file @
201f60d4
...
...
@@ -651,7 +651,7 @@ schedule_ue_spec(module_id_t module_idP,
eNB_UE_stats
->
rrc_status
=
mac_eNB_get_rrc_status
(
module_idP
,
rnti
);
eNB_UE_stats
->
harq_pid
=
harq_pid
;
eNB_UE_stats
->
harq_round
=
round_DL
;
eNB_UE_stats
->
dlsch_rounds
[
round_DL
&
7
]
++
;
if
(
eNB_UE_stats
->
rrc_status
<
RRC_RECONFIGURED
)
{
ue_sched_ctrl
->
uplane_inactivity_timer
=
0
;
}
...
...
@@ -792,7 +792,6 @@ schedule_ue_spec(module_id_t module_idP,
// No TX request for retransmission (check if null request for FAPI)
}
//eNB_UE_stats->dlsch_trials[round]++;
eNB_UE_stats
->
num_retransmission
+=
1
;
eNB_UE_stats
->
rbs_used_retx
=
nb_rb
;
eNB_UE_stats
->
total_rbs_used_retx
+=
nb_rb
;
...
...
@@ -1064,10 +1063,10 @@ schedule_ue_spec(module_id_t module_idP,
ue_template
->
pucch_tpc_tx_frame
=
frameP
;
ue_template
->
pucch_tpc_tx_subframe
=
subframeP
;
if
(
snr
>
target_snr
+
4
)
{
if
(
snr
>
target_snr
+
PUCCH_PCHYST
)
{
tpc
=
0
;
//-1
ue_sched_ctrl
->
pucch_tpc_accumulated
[
CC_id
]
--
;
}
else
if
(
snr
<
target_snr
-
4
)
{
}
else
if
(
snr
<
target_snr
-
PUCCH_PCHYST
)
{
tpc
=
2
;
//+1
ue_sched_ctrl
->
pucch_tpc_accumulated
[
CC_id
]
--
;
}
else
{
...
...
@@ -1701,9 +1700,9 @@ schedule_ue_spec_br(module_id_t module_idP,
UE_info
->
UE_template
[
CC_id
][
UE_id
].
pucch_tpc_tx_frame
=
frameP
;
UE_info
->
UE_template
[
CC_id
][
UE_id
].
pucch_tpc_tx_subframe
=
subframeP
;
if
(
snr
>
target_snr
+
4
)
{
if
(
snr
>
target_snr
+
PUCCH_PCHYST
)
{
tpc
=
0
;
//-1
}
else
if
(
snr
<
target_snr
-
4
)
{
}
else
if
(
snr
<
target_snr
-
PUCCH_PCHYST
)
{
tpc
=
2
;
//+1
}
else
{
tpc
=
1
;
//0
...
...
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
View file @
201f60d4
...
...
@@ -273,7 +273,7 @@ rx_sdu(const module_id_t enb_mod_idP,
AssertFatal
(
mac
->
common_channels
[
CC_idP
].
radioResourceConfigCommon
->
rach_ConfigCommon
.
maxHARQ_Msg3Tx
>
1
,
"maxHARQ %d should be greater than 1
\n
"
,
(
int
)
mac
->
common_channels
[
CC_idP
].
radioResourceConfigCommon
->
rach_ConfigCommon
.
maxHARQ_Msg3Tx
);
LOG_
I
(
MAC
,
"[eNB %d][PUSCH %d] CC_id %d [RAPROC Msg3] Received ULSCH sdu (%s) round %d from PHY (rnti %x, RA_id %d) ul_cqi %d, timing advance %d
\n
"
,
LOG_
D
(
MAC
,
"[eNB %d][PUSCH %d] CC_id %d [RAPROC Msg3] Received ULSCH sdu (%s) round %d from PHY (rnti %x, RA_id %d) ul_cqi %d, timing advance %d
\n
"
,
enb_mod_idP
,
harq_pid
,
CC_idP
,
...
...
@@ -1430,10 +1430,10 @@ schedule_ulsch_rnti(module_id_t module_idP,
UE_template_ptr
->
pusch_tpc_tx_frame
=
frameP
;
UE_template_ptr
->
pusch_tpc_tx_subframe
=
subframeP
;
if
(
snr
>
target_snr
+
4
)
{
if
(
snr
>
target_snr
+
PUSCH_PCHYST
)
{
tpc
=
0
;
// -1
UE_sched_ctrl_ptr
->
pusch_tpc_accumulated
[
CC_id
]
--
;
}
else
if
(
snr
<
target_snr
-
4
)
{
}
else
if
(
snr
<
target_snr
-
PUSCH_PCHYST
)
{
tpc
=
2
;
// +1
UE_sched_ctrl_ptr
->
pusch_tpc_accumulated
[
CC_id
]
++
;
}
...
...
@@ -1501,6 +1501,7 @@ schedule_ulsch_rnti(module_id_t module_idP,
const
uint8_t
ndi
=
1
-
UE_template_ptr
->
oldNDI_UL
[
harq_pid
];
// NDI: new data indicator
const
uint8_t
mcs
=
UE_template_ptr
->
pre_assigned_mcs_ul
;
UE_template_ptr
->
oldNDI_UL
[
harq_pid
]
=
ndi
;
UE_info
->
eNB_UE_stats
[
CC_id
][
UE_id
].
ulsch_rounds
[
0
]
++
;
UE_info
->
eNB_UE_stats
[
CC_id
][
UE_id
].
snr
=
snr
;
UE_info
->
eNB_UE_stats
[
CC_id
][
UE_id
].
target_snr
=
target_snr
;
UE_template_ptr
->
mcs_UL
[
harq_pid
]
=
mcs
;
...
...
@@ -1522,8 +1523,6 @@ schedule_ulsch_rnti(module_id_t module_idP,
UE_info
->
eNB_UE_stats
[
CC_id
][
UE_id
].
ulsch_mcs2
=
mcs
;
while
(
rb_table
[
rb_table_index
]
>
45
&&
rb_table_index
>
0
)
rb_table_index
--
;
UE_template_ptr
->
TBS_UL
[
harq_pid
]
=
get_TBS_UL
(
mcs
,
rb_table
[
rb_table_index
]);
UE_info
->
eNB_UE_stats
[
CC_id
][
UE_id
].
total_rbs_used_rx
+=
rb_table
[
rb_table_index
];
...
...
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
View file @
201f60d4
...
...
@@ -94,7 +94,12 @@ pthread_t pdcp_stats_thread_desc;
void
*
pdcp_stats_thread
(
void
*
param
)
{
FILE
*
fd
;
int
old_byte_cnt
[
MAX_MOBILES_PER_ENB
][
NB_RB_MAX
],
old_byte_cnt_rx
[
MAX_MOBILES_PER_ENB
][
NB_RB_MAX
];
for
(
int
i
=
0
;
i
<
MAX_MOBILES_PER_ENB
;
i
++
)
for
(
int
j
=
0
;
j
<
NB_RB_MAX
;
j
++
)
{
old_byte_cnt
[
i
][
j
]
=
0
;
old_byte_cnt_rx
[
i
][
j
]
=
0
;
}
while
(
!
oai_exit
)
{
sleep
(
1
);
...
...
@@ -103,33 +108,18 @@ void *pdcp_stats_thread(void *param) {
int
drb_id
=
3
;
for
(
int
UE_id
=
0
;
UE_id
<
MAX_MOBILES_PER_ENB
;
UE_id
++
)
{
if
(
pdcp_enb
[
0
].
rnti
[
UE_id
]
>
0
)
{
fprintf
(
fd
,
"UE CRNTI %x: tx_window %dms, tx_bytes %d, tx_bytes_w %d, tx_bytes_tmp_w %d
\n
"
,
pdcp_enb
[
0
].
rnti
[
UE_id
],
Pdcp_stats_tx_window_ms
[
0
][
UE_id
],
fprintf
(
fd
,
"PDCP: CRNTI %x, DRB %d: tx_bytes %d, DL Throughput %e
\n
"
,
pdcp_enb
[
0
].
rnti
[
UE_id
],
drb_id
,
Pdcp_stats_tx_bytes
[
0
][
UE_id
][
drb_id
],
Pdcp_stats_tx_bytes_w
[
0
][
UE_id
][
drb_id
],
Pdcp_stats_tx_bytes_tmp_w
[
0
][
UE_id
][
drb_id
]);
fprintf
(
fd
,
" tx %d, tx_w %d, tx_tmp_w %d, tx_sn %d, tx throughput %d
\n
"
,
Pdcp_stats_tx
[
0
][
UE_id
][
drb_id
],
Pdcp_stats_tx_w
[
0
][
UE_id
][
drb_id
],
Pdcp_stats_tx_tmp_w
[
0
][
UE_id
][
drb_id
],
Pdcp_stats_tx_sn
[
0
][
UE_id
][
drb_id
],
Pdcp_stats_tx_throughput_w
[
0
][
UE_id
][
drb_id
]);
fprintf
(
fd
,
" rx_window %dms, rx_bytes %d, rx_bytes_w %d, rx_bytes_tmp_w %d
\n
"
,
Pdcp_stats_rx_window_ms
[
MAX_eNB
][
MAX_MOBILES_PER_ENB
],
Pdcp_stats_rx_bytes
[
MAX_eNB
][
MAX_MOBILES_PER_ENB
][
NB_RB_MAX
],
Pdcp_stats_rx_bytes_w
[
MAX_eNB
][
MAX_MOBILES_PER_ENB
][
NB_RB_MAX
],
Pdcp_stats_rx_bytes_tmp_w
[
MAX_eNB
][
MAX_MOBILES_PER_ENB
][
NB_RB_MAX
]);
fprintf
(
fd
,
" rx %d, rx_w %d, rx_tmp_w %d, rx_sn %d, rx goodput %d
\n
"
,
Pdcp_stats_rx
[
0
][
UE_id
][
drb_id
],
Pdcp_stats_rx_w
[
0
][
UE_id
][
drb_id
],
Pdcp_stats_rx_tmp_w
[
0
][
UE_id
][
drb_id
],
Pdcp_stats_rx_sn
[
0
][
UE_id
][
drb_id
],
Pdcp_stats_rx_goodput_w
[
0
][
UE_id
][
drb_id
]);
}
(
double
)((
Pdcp_stats_tx_bytes
[
0
][
UE_id
][
drb_id
]
-
old_byte_cnt
[
UE_id
][
drb_id
])
<<
3
));
fprintf
(
fd
,
" rx_bytes %d, UL Throughput %e
\n
"
,
Pdcp_stats_rx_bytes
[
0
][
UE_id
][
drb_id
],
(
double
)((
Pdcp_stats_rx_bytes
[
0
][
UE_id
][
drb_id
]
-
old_byte_cnt_rx
[
UE_id
][
drb_id
])
<<
3
));
}
}
fclose
(
fd
);
}
}
return
(
NULL
);
}
uint64_t
get_pdcp_optmask
(
void
)
{
...
...
@@ -512,7 +502,7 @@ boolean_t pdcp_data_req(
break
;
}
//LOG_I(PDCP,"ueid %d lcid %d tx seq num %d\n", pdcp_uid, rb_idP+rb_offset
, current_sn);
LOG_D
(
PDCP
,
"ueid %d lcid %d tx seq num %d
\n
"
,
pdcp_uid
,
(
int
)(
rb_idP
+
rb_offset
)
,
current_sn
);
Pdcp_stats_tx
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_idP
+
rb_offset
]
++
;
Pdcp_stats_tx_tmp_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_idP
+
rb_offset
]
++
;
Pdcp_stats_tx_bytes
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_idP
+
rb_offset
]
+=
sdu_buffer_sizeP
;
...
...
@@ -2342,6 +2332,8 @@ uint64_t pdcp_module_init( uint64_t pdcp_optmask ) {
LOG_E
(
PDCP
,
"ENB pdcp will not use tun interface
\n
"
);
}
pthread_create
(
&
pdcp_stats_thread_desc
,
NULL
,
pdcp_stats_thread
,
NULL
);
return
pdcp_params
.
optmask
;
}
...
...
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