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
29e6833c
Commit
29e6833c
authored
Feb 11, 2016
by
Florian Kaltenberger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
phy test for UE
parent
6394e1b0
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
174 additions
and
189 deletions
+174
-189
openair1/PHY/LTE_TRANSPORT/initial_sync.c
openair1/PHY/LTE_TRANSPORT/initial_sync.c
+11
-11
openair1/PHY/LTE_TRANSPORT/print_stats.c
openair1/PHY/LTE_TRANSPORT/print_stats.c
+4
-7
openair1/SCHED/phy_procedures_lte_ue.c
openair1/SCHED/phy_procedures_lte_ue.c
+133
-168
openair2/LAYER2/MAC/l1_helpers.c
openair2/LAYER2/MAC/l1_helpers.c
+4
-3
targets/SIMU/USER/oaisim_functions.c
targets/SIMU/USER/oaisim_functions.c
+22
-0
No files found.
openair1/PHY/LTE_TRANSPORT/initial_sync.c
View file @
29e6833c
...
@@ -530,20 +530,20 @@ int initial_sync(PHY_VARS_UE *phy_vars_ue, runmode_t mode)
...
@@ -530,20 +530,20 @@ int initial_sync(PHY_VARS_UE *phy_vars_ue, runmode_t mode)
#endif
#endif
if
(
phy_vars_ue
->
UE_scan_carrier
==
0
)
{
if
(
phy_vars_ue
->
UE_scan_carrier
==
0
)
{
#ifdef OPENAIR2
if
(
phy_vars_ue
->
mac_enabled
==
1
)
{
LOG_I
(
PHY
,
"[UE%d] Sending synch status to higher layers
\n
"
,
phy_vars_ue
->
Mod_id
);
LOG_I
(
PHY
,
"[UE%d] Sending synch status to higher layers
\n
"
,
phy_vars_ue
->
Mod_id
);
//mac_resynch();
//mac_resynch();
mac_xface
->
dl_phy_sync_success
(
phy_vars_ue
->
Mod_id
,
phy_vars_ue
->
frame_rx
,
0
,
1
);
//phy_vars_ue->lte_ue_common_vars.eNb_id);
mac_xface
->
dl_phy_sync_success
(
phy_vars_ue
->
Mod_id
,
phy_vars_ue
->
frame_rx
,
0
,
1
);
//phy_vars_ue->lte_ue_common_vars.eNb_id);
#endif //OPENAIR2
phy_vars_ue
->
UE_mode
[
0
]
=
PRACH
;
}
else
{
phy_vars_ue
->
UE_mode
[
0
]
=
PUSCH
;
}
generate_pcfich_reg_mapping
(
frame_parms
);
generate_pcfich_reg_mapping
(
frame_parms
);
generate_phich_reg_mapping
(
frame_parms
);
generate_phich_reg_mapping
(
frame_parms
);
// init_prach625(frame_parms);
// init_prach625(frame_parms);
#ifndef OPENAIR2
phy_vars_ue
->
UE_mode
[
0
]
=
PUSCH
;
#else
phy_vars_ue
->
UE_mode
[
0
]
=
PRACH
;
#endif
//phy_vars_ue->lte_ue_pbch_vars[0]->pdu_errors=0;
//phy_vars_ue->lte_ue_pbch_vars[0]->pdu_errors=0;
phy_vars_ue
->
lte_ue_pbch_vars
[
0
]
->
pdu_errors_conseq
=
0
;
phy_vars_ue
->
lte_ue_pbch_vars
[
0
]
->
pdu_errors_conseq
=
0
;
//phy_vars_ue->lte_ue_pbch_vars[0]->pdu_errors_last=0;
//phy_vars_ue->lte_ue_pbch_vars[0]->pdu_errors_last=0;
...
...
openair1/PHY/LTE_TRANSPORT/print_stats.c
View file @
29e6833c
...
@@ -107,10 +107,10 @@ int dump_ue_stats(PHY_VARS_UE *phy_vars_ue, char* buffer, int length, runmode_t
...
@@ -107,10 +107,10 @@ int dump_ue_stats(PHY_VARS_UE *phy_vars_ue, char* buffer, int length, runmode_t
len
+=
sprintf
(
&
buffer
[
len
],
"[UE PROC] timing_advance = %d
\n
"
,
phy_vars_ue
->
timing_advance
);
len
+=
sprintf
(
&
buffer
[
len
],
"[UE PROC] timing_advance = %d
\n
"
,
phy_vars_ue
->
timing_advance
);
if
(
phy_vars_ue
->
UE_mode
[
0
]
==
PUSCH
)
{
if
(
phy_vars_ue
->
UE_mode
[
0
]
==
PUSCH
)
{
len
+=
sprintf
(
&
buffer
[
len
],
"[UE PROC] Po_PUSCH = %d dBm (PL %d dB, Po_NOMINAL_PUSCH %d dBm, PHR %d dB)
\n
"
,
len
+=
sprintf
(
&
buffer
[
len
],
"[UE PROC] Po_PUSCH = %d dBm (PL %d dB, Po_NOMINAL_PUSCH %d dBm, PHR %d dB)
\n
"
,
PHY_vars_UE_g
[
0
][
0
]
->
ulsch_ue
[
0
]
->
Po_PUSCH
,
phy_vars_ue
->
ulsch_ue
[
0
]
->
Po_PUSCH
,
get_PL
(
phy_vars_ue
->
Mod_id
,
phy_vars_ue
->
CC_id
,
0
),
get_PL
(
phy_vars_ue
->
Mod_id
,
phy_vars_ue
->
CC_id
,
0
),
mac_xface
->
get_Po_NOMINAL_PUSCH
(
phy_vars_ue
->
Mod_id
,
0
)
,
phy_vars_ue
->
lte_frame_parms
.
ul_power_control_config_common
.
p0_NominalPUSCH
,
PHY_vars_UE_g
[
0
][
0
]
->
ulsch_ue
[
0
]
->
PHR
);
phy_vars_ue
->
ulsch_ue
[
0
]
->
PHR
);
len
+=
sprintf
(
&
buffer
[
len
],
"[UE PROC] Po_PUCCH = %d dBm (Po_NOMINAL_PUCCH %d dBm, g_pucch %d dB)
\n
"
,
len
+=
sprintf
(
&
buffer
[
len
],
"[UE PROC] Po_PUCCH = %d dBm (Po_NOMINAL_PUCCH %d dBm, g_pucch %d dB)
\n
"
,
get_PL
(
phy_vars_ue
->
Mod_id
,
phy_vars_ue
->
CC_id
,
0
)
+
get_PL
(
phy_vars_ue
->
Mod_id
,
phy_vars_ue
->
CC_id
,
0
)
+
phy_vars_ue
->
lte_frame_parms
.
ul_power_control_config_common
.
p0_NominalPUCCH
+
phy_vars_ue
->
lte_frame_parms
.
ul_power_control_config_common
.
p0_NominalPUCCH
+
...
@@ -582,9 +582,7 @@ int dump_eNB_stats(PHY_VARS_eNB *phy_vars_eNB, char* buffer, int length)
...
@@ -582,9 +582,7 @@ int dump_eNB_stats(PHY_VARS_eNB *phy_vars_eNB, char* buffer, int length)
len
+=
sprintf
(
&
buffer
[
len
],
"%4d "
,
len
+=
sprintf
(
&
buffer
[
len
],
"%4d "
,
phy_vars_eNB
->
PHY_measurements_eNB
[
eNB
].
n0_subband_power_tot_dBm
[
i
]);
phy_vars_eNB
->
PHY_measurements_eNB
[
eNB
].
n0_subband_power_tot_dBm
[
i
]);
if
((
i
>
0
)
&&
((
i
%
25
)
==
0
))
if
((
i
>
0
)
&&
((
i
%
25
)
==
0
))
len
+=
sprintf
(
&
buffer
[
len
],
"
\n
"
,
len
+=
sprintf
(
&
buffer
[
len
],
"
\n
"
);
phy_vars_eNB
->
PHY_measurements_eNB
[
eNB
].
n0_subband_power_tot_dBm
[
i
]);
}
}
len
+=
sprintf
(
&
buffer
[
len
],
"
\n
"
);
len
+=
sprintf
(
&
buffer
[
len
],
"
\n
"
);
len
+=
sprintf
(
&
buffer
[
len
],
"
\n
[eNB PROC] PERFORMANCE PARAMETERS
\n
"
);
len
+=
sprintf
(
&
buffer
[
len
],
"
\n
[eNB PROC] PERFORMANCE PARAMETERS
\n
"
);
...
@@ -644,7 +642,6 @@ int dump_eNB_stats(PHY_VARS_eNB *phy_vars_eNB, char* buffer, int length)
...
@@ -644,7 +642,6 @@ int dump_eNB_stats(PHY_VARS_eNB *phy_vars_eNB, char* buffer, int length)
dB_fixed
(
phy_vars_eNB
->
eNB_UE_stats
[
UE_id
].
Po_PUCCH
/
phy_vars_eNB
->
lte_frame_parms
.
N_RB_UL
)
-
phy_vars_eNB
->
rx_total_gain_eNB_dB
,
dB_fixed
(
phy_vars_eNB
->
eNB_UE_stats
[
UE_id
].
Po_PUCCH
/
phy_vars_eNB
->
lte_frame_parms
.
N_RB_UL
)
-
phy_vars_eNB
->
rx_total_gain_eNB_dB
,
phy_vars_eNB
->
lte_frame_parms
.
ul_power_control_config_common
.
p0_NominalPUCCH
,
phy_vars_eNB
->
lte_frame_parms
.
ul_power_control_config_common
.
p0_NominalPUCCH
,
dB_fixed
(
phy_vars_eNB
->
eNB_UE_stats
[
UE_id
].
Po_PUCCH1_below
/
phy_vars_eNB
->
lte_frame_parms
.
N_RB_UL
)
-
phy_vars_eNB
->
rx_total_gain_eNB_dB
,
dB_fixed
(
phy_vars_eNB
->
eNB_UE_stats
[
UE_id
].
Po_PUCCH1_below
/
phy_vars_eNB
->
lte_frame_parms
.
N_RB_UL
)
-
phy_vars_eNB
->
rx_total_gain_eNB_dB
,
dB_fixed
(
phy_vars_eNB
->
eNB_UE_stats
[
UE_id
].
Po_PUCCH1_above
/
phy_vars_eNB
->
lte_frame_parms
.
N_RB_UL
)
-
phy_vars_eNB
->
rx_total_gain_eNB_dB
,
PUCCH1_THRES
+
phy_vars_eNB
->
PHY_measurements_eNB
[
0
].
n0_power_tot_dBm
-
dB_fixed
(
phy_vars_eNB
->
lte_frame_parms
.
N_RB_UL
),
PUCCH1_THRES
+
phy_vars_eNB
->
PHY_measurements_eNB
[
0
].
n0_power_tot_dBm
-
dB_fixed
(
phy_vars_eNB
->
lte_frame_parms
.
N_RB_UL
),
phy_vars_eNB
->
eNB_UE_stats
[
UE_id
].
sector
);
phy_vars_eNB
->
eNB_UE_stats
[
UE_id
].
sector
);
...
...
openair1/SCHED/phy_procedures_lte_ue.c
View file @
29e6833c
...
@@ -59,20 +59,15 @@ extern int card;
...
@@ -59,20 +59,15 @@ extern int card;
#endif
#endif
#endif
#endif
//#define DEBUG_PHY_PROC
#define DEBUG_PHY_PROC
#define UE_TX_POWER (-10)
//#ifdef OPENAIR2
#ifndef PUCCH
#ifndef PUCCH
#define PUCCH
#define PUCCH
#endif
#endif
//#endif
//#ifdef OPENAIR2
#include "LAYER2/MAC/extern.h"
#include "LAYER2/MAC/extern.h"
#include "LAYER2/MAC/defs.h"
#include "LAYER2/MAC/defs.h"
#include "UTIL/LOG/log.h"
#include "UTIL/LOG/log.h"
//#endif
#ifdef EMOS
#ifdef EMOS
fifo_dump_emos_UE
emos_dump_UE
;
fifo_dump_emos_UE
emos_dump_UE
;
...
@@ -639,16 +634,12 @@ void phy_procedures_emos_UE_TX(uint8_t next_slot,uint8_t eNB_id) {
...
@@ -639,16 +634,12 @@ void phy_procedures_emos_UE_TX(uint8_t next_slot,uint8_t eNB_id) {
#endif
#endif
int
dummy_tx_buffer
[
3840
*
4
]
__attribute__
((
aligned
(
16
)));
int
dummy_tx_buffer
[
3840
*
4
]
__attribute__
((
aligned
(
16
)));
#ifndef OPENAIR2
PRACH_RESOURCES_t
prach_resources_local
;
PRACH_RESOURCES_t
prach_resources_local
;
#endif
void
phy_procedures_UE_TX
(
PHY_VARS_UE
*
phy_vars_ue
,
uint8_t
eNB_id
,
uint8_t
abstraction_flag
,
runmode_t
mode
,
relaying_type_t
r_type
)
void
phy_procedures_UE_TX
(
PHY_VARS_UE
*
phy_vars_ue
,
uint8_t
eNB_id
,
uint8_t
abstraction_flag
,
runmode_t
mode
,
relaying_type_t
r_type
)
{
{
#ifndef OPENAIR2
int
i
;
int
i
;
#endif
uint16_t
first_rb
,
nb_rb
;
uint16_t
first_rb
,
nb_rb
;
uint8_t
harq_pid
;
uint8_t
harq_pid
;
unsigned
int
input_buffer_length
;
unsigned
int
input_buffer_length
;
...
@@ -721,8 +712,7 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
...
@@ -721,8 +712,7 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
subframe_tx
);
subframe_tx
);
#ifdef OPENAIR2
if
(
phy_vars_ue
->
mac_enabled
==
1
)
{
if
((
phy_vars_ue
->
ulsch_ue_Msg3_active
[
eNB_id
]
==
1
)
&&
if
((
phy_vars_ue
->
ulsch_ue_Msg3_active
[
eNB_id
]
==
1
)
&&
(
phy_vars_ue
->
ulsch_ue_Msg3_frame
[
eNB_id
]
==
frame_tx
)
&&
(
phy_vars_ue
->
ulsch_ue_Msg3_frame
[
eNB_id
]
==
frame_tx
)
&&
(
phy_vars_ue
->
ulsch_ue_Msg3_subframe
[
eNB_id
]
==
subframe_tx
))
{
// Initial Transmission of Msg3
(
phy_vars_ue
->
ulsch_ue_Msg3_subframe
[
eNB_id
]
==
subframe_tx
))
{
// Initial Transmission of Msg3
...
@@ -753,8 +743,7 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
...
@@ -753,8 +743,7 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
Msg3_flag
=
0
;
Msg3_flag
=
0
;
}
}
}
#endif
if
(
phy_vars_ue
->
ulsch_ue
[
eNB_id
]
->
harq_processes
[
harq_pid
]
->
subframe_scheduling_flag
==
1
)
{
if
(
phy_vars_ue
->
ulsch_ue
[
eNB_id
]
->
harq_processes
[
harq_pid
]
->
subframe_scheduling_flag
==
1
)
{
...
@@ -853,19 +842,17 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
...
@@ -853,19 +842,17 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
#endif
#endif
stop_meas
(
&
phy_vars_ue
->
ulsch_encoding_stats
);
stop_meas
(
&
phy_vars_ue
->
ulsch_encoding_stats
);
if
(
phy_vars_ue
->
mac_enabled
==
1
)
{
#ifdef OPENAIR2
// signal MAC that Msg3 was sent
// signal MAC that Msg3 was sent
mac_xface
->
Msg3_transmitted
(
Mod_id
,
mac_xface
->
Msg3_transmitted
(
Mod_id
,
CC_id
,
CC_id
,
frame_tx
,
frame_tx
,
eNB_id
);
eNB_id
);
}
#endif
}
else
{
}
else
{
input_buffer_length
=
phy_vars_ue
->
ulsch_ue
[
eNB_id
]
->
harq_processes
[
harq_pid
]
->
TBS
/
8
;
input_buffer_length
=
phy_vars_ue
->
ulsch_ue
[
eNB_id
]
->
harq_processes
[
harq_pid
]
->
TBS
/
8
;
#ifdef OPENAIR2
if
(
phy_vars_ue
->
mac_enabled
==
1
)
{
// LOG_D(PHY,"[UE %d] ULSCH : Searching for MAC SDUs\n",Mod_id);
// LOG_D(PHY,"[UE %d] ULSCH : Searching for MAC SDUs\n",Mod_id);
if
(
phy_vars_ue
->
ulsch_ue
[
eNB_id
]
->
harq_processes
[
harq_pid
]
->
round
==
0
)
{
if
(
phy_vars_ue
->
ulsch_ue
[
eNB_id
]
->
harq_processes
[
harq_pid
]
->
round
==
0
)
{
//if (phy_vars_ue->ulsch_ue[eNB_id]->harq_processes[harq_pid]->calibration_flag == 0) {
//if (phy_vars_ue->ulsch_ue[eNB_id]->harq_processes[harq_pid]->calibration_flag == 0) {
...
@@ -902,7 +889,8 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
...
@@ -902,7 +889,8 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
LOG_T
(
PHY
,
"
\n
"
);
LOG_T
(
PHY
,
"
\n
"
);
#endif
#endif
#endif
#endif
#else //OPENAIR2
}
else
{
// the following lines were necessary for the calibration in CROWN
// the following lines were necessary for the calibration in CROWN
/*
/*
if (phy_vars_ue->ulsch_ue[eNB_id]->harq_processes[harq_pid]->calibration_flag == 0) {
if (phy_vars_ue->ulsch_ue[eNB_id]->harq_processes[harq_pid]->calibration_flag == 0) {
...
@@ -925,8 +913,8 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
...
@@ -925,8 +913,8 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
for (i=0;i<input_buffer_length;i++)
for (i=0;i<input_buffer_length;i++)
ulsch_input_buffer[i]= i;
ulsch_input_buffer[i]= i;
*/
*/
}
#endif //OPENAIR2
start_meas
(
&
phy_vars_ue
->
ulsch_encoding_stats
);
start_meas
(
&
phy_vars_ue
->
ulsch_encoding_stats
);
if
(
abstraction_flag
==
0
)
{
if
(
abstraction_flag
==
0
)
{
...
@@ -958,12 +946,13 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
...
@@ -958,12 +946,13 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
}
}
if
(
abstraction_flag
==
0
)
{
if
(
abstraction_flag
==
0
)
{
#ifdef OPENAIR2
if
(
phy_vars_ue
->
mac_enabled
==
1
)
{
pusch_power_cntl
(
phy_vars_ue
,
subframe_tx
,
eNB_id
,
1
,
abstraction_flag
);
pusch_power_cntl
(
phy_vars_ue
,
subframe_tx
,
eNB_id
,
1
,
abstraction_flag
);
phy_vars_ue
->
tx_power_dBm
=
phy_vars_ue
->
ulsch_ue
[
eNB_id
]
->
Po_PUSCH
;
phy_vars_ue
->
tx_power_dBm
=
phy_vars_ue
->
ulsch_ue
[
eNB_id
]
->
Po_PUSCH
;
#else
}
phy_vars_ue
->
tx_power_dBm
=
UE_TX_POWER
;
else
{
#endif
phy_vars_ue
->
tx_power_dBm
=
phy_vars_ue
->
tx_power_max_dBm
;
}
phy_vars_ue
->
tx_total_RE
=
nb_rb
*
12
;
phy_vars_ue
->
tx_total_RE
=
nb_rb
*
12
;
#if defined(EXMIMO) || defined(OAI_USRP)
#if defined(EXMIMO) || defined(OAI_USRP)
...
@@ -1020,17 +1009,19 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
...
@@ -1020,17 +1009,19 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
if
(
is_SR_TXOp
(
phy_vars_ue
,
eNB_id
,
subframe_tx
)
==
1
)
{
if
(
is_SR_TXOp
(
phy_vars_ue
,
eNB_id
,
subframe_tx
)
==
1
)
{
LOG_D
(
PHY
,
"[UE %d][SR %x] Frame %d subframe %d: got SR_TXOp, Checking for SR for PUSCH from MAC
\n
"
,
LOG_D
(
PHY
,
"[UE %d][SR %x] Frame %d subframe %d: got SR_TXOp, Checking for SR for PUSCH from MAC
\n
"
,
Mod_id
,
phy_vars_ue
->
lte_ue_pdcch_vars
[
eNB_id
]
->
crnti
,
frame_tx
,
subframe_tx
);
Mod_id
,
phy_vars_ue
->
lte_ue_pdcch_vars
[
eNB_id
]
->
crnti
,
frame_tx
,
subframe_tx
);
#ifdef OPENAIR2
SR_payload
=
mac_xface
->
ue_get_SR
(
Mod_id
,
CC_id
,
frame_tx
,
eNB_id
,
phy_vars_ue
->
lte_ue_pdcch_vars
[
eNB_id
]
->
crnti
,
subframe_tx
);
// subframe used for meas gap
#else
SR_payload
=
1
;
#endif
if
(
phy_vars_ue
->
mac_enabled
==
1
)
{
SR_payload
=
mac_xface
->
ue_get_SR
(
Mod_id
,
CC_id
,
frame_tx
,
eNB_id
,
phy_vars_ue
->
lte_ue_pdcch_vars
[
eNB_id
]
->
crnti
,
subframe_tx
);
// subframe used for meas gap
}
else
{
SR_payload
=
1
;
}
if
(
SR_payload
>
0
)
{
if
(
SR_payload
>
0
)
{
generate_ul_signal
=
1
;
generate_ul_signal
=
1
;
LOG_D
(
PHY
,
"[UE %d][SR %x] Frame %d subframe %d got the SR for PUSCH is %d
\n
"
,
LOG_D
(
PHY
,
"[UE %d][SR %x] Frame %d subframe %d got the SR for PUSCH is %d
\n
"
,
...
@@ -1038,8 +1029,9 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
...
@@ -1038,8 +1029,9 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
}
else
{
}
else
{
phy_vars_ue
->
sr
[
subframe_tx
]
=
0
;
phy_vars_ue
->
sr
[
subframe_tx
]
=
0
;
}
}
}
else
}
else
{
SR_payload
=
0
;
SR_payload
=
0
;
}
if
(
get_ack
(
&
phy_vars_ue
->
lte_frame_parms
,
if
(
get_ack
(
&
phy_vars_ue
->
lte_frame_parms
,
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
harq_ack
,
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
harq_ack
,
...
@@ -1054,12 +1046,13 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
...
@@ -1054,12 +1046,13 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
pucch_ack_payload
,
pucch_ack_payload
,
SR_payload
);
SR_payload
);
#ifdef OPENAIR2
if
(
phy_vars_ue
->
mac_enabled
==
1
)
{
Po_PUCCH
=
pucch_power_cntl
(
phy_vars_ue
,
subframe_tx
,
eNB_id
,
format
);
Po_PUCCH
=
pucch_power_cntl
(
phy_vars_ue
,
subframe_tx
,
eNB_id
,
format
);
phy_vars_ue
->
tx_power_dBm
=
Po_PUCCH
;
}
#else
else
{
phy_vars_ue
->
tx_power_dBm
=
UE_TX_POWER
;
Po_PUCCH
=
phy_vars_ue
->
tx_power_max_dBm
;
#endif
}
phy_vars_ue
->
tx_power_dBm
=
Po_PUCCH
;
phy_vars_ue
->
tx_total_RE
=
12
;
phy_vars_ue
->
tx_total_RE
=
12
;
#if defined(EXMIMO) || defined(OAI_USRP)
#if defined(EXMIMO) || defined(OAI_USRP)
...
@@ -1117,12 +1110,13 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
...
@@ -1117,12 +1110,13 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
}
}
}
else
if
(
SR_payload
==
1
)
{
// no ACK/NAK but SR is triggered by MAC
}
else
if
(
SR_payload
==
1
)
{
// no ACK/NAK but SR is triggered by MAC
#ifdef OPENAIR2
if
(
phy_vars_ue
->
mac_enabled
==
1
)
{
Po_PUCCH
=
pucch_power_cntl
(
phy_vars_ue
,
subframe_tx
,
eNB_id
,
pucch_format1
);
Po_PUCCH
=
pucch_power_cntl
(
phy_vars_ue
,
subframe_tx
,
eNB_id
,
pucch_format1
);
phy_vars_ue
->
tx_power_dBm
=
Po_PUCCH
;
}
#else
else
{
phy_vars_ue
->
tx_power_dBm
=
UE_TX_POWER
;
Po_PUCCH
=
phy_vars_ue
->
tx_power_max_dBm
;
#endif
}
phy_vars_ue
->
tx_power_dBm
=
Po_PUCCH
;
phy_vars_ue
->
tx_total_RE
=
12
;
phy_vars_ue
->
tx_total_RE
=
12
;
#if defined(EXMIMO) || defined(OAI_USRP)
#if defined(EXMIMO) || defined(OAI_USRP)
...
@@ -1342,30 +1336,23 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
...
@@ -1342,30 +1336,23 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
// }// slot_tx is even
// }// slot_tx is even
// else { // slot_tx is odd, do the PRACH here
// else { // slot_tx is odd, do the PRACH here
#ifdef OPENAIR2
if
((
phy_vars_ue
->
UE_mode
[
eNB_id
]
==
PRACH
)
&&
(
phy_vars_ue
->
lte_frame_parms
.
prach_config_common
.
prach_Config_enabled
==
1
))
{
if
((
phy_vars_ue
->
UE_mode
[
eNB_id
]
==
PRACH
)
&&
(
phy_vars_ue
->
lte_frame_parms
.
prach_config_common
.
prach_Config_enabled
==
1
))
{
#else
if
(
1
)
{
#endif
// check if we have PRACH opportunity
// check if we have PRACH opportunity
if
(
is_prach_subframe
(
&
phy_vars_ue
->
lte_frame_parms
,
frame_tx
,
subframe_tx
))
{
if
(
is_prach_subframe
(
&
phy_vars_ue
->
lte_frame_parms
,
frame_tx
,
subframe_tx
))
{
phy_vars_ue
->
generate_prach
=
0
;
phy_vars_ue
->
generate_prach
=
0
;
#ifdef OPENAIR2
if
(
phy_vars_ue
->
mac_enabled
==
1
){
// ask L2 for RACH transport
// ask L2 for RACH transport
if
((
mode
!=
rx_calib_ue
)
&&
(
mode
!=
rx_calib_ue_med
)
&&
(
mode
!=
rx_calib_ue_byp
)
&&
(
mode
!=
no_L2_connect
)
)
{
if
((
mode
!=
rx_calib_ue
)
&&
(
mode
!=
rx_calib_ue_med
)
&&
(
mode
!=
rx_calib_ue_byp
)
&&
(
mode
!=
no_L2_connect
)
)
{
phy_vars_ue
->
prach_resources
[
eNB_id
]
=
mac_xface
->
ue_get_rach
(
Mod_id
,
phy_vars_ue
->
prach_resources
[
eNB_id
]
=
mac_xface
->
ue_get_rach
(
Mod_id
,
CC_id
,
CC_id
,
frame_tx
,
frame_tx
,
eNB_id
,
eNB_id
,
subframe_tx
);
subframe_tx
);
// LOG_I(PHY,"Got prach_resources for eNB %d address %d, RRCCommon %d\n",eNB_id,phy_vars_ue->prach_resources[eNB_id],UE_mac_inst[Mod_id].radioResourceConfigCommon);
// LOG_I(PHY,"Got prach_resources for eNB %d address %d, RRCCommon %d\n",eNB_id,phy_vars_ue->prach_resources[eNB_id],UE_mac_inst[Mod_id].radioResourceConfigCommon);
}
}
#endif
}
if
(
phy_vars_ue
->
prach_resources
[
eNB_id
]
!=
NULL
)
{
if
(
phy_vars_ue
->
prach_resources
[
eNB_id
]
!=
NULL
)
{
...
@@ -1388,16 +1375,13 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
...
@@ -1388,16 +1375,13 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
phy_vars_ue
->
prach_resources
[
eNB_id
]
->
ra_TDD_map_index
,
phy_vars_ue
->
prach_resources
[
eNB_id
]
->
ra_TDD_map_index
,
phy_vars_ue
->
prach_resources
[
eNB_id
]
->
ra_RNTI
);
phy_vars_ue
->
prach_resources
[
eNB_id
]
->
ra_RNTI
);
#ifdef OPENAIR2
if
((
phy_vars_ue
->
mac_enabled
==
1
)
&&
(
mode
!=
calib_prach_tx
))
{
if
(
mode
!=
calib_prach_tx
)
phy_vars_ue
->
tx_power_dBm
=
phy_vars_ue
->
prach_resources
[
eNB_id
]
->
ra_PREAMBLE_RECEIVED_TARGET_POWER
+
get_PL
(
Mod_id
,
CC_id
,
eNB_id
);
phy_vars_ue
->
tx_power_dBm
=
phy_vars_ue
->
prach_resources
[
eNB_id
]
->
ra_PREAMBLE_RECEIVED_TARGET_POWER
+
get_PL
(
Mod_id
,
CC_id
,
eNB_id
);
}
else
{
else
{
phy_vars_ue
->
tx_power_dBm
=
phy_vars_ue
->
tx_power_max_dBm
;
phy_vars_ue
->
tx_power_dBm
=
phy_vars_ue
->
tx_power_max_dBm
;
phy_vars_ue
->
prach_resources
[
eNB_id
]
->
ra_PreambleIndex
=
19
;
phy_vars_ue
->
prach_resources
[
eNB_id
]
->
ra_PreambleIndex
=
19
;
}
}
#else
phy_vars_ue
->
tx_power_dBm
=
UE_TX_POWER
;
#endif
phy_vars_ue
->
tx_total_RE
=
96
;
phy_vars_ue
->
tx_total_RE
=
96
;
...
@@ -1428,12 +1412,12 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
...
@@ -1428,12 +1412,12 @@ void phy_procedures_UE_TX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstra
}
else
{
}
else
{
UE_transport_info
[
Mod_id
][
CC_id
].
cntl
.
prach_flag
=
1
;
UE_transport_info
[
Mod_id
][
CC_id
].
cntl
.
prach_flag
=
1
;
UE_transport_info
[
Mod_id
][
CC_id
].
cntl
.
prach_id
=
phy_vars_ue
->
prach_resources
[
eNB_id
]
->
ra_PreambleIndex
;
UE_transport_info
[
Mod_id
][
CC_id
].
cntl
.
prach_id
=
phy_vars_ue
->
prach_resources
[
eNB_id
]
->
ra_PreambleIndex
;
#ifdef OPENAIR2
if
(
phy_vars_ue
->
mac_enabled
==
1
){
mac_xface
->
Msg1_transmitted
(
Mod_id
,
mac_xface
->
Msg1_transmitted
(
Mod_id
,
CC_id
,
CC_id
,
frame_tx
,
frame_tx
,
eNB_id
);
eNB_id
);
#endif
}
}
}
LOG_D
(
PHY
,
"[UE %d][RAPROC] Frame %d, subframe %d: Generating PRACH (eNB %d) preamble index %d for UL, TX power %d dBm (PL %d dB), l3msg
\n
"
,
LOG_D
(
PHY
,
"[UE %d][RAPROC] Frame %d, subframe %d: Generating PRACH (eNB %d) preamble index %d for UL, TX power %d dBm (PL %d dB), l3msg
\n
"
,
...
@@ -1817,11 +1801,11 @@ void lte_ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
...
@@ -1817,11 +1801,11 @@ void lte_ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
frame_tx
+=
((
int
)(
phy_vars_ue
->
lte_ue_pbch_vars
[
eNB_id
]
->
decoded_output
[
1
]
&
0xfc
));
frame_tx
+=
((
int
)(
phy_vars_ue
->
lte_ue_pbch_vars
[
eNB_id
]
->
decoded_output
[
1
]
&
0xfc
));
frame_tx
+=
pbch_phase
;
frame_tx
+=
pbch_phase
;
#ifdef OPENAIR2
if
(
phy_vars_ue
->
mac_enabled
==
1
)
{
mac_xface
->
dl_phy_sync_success
(
phy_vars_ue
->
Mod_id
,
frame_rx
,
eNB_id
,
mac_xface
->
dl_phy_sync_success
(
phy_vars_ue
->
Mod_id
,
frame_rx
,
eNB_id
,
phy_vars_ue
->
UE_mode
[
eNB_id
]
==
NOT_SYNCHED
?
1
:
0
);
phy_vars_ue
->
UE_mode
[
eNB_id
]
==
NOT_SYNCHED
?
1
:
0
);
#endif
}
#ifdef EMOS
#ifdef EMOS
//emos_dump_UE.frame_tx = frame_tx;
//emos_dump_UE.frame_tx = frame_tx;
//emos_dump_UE.mimo_mode = phy_vars_ue->lte_ue_pbch_vars[eNB_id]->decoded_output[1];
//emos_dump_UE.mimo_mode = phy_vars_ue->lte_ue_pbch_vars[eNB_id]->decoded_output[1];
...
@@ -1901,16 +1885,15 @@ void lte_ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
...
@@ -1901,16 +1885,15 @@ void lte_ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
phy_vars_ue
->
Mod_id
,
frame_rx
,
slot_rx
);
phy_vars_ue
->
Mod_id
,
frame_rx
,
slot_rx
);
phy_vars_ue
->
lte_ue_pbch_vars
[
eNB_id
]
->
pdu_errors_conseq
++
;
phy_vars_ue
->
lte_ue_pbch_vars
[
eNB_id
]
->
pdu_errors_conseq
++
;
phy_vars_ue
->
lte_ue_pbch_vars
[
eNB_id
]
->
pdu_errors
++
;
phy_vars_ue
->
lte_ue_pbch_vars
[
eNB_id
]
->
pdu_errors
++
;
#ifdef OPENAIR2
if
(
phy_vars_ue
->
mac_enabled
==
1
)
{
mac_xface
->
out_of_sync_ind
(
phy_vars_ue
->
Mod_id
,
frame_rx
,
eNB_id
);
mac_xface
->
out_of_sync_ind
(
phy_vars_ue
->
Mod_id
,
frame_rx
,
eNB_id
);
#else
}
else
{
if
(
phy_vars_ue
->
lte_ue_pbch_vars
[
eNB_id
]
->
pdu_errors_conseq
>=
100
)
{
if
(
phy_vars_ue
->
lte_ue_pbch_vars
[
eNB_id
]
->
pdu_errors_conseq
>=
100
)
{
LOG_E
(
PHY
,
"More that 100 consecutive PBCH errors! Exiting!
\n
"
);
LOG_E
(
PHY
,
"More that 100 consecutive PBCH errors! Exiting!
\n
"
);
mac_xface
->
macphy_exit
(
"More that 100 consecutive PBCH errors!"
);
mac_xface
->
macphy_exit
(
"More that 100 consecutive PBCH errors!"
);
}
}
}
#endif
}
}
if
(
frame_rx
%
100
==
0
)
{
if
(
frame_rx
%
100
==
0
)
{
...
@@ -2411,9 +2394,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
...
@@ -2411,9 +2394,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
int
eNB_id_i
=
1
;
int
eNB_id_i
=
1
;
uint8_t
dual_stream_UE
=
0
;
uint8_t
dual_stream_UE
=
0
;
#endif
#endif
#ifndef OPENAIR2
uint8_t
*
rar
;
uint8_t
*
rar
;
#endif
int
pmch_flag
=
0
;
int
pmch_flag
=
0
;
uint8_t
sync_area
=
255
;
uint8_t
sync_area
=
255
;
int
pmch_mcs
=-
1
;
int
pmch_mcs
=-
1
;
...
@@ -2422,9 +2403,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
...
@@ -2422,9 +2403,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
int
slot_rx
=
phy_vars_ue
->
slot_rx
;
int
slot_rx
=
phy_vars_ue
->
slot_rx
;
int
subframe_rx
=
slot_rx
>>
1
;
int
subframe_rx
=
slot_rx
>>
1
;
int
subframe_prev
=
(
subframe_rx
+
9
)
%
10
;
int
subframe_prev
=
(
subframe_rx
+
9
)
%
10
;
#ifdef OPENAIR2
int
CC_id
=
phy_vars_ue
->
CC_id
;
int
CC_id
=
phy_vars_ue
->
CC_id
;
#endif
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX
,
VCD_FUNCTION_IN
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX
,
VCD_FUNCTION_IN
);
...
@@ -2681,10 +2660,11 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
...
@@ -2681,10 +2660,11 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
harq_processes
[
harq_pid
]
->
mcs
,
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
harq_processes
[
harq_pid
]
->
mcs
,
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
harq_processes
[
harq_pid
]
->
TBS
);
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
harq_processes
[
harq_pid
]
->
TBS
);
// if (abstraction_flag ==0 )
/*
dump_dlsch
(
phy_vars_ue
,
eNB_id
,
subframe_prev
,
harq_pid
);
if (abstraction_flag ==0 )
mac_xface
->
macphy_exit
(
""
);
dump_dlsch(phy_vars_ue,eNB_id,subframe_prev,harq_pid);
//#endif
mac_xface->macphy_exit("");
*/
}
else
{
}
else
{
LOG_D
(
PHY
,
"[UE %d][PDSCH %x/%d] Frame %d subframe %d (slot_rx %d): Received DLSCH (rv %d,mcs %d,TBS %d)
\n
"
,
LOG_D
(
PHY
,
"[UE %d][PDSCH %x/%d] Frame %d subframe %d (slot_rx %d): Received DLSCH (rv %d,mcs %d,TBS %d)
\n
"
,
phy_vars_ue
->
Mod_id
,
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
rnti
,
phy_vars_ue
->
Mod_id
,
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
rnti
,
...
@@ -2703,14 +2683,14 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
...
@@ -2703,14 +2683,14 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
LOG_T
(
PHY
,
"
\n
"
);
LOG_T
(
PHY
,
"
\n
"
);
#endif
#endif
#endif
#endif
#ifdef OPENAIR2
if
(
phy_vars_ue
->
mac_enabled
==
1
)
{
mac_xface
->
ue_send_sdu
(
phy_vars_ue
->
Mod_id
,
mac_xface
->
ue_send_sdu
(
phy_vars_ue
->
Mod_id
,
CC_id
,
CC_id
,
frame_rx
,
frame_rx
,
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
harq_processes
[
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
current_harq_pid
]
->
b
,
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
harq_processes
[
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
current_harq_pid
]
->
b
,
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
harq_processes
[
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
current_harq_pid
]
->
TBS
>>
3
,
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
harq_processes
[
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
current_harq_pid
]
->
TBS
>>
3
,
eNB_id
);
eNB_id
);
#endif
}
phy_vars_ue
->
total_TBS
[
eNB_id
]
=
phy_vars_ue
->
total_TBS
[
eNB_id
]
+
phy_vars_ue
->
total_TBS
[
eNB_id
]
=
phy_vars_ue
->
total_TBS
[
eNB_id
]
+
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
harq_processes
[
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
current_harq_pid
]
->
TBS
;
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
harq_processes
[
phy_vars_ue
->
dlsch_ue
[
eNB_id
][
0
]
->
current_harq_pid
]
->
TBS
;
phy_vars_ue
->
total_received_bits
[
eNB_id
]
=
phy_vars_ue
->
total_TBS
[
eNB_id
]
+
phy_vars_ue
->
total_received_bits
[
eNB_id
]
=
phy_vars_ue
->
total_TBS
[
eNB_id
]
+
...
@@ -2880,24 +2860,20 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
...
@@ -2880,24 +2860,20 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
phy_vars_ue
->
dlsch_ue_SI
[
eNB_id
]
->
harq_processes
[
0
]
->
rb_alloc_even
[
3
]);
phy_vars_ue
->
dlsch_ue_SI
[
eNB_id
]
->
harq_processes
[
0
]
->
rb_alloc_even
[
3
]);
#endif
#endif
#ifdef OPENAIR2
if
(
phy_vars_ue
->
mac_enabled
==
1
)
{
/*
/*
printf("\n\n");
printf("\n\n");
for (i=0;i<phy_vars_ue->dlsch_ue_SI[eNB_id]->harq_processes[0]->TBS>>3;i++)
for (i=0;i<phy_vars_ue->dlsch_ue_SI[eNB_id]->harq_processes[0]->TBS>>3;i++)
printf("%02x ",phy_vars_ue->dlsch_ue_SI[eNB_id]->harq_processes[0]->b[i]);
printf("%02x ",phy_vars_ue->dlsch_ue_SI[eNB_id]->harq_processes[0]->b[i]);
printf("\n");
printf("\n");
*/
*/
mac_xface
->
ue_decode_si
(
phy_vars_ue
->
Mod_id
,
mac_xface
->
ue_decode_si
(
phy_vars_ue
->
Mod_id
,
CC_id
,
CC_id
,
frame_rx
,
frame_rx
,
eNB_id
,
eNB_id
,
phy_vars_ue
->
dlsch_ue_SI
[
eNB_id
]
->
harq_processes
[
0
]
->
b
,
phy_vars_ue
->
dlsch_ue_SI
[
eNB_id
]
->
harq_processes
[
0
]
->
b
,
phy_vars_ue
->
dlsch_ue_SI
[
eNB_id
]
->
harq_processes
[
0
]
->
TBS
>>
3
);
phy_vars_ue
->
dlsch_ue_SI
[
eNB_id
]
->
harq_processes
[
0
]
->
TBS
>>
3
);
/*
}
if ((frame_rx % 160) < 10)
printf("sending SI to L2 in frame %d\n",frame_rx);
*/
#endif
}
}
}
}
...
@@ -3013,8 +2989,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
...
@@ -3013,8 +2989,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
subframe_prev
,
phy_vars_ue
->
UE_mode
[
eNB_id
]);
subframe_prev
,
phy_vars_ue
->
UE_mode
[
eNB_id
]);
#endif
#endif
#ifdef OPENAIR2
if
(
phy_vars_ue
->
mac_enabled
==
1
)
{
if
((
phy_vars_ue
->
UE_mode
[
eNB_id
]
!=
PUSCH
)
&&
(
phy_vars_ue
->
prach_resources
[
eNB_id
]
->
Msg3
!=
NULL
))
{
if
((
phy_vars_ue
->
UE_mode
[
eNB_id
]
!=
PUSCH
)
&&
(
phy_vars_ue
->
prach_resources
[
eNB_id
]
->
Msg3
!=
NULL
))
{
LOG_D
(
PHY
,
"[UE %d][RAPROC] Frame %d subframe %d Invoking MAC for RAR (current preamble %d)
\n
"
,
LOG_D
(
PHY
,
"[UE %d][RAPROC] Frame %d subframe %d Invoking MAC for RAR (current preamble %d)
\n
"
,
phy_vars_ue
->
Mod_id
,
frame_rx
-
((
subframe_prev
==
9
)
?
1
:
0
),
phy_vars_ue
->
Mod_id
,
frame_rx
-
((
subframe_prev
==
9
)
?
1
:
0
),
...
@@ -3071,14 +3046,13 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
...
@@ -3071,14 +3046,13 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
phy_vars_ue
->
prach_resources
[
eNB_id
]
->
ra_PreambleIndex
);
phy_vars_ue
->
prach_resources
[
eNB_id
]
->
ra_PreambleIndex
);
}
}
}
// mode != PUSCH
}
// mode != PUSCH
}
#else //OPENAIR2
else
{
rar
=
phy_vars_ue
->
dlsch_ue_ra
[
eNB_id
]
->
harq_processes
[
0
]
->
b
+
1
;
rar
=
phy_vars_ue
->
dlsch_ue_ra
[
eNB_id
]
->
harq_processes
[
0
]
->
b
+
1
;
timing_advance
=
((((
uint16_t
)(
rar
[
0
]
&
0x7f
))
<<
4
)
+
(
rar
[
1
]
>>
4
));
timing_advance
=
((((
uint16_t
)(
rar
[
0
]
&
0x7f
))
<<
4
)
+
(
rar
[
1
]
>>
4
));
//timing_advance = phy_vars_ue->dlsch_ue_ra[eNB_id]->harq_processes[0]->b[0];
//timing_advance = phy_vars_ue->dlsch_ue_ra[eNB_id]->harq_processes[0]->b[0];
process_timing_advance_rar
(
phy_vars_ue
,
timing_advance
);
process_timing_advance_rar
(
phy_vars_ue
,
timing_advance
);
}
#endif
}
//ret <= MAX_ITERATIONS
}
//ret <= MAX_ITERATIONS
/*
/*
...
@@ -3630,24 +3604,21 @@ void phy_procedures_UE_lte(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstr
...
@@ -3630,24 +3604,21 @@ void phy_procedures_UE_lte(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstr
int
CC_id
=
0
;
int
CC_id
=
0
;
#endif
#endif
int
frame_rx
=
phy_vars_ue
->
frame_rx
;
int
frame_rx
=
phy_vars_ue
->
frame_rx
;
#ifdef OPENAIR2
int
frame_tx
=
phy_vars_ue
->
frame_tx
;
int
frame_tx
=
phy_vars_ue
->
frame_tx
;
#endif
int
slot_rx
=
phy_vars_ue
->
slot_rx
;
int
slot_rx
=
phy_vars_ue
->
slot_rx
;
int
slot_tx
=
phy_vars_ue
->
slot_tx
;
int
slot_tx
=
phy_vars_ue
->
slot_tx
;
int
subframe_tx
=
slot_tx
>>
1
;
int
subframe_tx
=
slot_tx
>>
1
;
int
subframe_rx
=
slot_rx
>>
1
;
int
subframe_rx
=
slot_rx
>>
1
;
#undef DEBUG_PHY_PROC
#undef DEBUG_PHY_PROC
#ifdef OPENAIR2
UE_L2_STATE_t
ret
;
UE_L2_STATE_t
ret
;
#endif
#ifndef OPENAIR2
if
(
phy_vars_ue
->
mac_enabled
==
0
)
{
phy_vars_ue
->
UE_mode
[
eNB_id
]
=
PUSCH
;
phy_vars_ue
->
UE_mode
[
eNB_id
]
=
PUSCH
;
phy_vars_ue
->
prach_resources
[
eNB_id
]
=
&
prach_resources_local
;
phy_vars_ue
->
prach_resources
[
eNB_id
]
=
&
prach_resources_local
;
prach_resources_local
.
ra_RNTI
=
0xbeef
;
prach_resources_local
.
ra_RNTI
=
0xbeef
;
prach_resources_local
.
ra_PreambleIndex
=
0
;
prach_resources_local
.
ra_PreambleIndex
=
0
;
#endif
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_LTE
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_LTE
,
1
);
...
@@ -3846,16 +3817,14 @@ void phy_procedures_UE_lte(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstr
...
@@ -3846,16 +3817,14 @@ void phy_procedures_UE_lte(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstr
phy_procedures_UE_RX
(
phy_vars_ue
,
eNB_id
,
abstraction_flag
,
mode
,
r_type
,
phy_vars_rn
);
phy_procedures_UE_RX
(
phy_vars_ue
,
eNB_id
,
abstraction_flag
,
mode
,
r_type
,
phy_vars_rn
);
}
}
#ifdef OPENAIR2
if
(
phy_vars_ue
->
mac_enabled
==
1
)
{
if
(
slot_rx
%
2
==
0
)
{
if
(
slot_rx
%
2
==
0
)
{
ret
=
mac_xface
->
ue_scheduler
(
phy_vars_ue
->
Mod_id
,
frame_tx
,
ret
=
mac_xface
->
ue_scheduler
(
phy_vars_ue
->
Mod_id
,
subframe_rx
,
frame_tx
,
subframe_select
(
&
phy_vars_ue
->
lte_frame_parms
,
subframe_tx
),
subframe_rx
,
eNB_id
,
subframe_select
(
&
phy_vars_ue
->
lte_frame_parms
,
subframe_tx
),
0
/*FIXME CC_id*/
);
eNB_id
,
0
/*FIXME CC_id*/
);
if
(
ret
==
CONNECTION_LOST
)
{
if
(
ret
==
CONNECTION_LOST
)
{
LOG_E
(
PHY
,
"[UE %d] Frame %d, subframe %d RRC Connection lost, returning to PRACH
\n
"
,
phy_vars_ue
->
Mod_id
,
LOG_E
(
PHY
,
"[UE %d] Frame %d, subframe %d RRC Connection lost, returning to PRACH
\n
"
,
phy_vars_ue
->
Mod_id
,
...
@@ -3874,11 +3843,7 @@ void phy_procedures_UE_lte(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstr
...
@@ -3874,11 +3843,7 @@ void phy_procedures_UE_lte(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstr
phy_vars_ue
->
UE_mode
[
eNB_id
]
=
PRACH
;
phy_vars_ue
->
UE_mode
[
eNB_id
]
=
PRACH
;
}
}
}
}
}
#endif
// if (last_slot == 19)
// phy_vars_ue->frame++;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_LTE
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_LTE
,
0
);
stop_meas
(
&
phy_vars_ue
->
phy_proc
);
stop_meas
(
&
phy_vars_ue
->
phy_proc
);
...
...
openair2/LAYER2/MAC/l1_helpers.c
View file @
29e6833c
...
@@ -47,8 +47,8 @@ int8_t get_Po_NOMINAL_PUSCH(module_id_t module_idP,uint8_t CC_id)
...
@@ -47,8 +47,8 @@ int8_t get_Po_NOMINAL_PUSCH(module_id_t module_idP,uint8_t CC_id)
if
(
CC_id
>
0
)
{
if
(
CC_id
>
0
)
{
LOG_E
(
MAC
,
"Transmission on secondary CCs is not supported yet
\n
"
);
LOG_E
(
MAC
,
"Transmission on secondary CCs is not supported yet
\n
"
);
mac_xface
->
macphy_exit
(
"MAC FATAL CC_id>0"
);
//
mac_xface->macphy_exit("MAC FATAL CC_id>0");
return
0
;
// not reached
return
0
;
}
}
if
(
UE_mac_inst
[
module_idP
].
radioResourceConfigCommon
)
{
if
(
UE_mac_inst
[
module_idP
].
radioResourceConfigCommon
)
{
...
@@ -56,7 +56,8 @@ int8_t get_Po_NOMINAL_PUSCH(module_id_t module_idP,uint8_t CC_id)
...
@@ -56,7 +56,8 @@ int8_t get_Po_NOMINAL_PUSCH(module_id_t module_idP,uint8_t CC_id)
}
}
else
{
else
{
LOG_E
(
MAC
,
"[UE %d] CCid %d FATAL radioResourceConfigCommon is NULL !!!
\n
"
,
module_idP
,
CC_id
);
LOG_E
(
MAC
,
"[UE %d] CCid %d FATAL radioResourceConfigCommon is NULL !!!
\n
"
,
module_idP
,
CC_id
);
mac_xface
->
macphy_exit
(
"FATAL radioResourceConfigCommon is NULL"
);
//mac_xface->macphy_exit("FATAL radioResourceConfigCommon is NULL");
return
0
;
}
}
return
(
-
120
+
(
rach_ConfigCommon
->
powerRampingParameters
.
preambleInitialReceivedTargetPower
<<
1
)
+
return
(
-
120
+
(
rach_ConfigCommon
->
powerRampingParameters
.
preambleInitialReceivedTargetPower
<<
1
)
+
...
...
targets/SIMU/USER/oaisim_functions.c
View file @
29e6833c
...
@@ -136,6 +136,8 @@ int td = 0;
...
@@ -136,6 +136,8 @@ int td = 0;
int
td_avg
=
0
;
int
td_avg
=
0
;
int
sleep_time_us
=
0
;
int
sleep_time_us
=
0
;
int
phy_test
=
0
;
#ifdef OPENAIR2
#ifdef OPENAIR2
// omv related info
// omv related info
//pid_t omv_pid;
//pid_t omv_pid;
...
@@ -206,6 +208,7 @@ void get_simulation_options(int argc, char *argv[])
...
@@ -206,6 +208,7 @@ void get_simulation_options(int argc, char *argv[])
LONG_OPTION_MALLOC_TRACE_ENABLED
,
LONG_OPTION_MALLOC_TRACE_ENABLED
,
LONG_OPTION_CBA_BACKOFF_TIMER
,
LONG_OPTION_CBA_BACKOFF_TIMER
,
LONG_OPTION_PHYTEST
,
};
};
static
struct
option
long_options
[]
=
{
static
struct
option
long_options
[]
=
{
...
@@ -237,11 +240,17 @@ void get_simulation_options(int argc, char *argv[])
...
@@ -237,11 +240,17 @@ void get_simulation_options(int argc, char *argv[])
{
"cba-backoff"
,
required_argument
,
0
,
LONG_OPTION_CBA_BACKOFF_TIMER
},
{
"cba-backoff"
,
required_argument
,
0
,
LONG_OPTION_CBA_BACKOFF_TIMER
},
{
"phy-test"
,
no_argument
,
NULL
,
LONG_OPTION_PHYTEST
},
{
NULL
,
0
,
NULL
,
0
}
{
NULL
,
0
,
NULL
,
0
}
};
};
while
((
option
=
getopt_long
(
argc
,
argv
,
"aA:b:B:c:C:D:d:eE:f:FGg:hHi:IJ:j:k:K:l:L:m:M:n:N:oO:p:P:qQ:rR:s:S:t:T:u:U:vV:w:W:x:X:y:Y:z:Z:"
,
long_options
,
NULL
))
!=
-
1
)
{
while
((
option
=
getopt_long
(
argc
,
argv
,
"aA:b:B:c:C:D:d:eE:f:FGg:hHi:IJ:j:k:K:l:L:m:M:n:N:oO:p:P:qQ:rR:s:S:t:T:u:U:vV:w:W:x:X:y:Y:z:Z:"
,
long_options
,
NULL
))
!=
-
1
)
{
switch
(
option
)
{
switch
(
option
)
{
case
LONG_OPTION_PHYTEST
:
phy_test
=
1
;
break
;
case
LONG_OPTION_ENB_CONF
:
case
LONG_OPTION_ENB_CONF
:
if
(
optarg
)
{
if
(
optarg
)
{
free
(
conf_config_file_name
);
// prevent memory leak if option is used multiple times
free
(
conf_config_file_name
);
// prevent memory leak if option is used multiple times
...
@@ -976,6 +985,14 @@ void init_openair1(void)
...
@@ -976,6 +985,14 @@ void init_openair1(void)
}
}
}
}
for
(
eNB_id
=
0
;
eNB_id
<
NB_eNB_INST
;
eNB_id
++
)
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
if
(
phy_test
==
1
)
PHY_vars_eNB_g
[
eNB_id
][
CC_id
]
->
mac_enabled
=
0
;
else
PHY_vars_eNB_g
[
eNB_id
][
CC_id
]
->
mac_enabled
=
1
;
}
// init_ue_status();
// init_ue_status();
for
(
UE_id
=
0
;
UE_id
<
NB_UE_INST
;
UE_id
++
)
for
(
UE_id
=
0
;
UE_id
<
NB_UE_INST
;
UE_id
++
)
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
...
@@ -992,6 +1009,11 @@ void init_openair1(void)
...
@@ -992,6 +1009,11 @@ void init_openair1(void)
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
UE_mode
[
0
]
=
PRACH
;
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
UE_mode
[
0
]
=
PRACH
;
}
}
if
(
phy_test
==
1
)
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
mac_enabled
=
0
;
else
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
mac_enabled
=
1
;
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
lte_ue_pdcch_vars
[
0
]
->
crnti
=
0x1235
+
UE_id
;
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
lte_ue_pdcch_vars
[
0
]
->
crnti
=
0x1235
+
UE_id
;
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
current_dlsch_cqi
[
0
]
=
10
;
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
current_dlsch_cqi
[
0
]
=
10
;
...
...
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