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
2b6c7a52
Commit
2b6c7a52
authored
May 27, 2016
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
intermediate save to switch machines
parent
b188a5cf
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 @
2b6c7a52
...
...
@@ -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 @
2b6c7a52
...
...
@@ -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 @
2b6c7a52
...
...
@@ -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 @
2b6c7a52
[*]
[*] 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 @
2b6c7a52
...
...
@@ -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