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
Michael Black
OpenXG UE
Commits
781b00a3
Commit
781b00a3
authored
May 27, 2016
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
intermediate save to switch machines
parent
2fbf1f35
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
87 additions
and
52 deletions
+87
-52
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+23
-9
openair2/UTIL/LOG/vcd_signal_dumper.c
openair2/UTIL/LOG/vcd_signal_dumper.c
+4
-0
openair2/UTIL/LOG/vcd_signal_dumper.h
openair2/UTIL/LOG/vcd_signal_dumper.h
+4
-0
targets/RT/USER/eNB_usrp.gtkw
targets/RT/USER/eNB_usrp.gtkw
+13
-31
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+43
-12
No files found.
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
781b00a3
...
...
@@ -2492,8 +2492,6 @@ void cba_procedures(const unsigned char thread_id,PHY_VARS_eNB *eNB,int UE_id,in
void
phy_procedures_eNB_common_RX
(
const
unsigned
char
thread_id
,
PHY_VARS_eNB
*
eNB
,
const
uint8_t
abstraction_flag
)
{
eNB_proc_t
*
proc
=
&
eNB
->
proc
[
thread_id
];
const
int
subframe
=
proc
->
subframe_rx
;
const
int
frame
=
proc
->
frame_rx
;
int
i
,
l
;
LTE_DL_FRAME_PARMS
*
fp
=&
eNB
->
frame_parms
;
void
*
rxp
[
fp
->
nb_antennas_rx
];
...
...
@@ -2504,15 +2502,18 @@ void phy_procedures_eNB_common_RX(const unsigned char thread_id,PHY_VARS_eNB *eN
// VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_COMMON_RX,1);
start_meas
(
&
eNB
->
phy_proc_rx
);
#ifdef DEBUG_PHY_PROC
LOG_D
(
PHY
,
"[eNB %d] Frame %d: Doing phy_procedures_eNB_RX(%d)
\n
"
,
eNB
->
Mod_id
,
frame
,
subframe
);
LOG_D
(
PHY
,
"[eNB %d] Frame %d: Doing phy_procedures_eNB_RX(%d)
\n
"
,
eNB
->
Mod_id
,
proc
->
frame_rx
,
proc
->
subframe_rx
);
#endif
if
(
abstraction_flag
==
0
)
{
// grab signal in chunks of 500 us (1 slot)
for
(
i
=
0
;
i
<
fp
->
nb_antennas_rx
;
i
++
)
if
((
eNB
->
node_function
==
NGFI_RRU_IF4
)
||
(
eNB
->
node_function
==
eNodeB_3GPP
))
{
// acquisition from RF and front-end processing
rxp
[
i
]
=
(
void
*
)
&
eNB
->
common_vars
.
rxdata
[
i
][
subframe
*
fp
->
samples_per_tti
];
for
(
i
=
0
;
i
<
fp
->
nb_antennas_rx
;
i
++
)
rxp
[
i
]
=
(
void
*
)
&
eNB
->
common_vars
.
rxdata
[
0
][
i
][
proc
->
subframe
*
fp
->
samples_per_tti
];
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ
,
1
);
rxs
=
openair0
.
trx_read_func
(
&
openair0
,
&
proc
->
timestamp_rx
,
rxp
,
...
...
@@ -2520,6 +2521,9 @@ void phy_procedures_eNB_common_RX(const unsigned char thread_id,PHY_VARS_eNB *eN
fp
->
nb_antennas_rx
);
proc
->
frame_rx
=
(
proc
->
timestamp_rx
/
(
fp
->
samples_per_tti
*
10
))
&
1023
;
proc
->
subframe_rx
=
(
proc
->
timestamp_rx
/
fp
->
samples_per_tti
)
%
10
;
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_TRX_TS
,
proc
->
timestamp_rx
&
0xffffffff
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX_ENB
,
proc
->
frame_rx
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX_ENB
,
proc
->
subframe_rx
);
if
(
frame
>
20
){
if
(
rxs
!=
fp
->
samples_per_tti
>>
1
)
...
...
@@ -2541,6 +2545,17 @@ void phy_procedures_eNB_common_RX(const unsigned char thread_id,PHY_VARS_eNB *eN
//send_IF4(eNB,subframe<<1);
}
for
(
i
=
0
;
i
<
fp
->
nb_antennas_rx
;
i
++
)
rxp
[
i
]
=
(
void
*
)
&
eNB
->
common_vars
.
rxdata
[
0
][
i
][(
fp
->
samples_per_tti
>>
1
)
+
(
subframe
*
fp
->
samples_per_tti
)];
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ
,
1
);
rxs
=
openair0
.
trx_read_func
(
&
openair0
,
&
proc
->
timestamp_rx
,
rxp
,
fp
->
samples_per_tti
>>
1
,
fp
->
nb_antennas_rx
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ
,
0
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_TRX_TS
,
proc
->
timestamp_rx
&
0xffffffff
);
remove_7_5_kHz
(
eNB
,(
subframe
<<
1
)
+
1
);
for
(
l
=
0
;
l
<
fp
->
symbols_per_tti
/
2
;
l
++
)
slot_fep_ul
(
fp
,
...
...
@@ -2568,7 +2583,7 @@ void phy_procedures_eNB_common_RX(const unsigned char thread_id,PHY_VARS_eNB *eN
// check if we have to detect PRACH first
if
(
is_prach_subframe
(
fp
,
frame
,
subframe
)
>
0
)
{
if
(
is_prach_subframe
(
fp
,
proc
->
frame_rx
,
proc
->
subframe_rx
)
>
0
)
{
// wake up thread for PRACH RX
if
(
pthread_mutex_lock
(
&
proc
->
mutex_prach
)
!=
0
)
{
LOG_E
(
PHY
,
"[eNB] ERROR pthread_mutex_lock for eNB PRACH thread %d (IC %d)
\n
"
,
thread_id
,
proc
->
instance_cnt_prach
);
...
...
@@ -2613,7 +2628,7 @@ void phy_procedures_eNB_common_RX(const unsigned char thread_id,PHY_VARS_eNB *eN
// and proc->subframe_tx = proc->subframe_rx+3
proc
->
timestamp_tx
=
proc
->
timestamp_rx
+
(
fp
->
samples_per_tti
<<
1
)
+
(
fp
->
samples_per_tti
>>
1
);
proc
->
frame_tx
=
(
proc
->
subframe_rx
>
6
)
?
(
proc
->
frame_rx
+
1
)
:
proc
->
frame_rx
;
proc
->
subframe_
r
x
=
(
proc
->
subframe_rx
+
3
)
%
10
;
proc
->
subframe_
t
x
=
(
proc
->
subframe_rx
+
3
)
%
10
;
pthread_mutex_unlock
(
&
proc
->
mutex_tx
);
...
...
@@ -2850,7 +2865,6 @@ void phy_procedures_eNB_uespec_RX(const unsigned char thread_id,PHY_VARS_eNB *eN
eNB
->
ulsch
[
i
]
->
harq_processes
[
harq_pid
]
->
o_ACK
[
1
],
ret
);
//compute the expected ULSCH RX power (for the stats)
eNB
->
ulsch
[(
uint32_t
)
i
]
->
harq_processes
[
harq_pid
]
->
delta_TF
=
get_hundred_times_delta_IF_eNB
(
eNB
,
i
,
harq_pid
,
0
);
// 0 means bw_factor is not considered
...
...
openair2/UTIL/LOG/vcd_signal_dumper.c
View file @
781b00a3
...
...
@@ -77,6 +77,8 @@ struct vcd_module_s {
const
char
*
eurecomVariablesNames
[]
=
{
"frame_number_TX_eNB"
,
"frame_number_RX_eNB"
,
"subframe_number_TX_eNB"
,
"subframe_number_RX_eNB"
,
"runtime_TX_eNB"
,
"runtime_RX_eNB"
,
"frame_number_TX_UE"
,
...
...
@@ -226,6 +228,8 @@ const char* eurecomFunctionsNames[] = {
"lte_ue_pbch_procedures"
,
"phy_procedures_eNb_tx"
,
"phy_procedures_eNb_rx"
,
"phy_procedures_eNb_rx_common"
,
"phy_procedures_eNb_rx_uespec"
,
"phy_procedures_ue_tx"
,
"phy_procedures_ue_rx"
,
"phy_procedures_eNB_lte"
,
...
...
openair2/UTIL/LOG/vcd_signal_dumper.h
View file @
781b00a3
...
...
@@ -49,6 +49,8 @@
typedef
enum
{
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX_ENB
=
0
,
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX_ENB
,
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_TX_ENB
,
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX_ENB
,
VCD_SIGNAL_DUMPER_VARIABLES_RUNTIME_TX_ENB
,
VCD_SIGNAL_DUMPER_VARIABLES_RUNTIME_RX_ENB
,
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX_UE
,
...
...
@@ -200,6 +202,8 @@ typedef enum {
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_PBCH_PROCEDURES
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_COMMON
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_UESPEC
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_LTE
,
...
...
targets/RT/USER/eNB_usrp.gtkw
View file @
781b00a3
[*]
[*] GTKWave Analyzer v3.3.58 (w)1999-2014 BSI
[*]
Sun Apr 10 20:34:3
8 2016
[*]
Fri May 27 01:34:5
8 2016
[*]
[dumpfile] "/tmp/openair_dump_eNB.vcd"
[dumpfile_mtime] "
Sun Apr 10 20:26:57
2016"
[dumpfile_size] 1
81182776
[dumpfile_mtime] "
Fri May 27 01:33:50
2016"
[dumpfile_size] 1
2743642
[savefile] "/home/papillon/openairinterface5g/targets/RT/USER/eNB_usrp.gtkw"
[timestart] 1
978710
0000
[size] 1535 8
76
[timestart] 1
080107
0000
[size] 1535 8
45
[pos] -1 -1
*-21.793451 1
9795882832
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
*-21.793451 1
0817350000
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
[sst_width] 284
[signals_width] 2
38
[signals_width] 2
54
[sst_expanded] 1
[sst_vpaned_height] 294
@24
variables.hw_frame[63:0]
variables.hw_subframe[63:0]
@28
functions.trx_read
functions.trx_write
@24
variables.txcnt[63:0]
variables.rxcnt[63:0]
variables.trx_ts[63:0]
variables.trx_tst[63:0]
variables.frame_number_TX_eNB[63:0]
variables.frame_number_RX_eNB[63:0]
variables.subframe_number_TX_eNB[63:0]
variables.subframe_number_RX_eNB[63:0]
@28
functions.eNB_thread_rx0
functions.eNB_thread_tx0
functions.eNB_thread_rx1
functions.eNB_thread_tx1
functions.eNB_thread_rx2
functions.eNB_thread_tx2
functions.eNB_thread_rx3
functions.eNB_thread_tx3
functions.eNB_thread_rx4
functions.eNB_thread_tx4
functions.eNB_thread_rx5
functions.eNB_thread_tx5
functions.eNB_thread_rx6
functions.eNB_thread_tx6
functions.eNB_thread_rx7
functions.eNB_thread_tx7
functions.eNB_thread_rx8
functions.eNB_thread_tx8
functions.eNB_thread_rx9
functions.eNB_thread_tx9
functions.phy_procedures_eNb_tx
@29
functions.phy_enb_sfgen
@28
functions.phy_procedures_eNb_rx
@24
variables.dci_info[63:0]
...
...
@@ -64,7 +46,7 @@ functions.macxface_SR_indication
@420
variables.ue0_SR_ENERGY[63:0]
variables.ue0_SR_THRES[63:0]
@2
5
@2
4
variables.dci_info[63:0]
@28
functions.phy_enb_ulsch_decoding0
...
...
targets/RT/USER/lte-enb.c
View file @
781b00a3
...
...
@@ -276,6 +276,7 @@ static void* eNB_thread_tx( void* param )
eNB_proc_t
*
proc
=
(
eNB_proc_t
*
)
param
;
FILE
*
tx_time_file
=
NULL
;
char
tx_time_name
[
101
];
void
*
txp
[
PHY_vars_eNB_g
[
0
][
0
]
->
frame_parms
.
nb_antennas_tx
];
if
(
opp_enabled
==
1
)
{
snprintf
(
tx_time_name
,
100
,
"/tmp/%s_tx_time_thread_sf_%d"
,
"eNB"
,
proc
->
thread_index
);
...
...
@@ -408,7 +409,6 @@ static void* eNB_thread_tx( void* param )
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_PROC_TX0
+
(
2
*
proc
->
thread_index
),
1
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX_ENB
,
proc
->
frame_tx
);
start_meas
(
&
softmodem_stats_tx_sf
[
proc
->
thread_index
]
);
if
(
oai_exit
)
break
;
...
...
@@ -436,6 +436,9 @@ static void* eNB_thread_tx( void* param )
exit_fun
(
"nothing to add"
);
}
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX_ENB
,
proc
->
frame_tx
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_TX_ENB
,
proc
->
subframe_tx
);
if
(
oai_exit
)
break
;
if
(
PHY_vars_eNB_g
[
0
][
proc
->
CC_id
]
->
node_function
!=
NGFI_RRU_IF4
)
{
...
...
@@ -459,7 +462,9 @@ static void* eNB_thread_tx( void* param )
}
if
(
PHY_vars_eNB_g
[
0
][
proc
->
CC_id
]
->
node_function
!=
NGFI_RCC_IF4
)
{
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_SFGEN
,
1
);
do_OFDM_mod_rt
(
proc
->
subframe_tx
,
PHY_vars_eNB_g
[
0
][
proc
->
CC_id
]
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_SFGEN
,
0
);
/*
short *txdata = (short*)&PHY_vars_eNB_g[0][proc->CC_id]->common_vars.txdata[0][0][proc->subframe_tx*PHY_vars_eNB_g[0][proc->CC_id]->frame_parms.samples_per_tti];
int i;
...
...
@@ -471,9 +476,30 @@ static void* eNB_thread_tx( void* param )
txdata[i+4] = -2047;
txdata[i+5] = 0;
txdata[i+6] = 0;
txdata[i+7] = -2047;
}
txdata[i+7] = -2047; }
*/
// Transmit TX buffer based on timestamp from RX
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE
,
1
);
// prepare tx buffer pointers
int
i
;
for
(
i
=
0
;
i
<
PHY_vars_eNB_g
[
0
][
0
]
->
frame_parms
.
nb_antennas_tx
;
i
++
)
txp
[
i
]
=
(
void
*
)
&
PHY_vars_eNB_g
[
0
][
0
]
->
common_vars
.
txdata
[
0
][
i
][
proc
->
subframe_tx
*
PHY_vars_eNB_g
[
0
][
0
]
->
frame_parms
.
samples_per_tti
];
// if symb_written < spp ==> error
if
(
proc
->
frame_tx
>
50
)
{
openair0
.
trx_write_func
(
&
openair0
,
(
proc
->
timestamp_tx
+
openair0_cfg
[
0
].
tx_sample_advance
),
txp
,
PHY_vars_eNB_g
[
0
][
0
]
->
frame_parms
.
samples_per_tti
,
PHY_vars_eNB_g
[
0
][
0
]
->
frame_parms
.
nb_antennas_tx
,
1
);
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE
,
0
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_TRX_TST
,
(
proc
->
timestamp_tx
-
openair0_cfg
[
0
].
tx_sample_advance
)
&
0xffffffff
);
}
if
(
pthread_mutex_lock
(
&
proc
->
mutex_tx
)
!=
0
)
{
...
...
@@ -683,23 +709,25 @@ static void* eNB_thread_rx( void* param )
// This is a forever while loop, it loops over subframes which are scheduled by incoming samples from HW devices
while
(
!
oai_exit
)
{
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_PROC_RX0
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_PROC_RX0
+
(
2
*
proc
->
thread_index
),
1
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX_ENB
,
proc
->
frame_rx
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_PROC_RX0
+
(
2
*
proc
->
thread_index
),
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_COMMON
,
0
);
start_meas
(
&
softmodem_stats_rx_sf
[
proc
->
thread_index
]
);
if
(
oai_exit
)
break
;
if
((((
fp
->
frame_type
==
TDD
)
&&
(
subframe_select
(
fp
,
proc
->
subframe_rx
)
==
SF_UL
))
||
(
fp
->
frame_type
==
FDD
)))
{
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_COMMON
,
1
);
// this spawns the prach and TX threads inside and updates the frame and subframe counters
phy_procedures_eNB_common_RX
(
proc
->
thread_index
,
eNB
,
0
);
if
(
eNB
->
node_function
!=
NGFI_RRU_IF4
)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_COMMON
,
0
);
if
(
eNB
->
node_function
!=
NGFI_RRU_IF4
)
{
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_UESPEC
,
1
);
// this is the ue-specific processing for the subframe and can be multi-threaded later
phy_procedures_eNB_uespec_RX
(
proc
->
thread_index
,
eNB
,
0
,
no_relay
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_UESPEC
,
0
);
}
}
if
((
subframe_select
(
fp
,
proc
->
subframe_rx
)
==
SF_S
))
{
...
...
@@ -715,6 +743,9 @@ static void* eNB_thread_rx( void* param )
}
#endif // LOWLATENCY
print_meas_now
(
&
softmodem_stats_rx_sf
[
proc
->
thread_index
],
"eNB_RX_SF"
,
proc
->
thread_index
,
rx_time_file
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_PROC_RX0
+
(
2
*
proc
->
thread_index
),
0
);
}
//stop_meas( &softmodem_stats_rx_sf[proc->thread_index] );
...
...
@@ -747,7 +778,7 @@ static void* eNB_thread_prach( void* param )
MSC_START_USE
();
AssertFatal
(
proc
->
thread_index
!
=
0
,
"Invalid thread index %d for PRACH thread
\n
"
,
proc
->
thread_index
);
AssertFatal
(
proc
->
thread_index
=
=
0
,
"Invalid thread index %d for PRACH thread
\n
"
,
proc
->
thread_index
);
#ifdef LOWLATENCY
struct
sched_attr
attr
;
...
...
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