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
常顺宇
OpenXG-RAN
Commits
cb927c7f
Commit
cb927c7f
authored
4 years ago
by
masayuki.harada
Committed by
shono.takafumi
4 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add statistics logs.
(cherry picked from commit cf8f14edf4a261e1df72579423786d39ba6d97f9)
parent
7243b6d6
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
88 additions
and
24 deletions
+88
-24
nfapi/oai_integration/nfapi_vnf.c
nfapi/oai_integration/nfapi_vnf.c
+24
-1
openair2/LAYER2/MAC/defs.h
openair2/LAYER2/MAC/defs.h
+9
-9
openair2/LAYER2/MAC/eNB_scheduler.c
openair2/LAYER2/MAC/eNB_scheduler.c
+30
-2
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
+11
-1
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
+2
-1
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+1
-1
openair2/LAYER2/MAC/mac.h
openair2/LAYER2/MAC/mac.h
+11
-9
No files found.
nfapi/oai_integration/nfapi_vnf.c
View file @
cb927c7f
...
...
@@ -358,8 +358,31 @@ int wake_eNB_rxtx(PHY_VARS_eNB *eNB, uint16_t sfn, uint16_t sf) {
proc
->
frame_rx
,
proc
->
subframe_rx
);
}
// wake up TX for subframe n+sf_ahead
// lock the TX mutex and make sure the thread is ready
if
(
pthread_mutex_timedlock
(
&
L1_proc
->
mutex
,
&
wait
)
!=
0
)
{
LOG_E
(
PHY
,
"[eNB] ERROR pthread_mutex_lock for eNB RXTX thread %d (IC %d)
\n
"
,
L1_proc
->
subframe_rx
&
1
,
L1_proc
->
instance_cnt
);
//exit_fun( "error locking mutex_rxtx" );
return
(
-
1
);
}
static
int
busy_log_cnt
=
0
;
if
(
L1_proc
->
instance_cnt
<
0
){
++
L1_proc
->
instance_cnt
;
if
(
busy_log_cnt
!=
0
){
LOG_E
(
MAC
,
"RCC singal to rxtx frame %d subframe %d busy end %d (frame %d subframe %d)
\n
"
,
L1_proc
->
frame_rx
,
L1_proc
->
subframe_rx
,
busy_log_cnt
,
proc
->
frame_rx
,
proc
->
subframe_rx
);
}
busy_log_cnt
=
0
;
}
else
{
if
(
busy_log_cnt
==
0
){
LOG_E
(
MAC
,
"RCC singal to rxtx frame %d subframe %d busy %d (frame %d subframe %d)
\n
"
,
L1_proc
->
frame_rx
,
L1_proc
->
subframe_rx
,
L1_proc
->
instance_cnt
,
proc
->
frame_rx
,
proc
->
subframe_rx
);
}
pthread_mutex_unlock
(
&
L1_proc
->
mutex
);
busy_log_cnt
++
;
return
(
0
);
}
pthread_mutex_unlock
(
&
L1_proc
->
mutex
);
++
L1_proc
->
instance_cnt
;
//LOG_D( PHY,"[VNF-subframe_ind] sfn/sf:%d:%d proc[frame_rx:%d subframe_rx:%d] L1_proc->instance_cnt_rxtx:%d \n", sfn, sf, proc->frame_rx, proc->subframe_rx, L1_proc->instance_cnt_rxtx);
// We have just received and processed the common part of a subframe, say n.
// TS_rx is the last received timestamp (start of 1st slot), TS_tx is the desired
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/defs.h
View file @
cb927c7f
...
...
@@ -829,16 +829,16 @@ typedef struct {
uint8_t
periodic_ri_received
[
NFAPI_CC_MAX
];
uint8_t
aperiodic_ri_received
[
NFAPI_CC_MAX
];
uint32_t
pucch_tpc_accumulated
[
NFAPI_CC_MAX
];
uint8
_t
pucch1_cqi_update
[
NFAPI_CC_MAX
];
uint8
_t
pucch1_snr
[
NFAPI_CC_MAX
];
uint8
_t
pucch2_cqi_update
[
NFAPI_CC_MAX
];
uint8
_t
pucch2_snr
[
NFAPI_CC_MAX
];
uint8
_t
pucch3_cqi_update
[
NFAPI_CC_MAX
];
uint8
_t
pucch3_snr
[
NFAPI_CC_MAX
];
int16
_t
pucch1_cqi_update
[
NFAPI_CC_MAX
];
int16
_t
pucch1_snr
[
NFAPI_CC_MAX
];
int16
_t
pucch2_cqi_update
[
NFAPI_CC_MAX
];
int16
_t
pucch2_snr
[
NFAPI_CC_MAX
];
int16
_t
pucch3_cqi_update
[
NFAPI_CC_MAX
];
int16
_t
pucch3_snr
[
NFAPI_CC_MAX
];
double
pusch_cqi_f
[
NFAPI_CC_MAX
];
uint8
_t
pusch_cqi
[
NFAPI_CC_MAX
];
uint8
_t
pusch_snr
[
NFAPI_CC_MAX
];
uint8
_t
pusch_snr_avg
[
NFAPI_CC_MAX
];
int16
_t
pusch_cqi
[
NFAPI_CC_MAX
];
int16
_t
pusch_snr
[
NFAPI_CC_MAX
];
int16
_t
pusch_snr_avg
[
NFAPI_CC_MAX
];
uint64_t
pusch_rx_num
[
NFAPI_CC_MAX
];
uint64_t
pusch_rx_num_old
[
NFAPI_CC_MAX
];
uint64_t
pusch_rx_error_num
[
NFAPI_CC_MAX
];
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/eNB_scheduler.c
View file @
cb927c7f
...
...
@@ -596,13 +596,41 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP,
UE_scheduling_control
=
&
(
UE_info
->
UE_sched_ctrl
[
UE_id
]);
if
(((
frameP
&
127
)
==
0
)
&&
(
subframeP
==
0
))
{
LOG_I
(
MAC
,
"UE rnti %x : %s, PHR %d dB DL CQI %d PUSCH SNR %d PUCCH SNR %d
\n
"
,
double
total_bler
;
if
(
UE_scheduling_control
->
pusch_rx_num
[
CC_id
]
==
0
&&
UE_scheduling_control
->
pusch_rx_error_num
[
CC_id
]
==
0
)
{
total_bler
=
0
;
}
else
{
total_bler
=
(
double
)
UE_scheduling_control
->
pusch_rx_error_num
[
CC_id
]
/
(
double
)(
UE_scheduling_control
->
pusch_rx_error_num
[
CC_id
]
+
UE_scheduling_control
->
pusch_rx_num
[
CC_id
])
*
100
;
}
LOG_I
(
MAC
,
"UE %x : %s, PHR %d DLCQI %d PUSCH %d PUCCH %d RLC disc %d UL-stat rcv %lu err %lu bler %lf mcsoff %d bsr %u sched %u tbs %lu cnt %u , DL-stat tbs %lu cnt %u rb %u buf %u 1st %u ret %u ri %d
\n
"
,
rnti
,
UE_scheduling_control
->
ul_out_of_sync
==
0
?
"in synch"
:
"out of sync"
,
UE_info
->
UE_template
[
CC_id
][
UE_id
].
phr_info
,
UE_scheduling_control
->
dl_cqi
[
CC_id
],
UE_scheduling_control
->
pusch_snr_avg
[
CC_id
],
UE_scheduling_control
->
pucch1_snr
[
CC_id
]);
UE_scheduling_control
->
pucch1_snr
[
CC_id
],
UE_scheduling_control
->
rlc_out_of_resources_cnt
,
UE_scheduling_control
->
pusch_rx_num
[
CC_id
],
UE_scheduling_control
->
pusch_rx_error_num
[
CC_id
],
total_bler
,
UE_scheduling_control
->
mcs_offset
[
CC_id
],
UE_info
->
UE_template
[
CC_id
][
UE_id
].
estimated_ul_buffer
,
UE_info
->
UE_template
[
CC_id
][
UE_id
].
scheduled_ul_bytes
,
UE_info
->
eNB_UE_stats
[
CC_id
][
UE_id
].
total_pdu_bytes_rx
,
UE_info
->
eNB_UE_stats
[
CC_id
][
UE_id
].
total_num_pdus_rx
,
UE_info
->
eNB_UE_stats
[
CC_id
][
UE_id
].
total_pdu_bytes
,
UE_info
->
eNB_UE_stats
[
CC_id
][
UE_id
].
total_num_pdus
,
UE_info
->
eNB_UE_stats
[
CC_id
][
UE_id
].
total_rbs_used
,
#if defined(PRE_SCD_THREAD)
dl_buffer_total
[
CC_id
][
UE_id
],
#else
0
,
#endif
UE_scheduling_control
->
first_cnt
[
CC_id
],
UE_scheduling_control
->
ret_cnt
[
CC_id
],
UE_scheduling_control
->
aperiodic_ri_received
[
CC_id
]
);
}
RC
.
eNB
[
module_idP
][
CC_id
]
->
pusch_stats_bsr
[
UE_id
][(
frameP
*
10
)
+
subframeP
]
=
-
63
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
View file @
cb927c7f
...
...
@@ -1001,7 +1001,17 @@ void dlsch_scheduler_pre_processor_fairRR (module_id_t Mod_id,
rnti
=
dlsch_ue_select
[
CC_id
].
list
[
i
].
rnti
;
ue_sched_ctl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
harq_pid
=
frame_subframe2_dl_harq_pid
(
cc
->
tdd_Config
,
frameP
,
subframeP
);
Round
=
ue_sched_ctl
->
round
[
CC_id
][
harq_pid
];
unsigned
char
round1
,
round2
;
round1
=
ue_sched_ctl
->
round
[
CC_id
][
harq_pid
][
TB1
];
round2
=
ue_sched_ctl
->
round
[
CC_id
][
harq_pid
][
TB2
];
if
((
round1
!=
8
)
||
(
round2
!=
8
)){
Round
=
cmin
(
round1
,
round2
);
ue_sched_ctl
->
ret_cnt
[
CC_id
]
++
;
}
else
{
Round
=
8
;
ue_sched_ctl
->
first_cnt
[
CC_id
]
++
;
}
//if (mac_eNB_get_rrc_status(Mod_id, rnti) < RRC_RECONFIGURED || round > 0) {
if
(
mac_eNB_get_rrc_status
(
Mod_id
,
rnti
)
<
RRC_RECONFIGURED
||
Round
!=
8
)
{
// FIXME
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
View file @
cb927c7f
...
...
@@ -2226,7 +2226,8 @@ add_new_ue(module_id_t mod_idP,
UE_info
->
UE_sched_ctrl
[
UE_id
].
pusch_rx_error_num
[
cc_idP
]
=
0
;
UE_info
->
UE_sched_ctrl
[
UE_id
].
pusch_rx_error_num_old
[
cc_idP
]
=
0
;
UE_info
->
UE_sched_ctrl
[
UE_id
].
pusch_bler
[
cc_idP
]
=
0
;
UE_info
->
UE_sched_ctrl
[
UE_id
].
mcs_offset
[
cc_idP
]
=
0
;
UE_info
->
UE_sched_ctrl
[
UE_id
].
ret_cnt
[
cc_idP
]
=
0
;
UE_info
->
UE_sched_ctrl
[
UE_id
].
first_cnt
[
cc_idP
]
=
0
;
for
(
j
=
0
;
j
<
8
;
j
++
)
{
UE_info
->
UE_template
[
cc_idP
][
UE_id
].
oldNDI
[
j
]
=
0
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
View file @
cb927c7f
...
...
@@ -202,7 +202,7 @@ rx_sdu(const module_id_t enb_mod_idP,
}
}
else
{
// sduP == NULL => error
UE_scheduling_control
->
pusch_rx_error_num
[
CC_idP
]
++
;
LOG_
W
(
MAC
,
"[eNB %d][PUSCH %d] CC_id %d %d.%d ULSCH in error in round %d, ul_cqi %d, UE_id %d, RNTI %x (len %d)
\n
"
,
LOG_
D
(
MAC
,
"[eNB %d][PUSCH %d] CC_id %d %d.%d ULSCH in error in round %d, ul_cqi %d, UE_id %d, RNTI %x (len %d)
\n
"
,
enb_mod_idP
,
harq_pid
,
CC_idP
,
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/mac.h
View file @
cb927c7f
...
...
@@ -933,6 +933,8 @@ typedef struct {
/// Current DL harq round per harq_pid on each CC
uint8_t
round
[
NFAPI_CC_MAX
][
10
];
uint32_t
ret_cnt
[
NFAPI_CC_MAX
];
uint32_t
first_cnt
[
NFAPI_CC_MAX
];
/// Current Active TBs per harq_pid on each CC
uint8_t
tbcnt
[
NFAPI_CC_MAX
][
10
];
/// Current UL harq round per harq_pid on each CC
...
...
@@ -960,16 +962,16 @@ typedef struct {
int32_t
phr_received
;
uint8_t
periodic_ri_received
[
NFAPI_CC_MAX
];
uint8_t
aperiodic_ri_received
[
NFAPI_CC_MAX
];
uint8
_t
pucch1_cqi_update
[
NFAPI_CC_MAX
];
uint8
_t
pucch1_snr
[
NFAPI_CC_MAX
];
uint8
_t
pucch2_cqi_update
[
NFAPI_CC_MAX
];
uint8
_t
pucch2_snr
[
NFAPI_CC_MAX
];
uint8
_t
pucch3_cqi_update
[
NFAPI_CC_MAX
];
uint8
_t
pucch3_snr
[
NFAPI_CC_MAX
];
int16
_t
pucch1_cqi_update
[
NFAPI_CC_MAX
];
int16
_t
pucch1_snr
[
NFAPI_CC_MAX
];
int16
_t
pucch2_cqi_update
[
NFAPI_CC_MAX
];
int16
_t
pucch2_snr
[
NFAPI_CC_MAX
];
int16
_t
pucch3_cqi_update
[
NFAPI_CC_MAX
];
int16
_t
pucch3_snr
[
NFAPI_CC_MAX
];
double
pusch_cqi_f
[
NFAPI_CC_MAX
];
uint8
_t
pusch_cqi
[
NFAPI_CC_MAX
];
uint8
_t
pusch_snr
[
NFAPI_CC_MAX
];
uint8
_t
pusch_snr_avg
[
NFAPI_CC_MAX
];
int16
_t
pusch_cqi
[
NFAPI_CC_MAX
];
int16
_t
pusch_snr
[
NFAPI_CC_MAX
];
int16
_t
pusch_snr_avg
[
NFAPI_CC_MAX
];
uint64_t
pusch_rx_num
[
NFAPI_CC_MAX
];
uint64_t
pusch_rx_num_old
[
NFAPI_CC_MAX
];
uint64_t
pusch_rx_error_num
[
NFAPI_CC_MAX
];
...
...
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