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
promise
OpenXG-RAN
Commits
86b0f4ce
Commit
86b0f4ce
authored
6 years ago
by
lfarizav
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
This version uses eNB_id=0 for rrc_ue, but it works for multiple RRUs
parent
2e577b91
No related merge requests found
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
124 additions
and
75 deletions
+124
-75
openair1/PHY/LTE_TRANSPORT/if4_tools.c
openair1/PHY/LTE_TRANSPORT/if4_tools.c
+9
-7
openair1/PHY/LTE_TRANSPORT/pbch.c
openair1/PHY/LTE_TRANSPORT/pbch.c
+1
-1
openair1/SCHED/phy_procedures_lte_ue.c
openair1/SCHED/phy_procedures_lte_ue.c
+3
-3
openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c
openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c
+2
-2
openair2/LAYER2/MAC/main.c
openair2/LAYER2/MAC/main.c
+3
-3
openair2/LAYER2/MAC/ra_procedures.c
openair2/LAYER2/MAC/ra_procedures.c
+3
-3
openair2/LAYER2/MAC/ue_procedures.c
openair2/LAYER2/MAC/ue_procedures.c
+12
-12
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c
+4
-4
openair2/RRC/LITE/L2_interface.c
openair2/RRC/LITE/L2_interface.c
+24
-11
openair2/RRC/LITE/rrc_UE.c
openair2/RRC/LITE/rrc_UE.c
+7
-7
openair3/NAS/COMMON/UTIL/socket.c
openair3/NAS/COMMON/UTIL/socket.c
+4
-3
openair3/NAS/UE/API/USER/user_api.c
openair3/NAS/UE/API/USER/user_api.c
+1
-0
openair3/NAS/UE/EMM/SAP/emm_fsm.c
openair3/NAS/UE/EMM/SAP/emm_fsm.c
+3
-1
openair3/NAS/UE/nas_ue_task.c
openair3/NAS/UE/nas_ue_task.c
+7
-1
targets/COMMON/create_tasks.c
targets/COMMON/create_tasks.c
+18
-1
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.lo.conf
...TS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.lo.conf
+3
-3
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.oaisim.2RRUs.conf
...-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.oaisim.2RRUs.conf
+3
-3
targets/RT/USER/lte-ue.c
targets/RT/USER/lte-ue.c
+2
-2
targets/SIMU/USER/channel_sim.c
targets/SIMU/USER/channel_sim.c
+3
-2
targets/SIMU/USER/oaisim.c
targets/SIMU/USER/oaisim.c
+2
-1
targets/SIMU/USER/oaisim_functions.c
targets/SIMU/USER/oaisim_functions.c
+10
-5
No files found.
openair1/PHY/LTE_TRANSPORT/if4_tools.c
View file @
86b0f4ce
...
...
@@ -90,7 +90,7 @@ void send_IF4p5(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t packet_type
for
(
symbol_id
=
0
;
symbol_id
<
nsym
;
symbol_id
++
)
{
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_COMPR_IF
,
1
);
if
(
eNB
->
CC_id
==
1
)
LOG_I
(
PHY
,
"DL_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d
\n
"
,
eNB
->
CC_id
,
frame
,
subframe
,
symbol_id
);
/*if (eNB->CC_id==1) */
LOG_I
(
PHY
,
"DL_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d
\n
"
,
eNB
->
CC_id
,
frame
,
subframe
,
symbol_id
);
for
(
element_id
=
0
;
element_id
<
db_halflength
;
element_id
++
)
{
i
=
(
uint16_t
*
)
&
txdataF
[
0
][
blockoffsetF
+
element_id
];
...
...
@@ -182,6 +182,7 @@ void send_IF4p5(PHY_VARS_eNB *eNB, int frame, int subframe, uint16_t packet_type
}
else
if
(
packet_type
==
IF4p5_PRACH
)
{
// FIX: hard coded prach samples length
LOG_D
(
PHY
,
"IF4p5_PRACH: frame %d, subframe %d
\n
"
,
frame
,
subframe
);
//printf("IF4p5_PRACH_TX: eNB %d, CC %d, frame %d, subframe %d\n",eNB->Mod_id,eNB->CC_id,frame,subframe);
db_fulllength
=
PRACH_HARD_CODED_NUM_SAMPLES
;
if
(
eth
->
flags
==
ETH_RAW_IF4p5_MODE
)
{
...
...
@@ -232,9 +233,9 @@ void recv_IF4p5(PHY_VARS_eNB *eNB, int *frame, int *subframe, uint16_t *packet_t
uint16_t
db_fulllength
,
db_halflength
;
int
slotoffsetF
=
0
,
blockoffsetF
=
0
;
eth_state_t
*
eth
=
(
eth_state_t
*
)
(
eNB
->
ifdevice
.
priv
);
for
(
int
idx
=
0
;
idx
<
10
;
idx
++
)
//
for (int idx=0;idx<10;idx++)
// printf("dumping UL raw rx rvc_if4p5 subframe %d: rxdataF[%d] = (%d,%d)\n", *subframe, idx, ((short*)&rxdataF[0][idx])[0], ((short*)&rxdataF[0][idx])[1]);
if
(
eNB
->
CC_id
==
0
)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4
,
1
);
/*if (eNB->CC_id==0) */
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4
,
1
);
if
(
eNB
->
node_function
==
NGFI_RRU_IF4p5
)
{
db_fulllength
=
(
12
*
fp
->
N_RB_DL
);
...
...
@@ -292,11 +293,11 @@ for (int idx=0;idx<10;idx++)
}
else
if
(
*
packet_type
==
IF4p5_PULFFT
)
{
*
symbol_number
=
((
packet_header
->
frame_status
)
>>
26
)
&
0x000f
;
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_RECV_IF4_SYMBOL
,
*
symbol_number
);
if
(
eNB
->
CC_id
==
0
)
LOG_D
(
PHY
,
"UL_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d
\n
"
,
eNB
->
CC_id
,
*
frame
,
*
subframe
,
*
symbol_number
);
/*if (eNB->CC_id==0) */
LOG_D
(
PHY
,
"UL_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d
\n
"
,
eNB
->
CC_id
,
*
frame
,
*
subframe
,
*
symbol_number
);
slotoffsetF
=
(
*
symbol_number
)
*
(
fp
->
ofdm_symbol_size
);
blockoffsetF
=
slotoffsetF
+
fp
->
ofdm_symbol_size
-
db_halflength
;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_DECOMPR_IF
,
1
);
if
(
eNB
->
CC_id
==
0
)
LOG_D
(
PHY
,
"UL_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d
\n
"
,
eNB
->
CC_id
,
*
frame
,
*
subframe
,
*
symbol_number
);
/*if (eNB->CC_id==0) */
LOG_D
(
PHY
,
"UL_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d
\n
"
,
eNB
->
CC_id
,
*
frame
,
*
subframe
,
*
symbol_number
);
for
(
element_id
=
0
;
element_id
<
db_halflength
;
element_id
++
)
{
i
=
(
uint16_t
*
)
&
rxdataF
[
0
][
blockoffsetF
+
element_id
];
*
i
=
alaw2lin_if4p5
[
(
data_block
[
element_id
]
&
0xff
)
];
...
...
@@ -311,7 +312,8 @@ for (int idx=0;idx<10;idx++)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_DECOMPR_IF
,
0
);
}
else
if
(
*
packet_type
==
IF4p5_PRACH
)
{
LOG_D
(
PHY
,
"PRACH_IF4p5: CC_id %d : frame %d, subframe %d
\n
"
,
eNB
->
CC_id
,
*
frame
,
*
subframe
);
if
(
eNB
->
CC_id
==
1
)
LOG_I
(
PHY
,
"PRACH_IF4p5: CC_id %d : frame %d, subframe %d
\n
"
,
eNB
->
CC_id
,
*
frame
,
*
subframe
);
/*if (eNB->CC_id==1) */
LOG_I
(
PHY
,
"PRACH_IF4p5: CC_id %d : frame %d, subframe %d
\n
"
,
eNB
->
CC_id
,
*
frame
,
*
subframe
);
printf
(
"PRACH_IF4p5_RX: eNB %d, CC_id %d : frame %d, subframe %d
\n
"
,
eNB
->
Mod_id
,
eNB
->
CC_id
,
*
frame
,
*
subframe
);
// FIX: hard coded prach samples length
db_fulllength
=
PRACH_HARD_CODED_NUM_SAMPLES
;
...
...
@@ -331,7 +333,7 @@ for (int idx=0;idx<10;idx++)
AssertFatal
(
1
==
0
,
"recv_IF4p5 - Unknown packet_type %x"
,
*
packet_type
);
}
if
(
eNB
->
CC_id
==
0
)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4
,
0
);
/*if (eNB->CC_id==0) */
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4
,
0
);
return
;
}
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/pbch.c
View file @
86b0f4ce
...
...
@@ -883,7 +883,7 @@ void pbch_unscrambling(LTE_DL_FRAME_PARMS *frame_parms,
// x1 is set in first call to lte_gold_generic
x2
=
frame_parms
->
Nid_cell
;
//this is c_init in 36.211 Sec 6.6.1
// msg("pbch_unscrambling: Nid_cell = %d\n",x2);
//printf("pbch_unscrambling: Nid_cell = %d\n",x2);
for
(
i
=
0
;
i
<
length
;
i
++
)
{
if
(
i
%
32
==
0
)
{
s
=
lte_gold_generic
(
&
x1
,
&
x2
,
reset
);
...
...
This diff is collapsed.
Click to expand it.
openair1/SCHED/phy_procedures_lte_ue.c
View file @
86b0f4ce
...
...
@@ -1402,7 +1402,7 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt
}
void
ue_prach_procedures
(
PHY_VARS_UE
*
ue
,
UE_rxtx_proc_t
*
proc
,
uint8_t
eNB_id
,
uint8_t
abstraction_flag
,
runmode_t
mode
)
{
//printf("ue_prach_procedures: UE %d, eNB_id %d, ue->common_vars.eNb.id %d, mac enabled %d\n",ue->Mod_id,eNB_id,ue->common_vars.eNb_id,ue->mac_enabled==1);=0
printf
(
"ue_prach_procedures: UE %d, eNB_id %d, ue->common_vars.eNb.id %d, mac enabled %d
\n
"
,
ue
->
Mod_id
,
eNB_id
,
ue
->
common_vars
.
eNb_id
,
ue
->
mac_enabled
==
1
);
int
frame_tx
=
proc
->
frame_tx
;
int
subframe_tx
=
proc
->
subframe_tx
;
int
prach_power
;
...
...
@@ -2926,7 +2926,7 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin
for
(
pbch_trials
=
0
;
pbch_trials
<
4
;
pbch_trials
++
)
{
//for (pbch_phase=0;pbch_phase<4;pbch_phase++) {
//
printf("[UE %d] Frame %d, Trying PBCH %d (NidCell %d, eNB_id %d)\n",ue->Mod_id,frame_rx,pbch_phase,ue->frame_parms.Nid_cell,ue->common_vars.eNb_id);
printf
(
"[UE %d] Frame %d, Trying PBCH %d (NidCell %d, eNB_id %d)
\n
"
,
ue
->
Mod_id
,
frame_rx
,
pbch_phase
,
ue
->
frame_parms
.
Nid_cell
,
ue
->
common_vars
.
eNb_id
);
if
(
abstraction_flag
==
0
)
{
pbch_tx_ant
=
rx_pbch
(
&
ue
->
common_vars
,
ue
->
pbch_vars
[
eNB_id
],
...
...
@@ -2997,7 +2997,7 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin
//emos_dump_UE.mimo_mode = ue->pbch_vars[eNB_id]->decoded_output[1];
#endif
if
(
first_run
<
=
ue
->
Mod_id
)
{
if
(
first_run
<
/*=ue->Mod_id*/
NB_UE_INST
)
{
first_run
++
;
proc
->
frame_rx
=
(
proc
->
frame_rx
&
0xFFFFFC00
)
|
(
frame_tx
&
0x000003FF
);
...
...
This diff is collapsed.
Click to expand it.
openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c
View file @
86b0f4ce
...
...
@@ -20,7 +20,7 @@
*/
/*! \file netlink_init.c
* \brief initiate the netlink socket for communication with nas d
ir
ver
* \brief initiate the netlink socket for communication with nas d
ri
ver
* \author Navid Nikaein and Raymomd Knopp
* \date 2011
* \version 1.0
...
...
@@ -85,7 +85,7 @@ int netlink_init(void)
nas_src_addr
.
nl_pid
=
1
;
//getpid(); /* self pid */
nas_src_addr
.
nl_groups
=
0
;
/* not in mcast groups */
ret
=
bind
(
nas_sock_fd
,
(
struct
sockaddr
*
)
&
nas_src_addr
,
sizeof
(
nas_src_addr
));
printf
(
"[NETLINK]bind: fd %d, nas_src_addr %d, sizeof(nas_src_addr) %d
\n
"
,
nas_sock_fd
,
nas_src_addr
,
sizeof
(
nas_src_addr
));
memset
(
&
nas_dest_addr
,
0
,
sizeof
(
nas_dest_addr
));
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/main.c
View file @
86b0f4ce
...
...
@@ -76,13 +76,13 @@ void dl_phy_sync_success(module_id_t module_idP,
#else
int
mme_enabled
=
0
;
#endif
//printf("mme_enabled? %d\n",mme_enabled);
if
(
first_sync
==
1
&&
!
(
mme_enabled
==
1
&&
abstraction_flag
==
0
))
{
layer2_init_UE
(
module_idP
);
openair_rrc_ue_init
(
module_idP
,
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
);
openair_rrc_ue_init
(
module_idP
,
/*eNB_index*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
);
}
else
{
rrc_in_sync_ind
(
module_idP
,
frameP
,
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
);
rrc_in_sync_ind
(
module_idP
,
frameP
,
/*eNB_index*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
);
}
}
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/ra_procedures.c
View file @
86b0f4ce
...
...
@@ -342,7 +342,7 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP,int CC_id,frame_t frameP,
frameP
,
CCCH
,
1
,
&
UE_mac_inst
[
module_idP
].
CCCH_pdu
.
payload
[
sizeof
(
SCH_SUBHEADER_SHORT
)
+
1
],
0
,
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
,
eNB_indexP
/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/
,
0
);
Size16
=
(
uint16_t
)
Size
;
//printf("ue_get_rach:Size16 %d\n",Size16);
...
...
@@ -394,7 +394,7 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP,int CC_id,frame_t frameP,
}
else
if
(
UE_mac_inst
[
module_idP
].
scheduling_info
.
BSR_bytes
[
UE_mac_inst
[
module_idP
].
scheduling_info
.
LCGID
[
DCCH
]]
>
0
)
{
// This is for triggering a transmission on DCCH using PRACH (during handover, or sending SR for example)
dcch_header_len
=
2
+
2
;
/// SHORT Subheader + C-RNTI control element
rlc_status
=
mac_rlc_status_ind
(
module_idP
,
UE_mac_inst
[
module_idP
].
crnti
,
/*eNB_indexP*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
,
frameP
,
subframeP
,
ENB_FLAG_NO
,
MBMS_FLAG_NO
,
rlc_status
=
mac_rlc_status_ind
(
module_idP
,
UE_mac_inst
[
module_idP
].
crnti
,
eNB_indexP
/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/
,
frameP
,
subframeP
,
ENB_FLAG_NO
,
MBMS_FLAG_NO
,
DCCH
,
6
);
...
...
@@ -407,7 +407,7 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP,int CC_id,frame_t frameP,
module_idP
,
frameP
,
rlc_status
.
bytes_in_buffer
,
dcch_header_len
);
sdu_lengths
[
0
]
=
mac_rlc_data_req
(
module_idP
,
UE_mac_inst
[
module_idP
].
crnti
,
/*eNB_indexP*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
,
frameP
,
ENB_FLAG_NO
,
MBMS_FLAG_NO
,
eNB_indexP
/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/
,
frameP
,
ENB_FLAG_NO
,
MBMS_FLAG_NO
,
DCCH
,
6
,
//not used
(
char
*
)
&
ulsch_buff
[
0
]);
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/ue_procedures.c
View file @
86b0f4ce
...
...
@@ -460,7 +460,7 @@ ue_send_sdu(
(
uint8_t
*
)
payload_ptr
,
rx_lengths
[
i
],
ENB_FLAG_NO
,
/*eNB_index*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
,
//changed
eNB_index
/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/
,
//changed
0
);
//printf("1\n");
...
...
@@ -468,7 +468,7 @@ ue_send_sdu(
LOG_D
(
MAC
,
"[UE %d] Frame %d : DLSCH -> DL-DCCH%d, RRC message (eNB %d, %d bytes)
\n
"
,
module_idP
,
frameP
,
rx_lcids
[
i
],
/*eNB_index*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
,
rx_lengths
[
i
]);
mac_rlc_data_ind
(
module_idP
,
UE_mac_inst
[
module_idP
].
crnti
,
/*eNB_index*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
,
//changed
eNB_index
/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/
,
//changed
frameP
,
ENB_FLAG_NO
,
MBMS_FLAG_NO
,
...
...
@@ -490,7 +490,7 @@ ue_send_sdu(
#endif
mac_rlc_data_ind
(
module_idP
,
UE_mac_inst
[
module_idP
].
crnti
,
/*eNB_index*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
,
//changed
eNB_index
/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/
,
//changed
frameP
,
ENB_FLAG_NO
,
MBMS_FLAG_NO
,
...
...
@@ -529,7 +529,7 @@ void ue_decode_si(module_id_t module_idP,int CC_id,frame_t frameP, uint8_t eNB_i
(
uint8_t
*
)
pdu
,
len
,
ENB_FLAG_NO
,
/*eNB_index*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
,
eNB_index
/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/
,
0
);
//printf("2\n");
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_SI
,
VCD_FUNCTION_OUT
);
...
...
@@ -569,7 +569,7 @@ void ue_decode_p(module_id_t module_idP,int CC_id,frame_t frameP, uint8_t eNB_in
(
uint8_t
*
)
pdu
,
len
,
ENB_FLAG_NO
,
/*eNB_index*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
,
eNB_index
/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/
,
0
);
//printf("3\n");
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_PCCH
,
VCD_FUNCTION_OUT
);
...
...
@@ -1429,7 +1429,7 @@ for (lcid=DCCH; (lcid < MAX_NUM_LCID) && (is_all_lcid_processed == FALSE) ; lcid
is_lcid_processed
=
FALSE
;
lcid_buffer_occupancy_old
=
mac_rlc_get_buffer_occupancy_ind
(
module_idP
,
UE_mac_inst
[
module_idP
].
crnti
,
/*eNB_index*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
,
eNB_index
/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/
,
frameP
,
subframe
,
ENB_FLAG_NO
,
...
...
@@ -1465,7 +1465,7 @@ for (lcid=DCCH; (lcid < MAX_NUM_LCID) && (is_all_lcid_processed == FALSE) ; lcid
sdu_lengths
[
num_sdus
]
=
mac_rlc_data_req
(
module_idP
,
UE_mac_inst
[
module_idP
].
crnti
,
/*eNB_index*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
,
eNB_index
/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/
,
frameP
,
ENB_FLAG_NO
,
MBMS_FLAG_NO
,
...
...
@@ -1519,7 +1519,7 @@ for (lcid=DCCH; (lcid < MAX_NUM_LCID) && (is_all_lcid_processed == FALSE) ; lcid
/* Get updated BO after multiplexing this PDU */
lcid_buffer_occupancy_new
=
mac_rlc_get_buffer_occupancy_ind
(
module_idP
,
UE_mac_inst
[
module_idP
].
crnti
,
/*eNB_index*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
,
eNB_index
/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/
,
frameP
,
subframe
,
ENB_FLAG_NO
,
...
...
@@ -1857,7 +1857,7 @@ ue_scheduler(
#endif
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SCHEDULER
,
VCD_FUNCTION_IN
);
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
module_idP
,
ENB_FLAG_NO
,
UE_mac_inst
[
module_idP
].
crnti
,
txFrameP
,
txSubframeP
,
/*eNB_indexP*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
);
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
module_idP
,
ENB_FLAG_NO
,
UE_mac_inst
[
module_idP
].
crnti
,
txFrameP
,
txSubframeP
,
eNB_indexP
/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/
);
#if defined(ENABLE_ITTI)
do
{
...
...
@@ -1904,11 +1904,11 @@ ue_scheduler(
UE_mac_inst
[
module_idP
].
rxSubframe
=
rxSubframeP
;
#ifdef CELLULAR
rrc_rx_tx
(
module_idP
,
txFrameP
,
0
,
/*eNB_indexP*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
);
rrc_rx_tx
(
module_idP
,
txFrameP
,
0
,
eNB_indexP
/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/
);
#else
switch
(
rrc_rx_tx
(
&
ctxt
,
/*eNB_indexP*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
,
eNB_indexP
/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/
,
CC_id
))
{
case
RRC_OK
:
break
;
...
...
@@ -2302,7 +2302,7 @@ boolean_t update_bsr(module_id_t module_idP, frame_t frameP, sub_frame_t subfra
lcgid_buffer_remain
[
lcgid
]
+=
UE_mac_inst
[
module_idP
].
scheduling_info
.
LCID_buffer_remain
[
lcid
];
}
rlc_status
=
mac_rlc_status_ind
(
module_idP
,
UE_mac_inst
[
module_idP
].
crnti
,
/*eNB_index*/
PHY_vars_UE_g
[
module_idP
][
0
]
->
common_vars
.
eNb_id
,
frameP
,
subframeP
,
ENB_FLAG_NO
,
MBMS_FLAG_NO
,
rlc_status
=
mac_rlc_status_ind
(
module_idP
,
UE_mac_inst
[
module_idP
].
crnti
,
eNB_index
/*PHY_vars_UE_g[module_idP][0]->common_vars.eNb_id*/
,
frameP
,
subframeP
,
ENB_FLAG_NO
,
MBMS_FLAG_NO
,
lcid
,
0xFFFF
);
//TBS is not used in RLC at this step, set a special value for debug
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c
View file @
86b0f4ce
...
...
@@ -264,10 +264,10 @@ rlc_am_receive_routing (
rlc_pP
->
stat_rx_control_pdu
+=
1
;
rlc_am_receive_process_control_pdu
(
ctxt_pP
,
rlc_pP
,
tb_p
,
&
first_byte_p
,
&
tb_size_in_bytes
);
// Test if remaining bytes not processed (up to know, highest probability is bug in MAC)
AssertFatal
(
tb_size_in_bytes
==
0
,
"Remaining %d bytes following a control PDU"
,
tb_size_in_bytes
);
//
if (tb_size_in_bytes == 0) printf("Remaining %d bytes following a control PDU",tb_size_in_bytes);
//
AssertFatal( tb_size_in_bytes == 0,
//
"Remaining %d bytes following a control PDU",
//
tb_size_in_bytes);
if
(
tb_size_in_bytes
==
0
)
printf
(
"Remaining %d bytes following a control PDU"
,
tb_size_in_bytes
);
}
LOG_D
(
RLC
,
PROTOCOL_RLC_AM_CTXT_FMT
"[RX ROUTING] VR(R)=%03d VR(MR)=%03d
\n
"
,
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/LITE/L2_interface.c
View file @
86b0f4ce
...
...
@@ -652,7 +652,7 @@ rrc_data_ind(
void
rrc_in_sync_ind
(
module_id_t
Mod_idP
,
frame_t
frameP
,
uint16_t
eNB_index
)
{
//-------------------------------------------------------------------------------------------//
printf
(
"rrc_in_sync_ind:eNB_index %d
\n
"
,
eNB_index
);
//enb_id=ue->common_vars.enb_id
#if defined(ENABLE_ITTI)
{
MessageDef
*
message_p
;
...
...
@@ -671,20 +671,27 @@ printf("rrc_in_sync_ind:eNB_index %d\n",eNB_index);//enb_id=ue->common_vars.enb_
}
#endif
printf
(
"rrc_in_sync_ind:eNB_index %d
\n
"
,
eNB_index
);
//enb_id=ue->common_vars.enb_id
printf
(
"[UE %d] Frame %d: IN SYNC FROM eNB %d (T310 active %d : T310 %d, N310 %d, N311 %d)
\n
"
,
Mod_idP
,
frameP
,
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
,
UE_rrc_inst
[
Mod_idP
].
Info
[
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
].
T310_active
,
UE_rrc_inst
[
Mod_idP
].
Info
[
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
].
T310_cnt
,
UE_rrc_inst
[
Mod_idP
].
Info
[
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
].
N310_cnt
,
UE_rrc_inst
[
Mod_idP
].
Info
[
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
].
N311_cnt
);
}
//-------------------------------------------------------------------------------------------//
void
rrc_out_of_sync_ind
(
module_id_t
Mod_idP
,
frame_t
frameP
,
uint16_t
eNB_index
)
{
//-------------------------------------------------------------------------------------------//
printf
(
"rrc_out_of_sync_ind:eNB_index %d
\n
"
,
/*eNB_index*/
PHY_vars_UE_g
[
Mod_idP
][
0
]
->
common_vars
.
eNb_id
);
if
(
UE_rrc_inst
[
Mod_idP
].
Info
[
/*eNB_index*/
PHY_vars_UE_g
[
Mod_idP
][
0
]
->
common_vars
.
eNb_id
].
N310_cnt
>
10
)
LOG_I
(
RRC
,
"[UE %d] Frame %d: OUT OF SYNC FROM eNB %d (T3
1
0 active %d : T310 %d, N310 %d, N311 %d)
\n
"
,
Mod_idP
,
frameP
,
/*eNB_index*/
PHY_vars_UE_g
[
Mod_idP
][
0
]
->
common_vars
.
eNb_id
,
UE_rrc_inst
[
Mod_idP
].
Info
[
/*eNB_index*/
PHY_vars_UE_g
[
Mod_idP
][
0
]
->
common_vars
.
eNb_id
].
T300_active
,
UE_rrc_inst
[
Mod_idP
].
Info
[
/*eNB_index*/
PHY_vars_UE_g
[
Mod_idP
][
0
]
->
common_vars
.
eNb_id
].
T310_cnt
,
UE_rrc_inst
[
Mod_idP
].
Info
[
/*eNB_index*/
PHY_vars_UE_g
[
Mod_idP
][
0
]
->
common_vars
.
eNb_id
].
N310_cnt
,
UE_rrc_inst
[
Mod_idP
].
Info
[
/*eNB_index*/
PHY_vars_UE_g
[
Mod_idP
][
0
]
->
common_vars
.
eNb_id
].
N311_cnt
);
printf
(
"rrc_out_of_sync_ind:eNB_index %d
\n
"
,
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
);
if
(
UE_rrc_inst
[
Mod_idP
].
Info
[
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
].
N310_cnt
>
10
)
LOG_I
(
RRC
,
"[UE %d] Frame %d: OUT OF SYNC FROM eNB %d (T3
0
0 active %d : T310 %d, N310 %d, N311 %d)
\n
"
,
Mod_idP
,
frameP
,
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
,
UE_rrc_inst
[
Mod_idP
].
Info
[
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
].
T300_active
,
UE_rrc_inst
[
Mod_idP
].
Info
[
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
].
T310_cnt
,
UE_rrc_inst
[
Mod_idP
].
Info
[
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
].
N310_cnt
,
UE_rrc_inst
[
Mod_idP
].
Info
[
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
].
N311_cnt
);
#if defined(ENABLE_ITTI)
{
...
...
@@ -692,13 +699,19 @@ void rrc_out_of_sync_ind(module_id_t Mod_idP, frame_t frameP, uint16_t eNB_index
message_p
=
itti_alloc_new_message
(
TASK_MAC_UE
,
RRC_MAC_OUT_OF_SYNC_IND
);
RRC_MAC_OUT_OF_SYNC_IND
(
message_p
).
frame
=
frameP
;
RRC_MAC_OUT_OF_SYNC_IND
(
message_p
).
enb_index
=
/*eNB_index*/
PHY_vars_UE_g
[
Mod_idP
][
0
]
->
common_vars
.
eNb_id
;
RRC_MAC_OUT_OF_SYNC_IND
(
message_p
).
enb_index
=
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
;
itti_send_msg_to_task
(
TASK_RRC_UE
,
UE_MODULE_ID_TO_INSTANCE
(
Mod_idP
),
message_p
);
}
#else
UE_rrc_inst
[
Mod_idP
].
Info
[
/*eNB_index*/
PHY_vars_UE_g
[
Mod_idP
][
0
]
->
common_vars
.
eNb_id
].
N310_cnt
++
;
UE_rrc_inst
[
Mod_idP
].
Info
[
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
].
N310_cnt
++
;
#endif
printf
(
"[UE %d] Frame %d: OUT OF SYNC FROM eNB %d (T300 active %d : T310 %d, N310 %d, N311 %d)
\n
"
,
Mod_idP
,
frameP
,
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
,
UE_rrc_inst
[
Mod_idP
].
Info
[
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
].
T300_active
,
UE_rrc_inst
[
Mod_idP
].
Info
[
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
].
T310_cnt
,
UE_rrc_inst
[
Mod_idP
].
Info
[
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
].
N310_cnt
,
UE_rrc_inst
[
Mod_idP
].
Info
[
eNB_index
/*PHY_vars_UE_g[Mod_idP][0]->common_vars.eNb_id*/
].
N311_cnt
);
}
//------------------------------------------------------------------------------
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/LITE/rrc_UE.c
View file @
86b0f4ce
...
...
@@ -4494,7 +4494,7 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR
if
(
rrc_get_state
(
ue_mod_id
)
==
RRC_STATE_INACTIVE
)
{
// have a look at MAC/main.c void dl_phy_sync_success(...)
//printf("openair_rrc_ue_init: UE %d\n",ue_mod_id);
openair_rrc_ue_init
(
ue_mod_id
,
PHY_vars_UE_g
[
ue_mod_id
][
0
]
->
common_vars
.
eNb_id
);
openair_rrc_ue_init
(
ue_mod_id
,
0
/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/
);
}
/* Save cell selection criterion */
...
...
@@ -4576,14 +4576,14 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR
NAS_CONN_ESTABLI_REQ
(
msg_p
).
plmnID
.
MNCdigit3
);
//PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, 0, 0);
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
ue_mod_id
,
ENB_FLAG_NO
,
NOT_A_RNTI
,
0
,
0
,
PHY_vars_UE_g
[
ue_mod_id
][
0
]
->
common_vars
.
eNb_id
);
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
ue_mod_id
,
ENB_FLAG_NO
,
NOT_A_RNTI
,
0
,
0
,
0
/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/
);
UE_rrc_inst
[
ue_mod_id
].
initialNasMsg
=
NAS_CONN_ESTABLI_REQ
(
msg_p
).
initialNasMsg
;
switch
(
rrc_get_state
(
ue_mod_id
))
{
case
RRC_STATE_IDLE
:
{
if
(
rrc_get_sub_state
(
ue_mod_id
)
==
RRC_SUB_STATE_IDLE_SIB_COMPLETE
)
{
rrc_ue_generate_RRCConnectionRequest
(
&
ctxt
,
PHY_vars_UE_g
[
ue_mod_id
][
0
]
->
common_vars
.
eNb_id
);
rrc_ue_generate_RRCConnectionRequest
(
&
ctxt
,
0
/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/
);
LOG_D
(
RRC
,
"not sending connection request
\n
"
);
rrc_set_sub_state
(
ue_mod_id
,
RRC_SUB_STATE_IDLE_CONNECTING
);
...
...
@@ -4615,11 +4615,11 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR
length
=
do_ULInformationTransfer
(
&
buffer
,
NAS_UPLINK_DATA_REQ
(
msg_p
).
nasMsg
.
length
,
NAS_UPLINK_DATA_REQ
(
msg_p
).
nasMsg
.
data
);
/* Transfer data to PDCP */
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
ue_mod_id
,
ENB_FLAG_NO
,
UE_rrc_inst
[
ue_mod_id
].
Info
[
PHY_vars_UE_g
[
ue_mod_id
][
0
]
->
common_vars
.
eNb_id
].
rnti
,
0
,
0
,
PHY_vars_UE_g
[
ue_mod_id
][
0
]
->
common_vars
.
eNb_id
);
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
ue_mod_id
,
ENB_FLAG_NO
,
UE_rrc_inst
[
ue_mod_id
].
Info
[
0
/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/
].
rnti
,
0
,
0
,
0
/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/
);
// check if SRB2 is created, if yes request data_req on DCCH1 (SRB2)
//printf("check if SRB2 is created, if yes request data_req on DCCH1: eNB_index %d, rnti %d, UE_rrc_inst[ue_mod_id].SRB2_config[PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id] == NULL %d\n",ctxt.eNB_index, ctxt.rnti,UE_rrc_inst[ue_mod_id].SRB2_config[PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id] == NULL);
if
(
UE_rrc_inst
[
ue_mod_id
].
SRB2_config
[
PHY_vars_UE_g
[
ue_mod_id
][
0
]
->
common_vars
.
eNb_id
]
==
NULL
)
if
(
UE_rrc_inst
[
ue_mod_id
].
SRB2_config
[
0
/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/
]
==
NULL
)
{
rrc_data_req
(
&
ctxt
,
DCCH
,
...
...
@@ -4771,8 +4771,8 @@ NAS_KENB_REFRESH_REQ,NAS_CELL_SELECTION_REQ,RRC_STATE_INACTIVE,RRC_STATE_IDLE,RR
switch
(
rrc_get_state
(
ue_mod_id
))
{
case
RRC_STATE_IDLE
:
{
if
(
rrc_get_sub_state
(
ue_mod_id
)
==
RRC_SUB_STATE_IDLE_SIB_COMPLETE
)
{
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
ue_mod_id
,
ENB_FLAG_NO
,
UE_rrc_inst
[
ue_mod_id
].
Info
[
PHY_vars_UE_g
[
ue_mod_id
][
0
]
->
common_vars
.
eNb_id
].
rnti
,
0
,
0
,
PHY_vars_UE_g
[
ue_mod_id
][
0
]
->
common_vars
.
eNb_id
);
rrc_ue_generate_RRCConnectionRequest
(
&
ctxt
,
PHY_vars_UE_g
[
ue_mod_id
][
0
]
->
common_vars
.
eNb_id
);
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
ue_mod_id
,
ENB_FLAG_NO
,
UE_rrc_inst
[
ue_mod_id
].
Info
[
PHY_vars_UE_g
[
0
/*ue_mod_id][0]->common_vars.eNb_id*/
].
rnti
,
0
,
0
,
0
/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/
);
rrc_ue_generate_RRCConnectionRequest
(
&
ctxt
,
0
/*PHY_vars_UE_g[ue_mod_id][0]->common_vars.eNb_id*/
);
LOG_D
(
RRC
,
"not sending connection request
\n
"
);
rrc_set_sub_state
(
ue_mod_id
,
RRC_SUB_STATE_IDLE_CONNECTING
);
}
...
...
This diff is collapsed.
Click to expand it.
openair3/NAS/COMMON/UTIL/socket.c
View file @
86b0f4ce
...
...
@@ -46,6 +46,7 @@
#include <sys/types.h>
#include <sys/socket.h> // socket, setsockopt, connect, bind, recv, send
#include <netdb.h> // getaddrinfo
#include <stdio.h>
/****************************************************************************/
/**************** E X T E R N A L D E F I N I T I O N S ****************/
/****************************************************************************/
...
...
@@ -108,7 +109,7 @@ void* socket_udp_open(int type, const char* host, const char* port)
struct
addrinfo
socket_info
;
/* endpoint information */
struct
addrinfo
*
socket_addr
,
*
sp
;
/* endpoint address */
int
sfd
;
/* socket file descriptor */
printf
(
"socket_udp_open: port %s, host %s, type %d
\n
"
,
port
,
host
,
type
);
/*
* Parameters sanity check
* -----------------------
...
...
@@ -171,7 +172,7 @@ void* socket_udp_open(int type, const char* host, const char* port)
for
(
sp
=
socket_addr
;
sp
!=
NULL
;
sp
=
sp
->
ai_next
)
{
/* Create the socket endpoint for communication */
sfd
=
socket
(
sp
->
ai_family
,
sp
->
ai_socktype
,
sp
->
ai_protocol
);
printf
(
"sfd0 %d, sfp %x
\n
"
,
sfd
,
socket_addr
);
if
(
sfd
<
0
)
{
continue
;
}
...
...
@@ -222,7 +223,7 @@ void* socket_udp_open(int type, const char* host, const char* port)
sid
->
port
=
atoi
(
port
);
sid
->
fd
=
sfd
;
}
printf
(
"sfd %d
\n
"
,
sfd
);
return
sid
;
}
...
...
This diff is collapsed.
Click to expand it.
openair3/NAS/UE/API/USER/user_api.c
View file @
86b0f4ce
...
...
@@ -132,6 +132,7 @@ int user_api_initialize(user_api_id_t *user_api_id, const char* host, const char
/* Initialize communication channel */
user_api_id
->
endpoint
=
user_api_id
->
open
(
SOCKET_SERVER
,
host
,
port
);
printf
(
"open: SOCKET_SERVER %d, host %s, port %s
\n
"
,
SOCKET_SERVER
,
host
,
port
);
if
(
user_api_id
->
endpoint
==
NULL
)
{
const
char
*
error
=
(
(
errno
<
0
)
?
...
...
This diff is collapsed.
Click to expand it.
openair3/NAS/UE/EMM/SAP/emm_fsm.c
View file @
86b0f4ce
...
...
@@ -291,7 +291,9 @@ int emm_fsm_process(nas_user_t *user, const emm_reg_t *evt)
LOG_TRACE
(
INFO
,
"EMM-FSM - Received event %s (%d) in state %s"
,
_emm_fsm_event_str
[
primitive
-
_EMMREG_START
-
1
],
primitive
,
_emm_fsm_status_str
[
status
]);
printf
(
"EMM-FSM - Received event %s (%d) in state %s"
,
_emm_fsm_event_str
[
primitive
-
_EMMREG_START
-
1
],
primitive
,
_emm_fsm_status_str
[
status
]);
/* Execute the EMM state machine */
rc
=
(
_emm_fsm_handlers
[
status
])(
user
,
evt
);
...
...
This diff is collapsed.
Click to expand it.
openair3/NAS/UE/nas_ue_task.c
View file @
86b0f4ce
...
...
@@ -50,11 +50,12 @@ static int nas_ue_process_events(nas_user_container_t *users, struct epoll_event
int
exit_loop
=
FALSE
;
LOG_I
(
NAS
,
"[UE] Received %d events
\n
"
,
nb_events
);
printf
(
"[UE] Received %d events
\n
"
,
nb_events
);
for
(
event
=
0
;
event
<
nb_events
;
event
++
)
{
if
(
events
[
event
].
events
!=
0
)
{
/* If the event has not been yet been processed (not an itti message) */
nas_user_t
*
user
=
find_user_from_fd
(
users
,
events
[
event
].
data
.
fd
);
//printf("[UE] ueid %d\n", user->ueid);
if
(
user
!=
NULL
)
{
exit_loop
=
nas_user_receive_and_process
(
user
,
NULL
);
}
else
{
...
...
@@ -93,11 +94,15 @@ void *nas_ue_task(void *args_p)
instance_t
instance
;
unsigned
int
Mod_id
;
int
result
;
//NB_eNB_INST=NB_eNB_INST-1;
nas_user_container_t
*
users
=
args_p
;
itti_mark_task_ready
(
TASK_NAS_UE
);
MSC_START_USE
();
/* Initialize UE NAS (EURECOM-NAS) */
printf
(
"nas_ue_task: # UEs = %d,NB_eNB_INST %d, NB_UE_INST %d
\n
"
,
users
->
count
,
NB_eNB_INST
,
NB_UE_INST
);
for
(
int
i
=
0
;
i
<
users
->
count
;
i
++
)
{
nas_user_t
*
user
=
&
users
->
item
[
i
];
...
...
@@ -302,6 +307,7 @@ char *make_port_str_from_ueid(const char *base_port_str, int ueid) {
}
port
=
base_port
+
ueid
;
//printf("make_port_str_from_ueid: port %d\n",port);
if
(
port
<
1
||
port
>
65535
)
{
return
NULL
;
}
...
...
This diff is collapsed.
Click to expand it.
targets/COMMON/create_tasks.c
View file @
86b0f4ce
...
...
@@ -47,6 +47,9 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb)
LOG_E
(
PDCP
,
"Create task for L2L1 failed
\n
"
);
return
-
1
;
}
else
{
printf
(
"Create task for L2L1 succeeded
\n
"
);
}
if
(
enb_nb
>
0
)
{
/* Last task to create, others task must be ready before its start */
...
...
@@ -54,6 +57,9 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb)
LOG_E
(
ENB_APP
,
"Create task for eNB APP failed
\n
"
);
return
-
1
;
}
else
{
printf
(
"Create task for eNB APP succeeded
\n
"
);
}
}
...
...
@@ -62,25 +68,35 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb)
# if defined(ENABLE_USE_MME)
{
if
(
enb_nb
>
0
)
{
printf
(
"ENABLE_USE_MME
\n
"
);
if
(
itti_create_task
(
TASK_SCTP
,
sctp_eNB_task
,
NULL
)
<
0
)
{
LOG_E
(
SCTP
,
"Create task for SCTP failed
\n
"
);
return
-
1
;
}
else
printf
(
"Create task for SCTP succeeded
\n
"
);
if
(
itti_create_task
(
TASK_S1AP
,
s1ap_eNB_task
,
NULL
)
<
0
)
{
LOG_E
(
S1AP
,
"Create task for S1AP failed
\n
"
);
return
-
1
;
}
else
printf
(
"Create task for S1AP succeeded
\n
"
);
if
(
itti_create_task
(
TASK_UDP
,
udp_eNB_task
,
NULL
)
<
0
)
{
LOG_E
(
UDP_
,
"Create task for UDP failed
\n
"
);
return
-
1
;
}
else
printf
(
"Create task for UDP succeeded
\n
"
);
if
(
itti_create_task
(
TASK_GTPV1_U
,
&
gtpv1u_eNB_task
,
NULL
)
<
0
)
{
LOG_E
(
GTPU
,
"Create task for GTPV1U failed
\n
"
);
return
-
1
;
}
else
printf
(
"Create task for GTPV1U succeeded
\n
"
);
}
# if defined(NAS_BUILT_IN_UE)
...
...
@@ -92,6 +108,8 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb)
LOG_E
(
NAS
,
"Create task for NAS UE failed
\n
"
);
return
-
1
;
}
else
printf
(
"Create task for NAS UE succeeded:ue_nb %d
\n
"
,
ue_nb
);
}
# endif
}
...
...
@@ -104,7 +122,6 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb)
}
# if ENABLE_RAL
if
(
itti_create_task
(
TASK_RAL_ENB
,
eRAL_task
,
NULL
)
<
0
)
{
LOG_E
(
RAL_ENB
,
"Create task for RAL eNB failed
\n
"
);
return
-
1
;
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.lo.conf
View file @
86b0f4ce
...
...
@@ -6,7 +6,7 @@ eNBs =
(
{
//////////
Identification
parameters
:
eNB_ID
=
0
xe0
0
;
eNB_ID
=
0
xe0
1
;
cell_type
=
"CELL_MACRO_ENB"
;
...
...
@@ -33,9 +33,9 @@ eNBs =
eutra_band
=
7
;
downlink_frequency
=
2685000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
Nid_cell
=
1
;
N_RB_DL
=
25
;
Nid_cell_mbsfn
=
0
;
Nid_cell_mbsfn
=
1
;
nb_antenna_ports
=
1
;
nb_antennas_tx
=
1
;
nb_antennas_rx
=
1
;
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.oaisim.2RRUs.conf
View file @
86b0f4ce
Active_eNBs
= (
"eNB_Eurecom_LTEBox"
,
"eNB_Eurecom_LTEBox
1
"
);
Active_eNBs
= (
"eNB_Eurecom_LTEBox"
,
"eNB_Eurecom_LTEBox"
);
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity
=
"none"
;
...
...
@@ -194,11 +194,11 @@ eNBs =
,
{
//////////
Identification
parameters
:
eNB_ID
=
0
xe0
1
;
eNB_ID
=
0
xe0
0
;
cell_type
=
"CELL_MACRO_ENB"
;
eNB_name
=
"eNB_Eurecom_LTEBox
1
"
;
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
...
...
This diff is collapsed.
Click to expand it.
targets/RT/USER/lte-ue.c
View file @
86b0f4ce
...
...
@@ -588,9 +588,9 @@ static void *UE_thread_synch_freq(void *arg) {
case
pbch
:
#if DISABLE_LOG_X
printf
(
"[UE thread Synch] Running Initial Synch (mode %d)
\n
"
,
UE
->
mode
);
printf
(
"[UE thread Synch] Running Initial Synch
in the Frequency domain
(mode %d)
\n
"
,
UE
->
mode
);
#else
LOG_I
(
PHY
,
"[UE thread Synch] Running Initial Synch (mode %d)
\n
"
,
UE
->
mode
);
LOG_I
(
PHY
,
"[UE thread Synch] Running Initial Synch
in the Frequency domain
(mode %d)
\n
"
,
UE
->
mode
);
#endif
//Pushed N_RB_DL, PHICH_CONFIG, FRAME_NUMBER
if
(
initial_sync_freq
(
UE
,
UE
->
mode
)
==
0
)
{
...
...
This diff is collapsed.
Click to expand it.
targets/SIMU/USER/channel_sim.c
View file @
86b0f4ce
...
...
@@ -374,6 +374,7 @@ void do_DL_sig(channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX][MAX_N
frame_parms
->
samples_per_tti
,
12
);
stop_meas
(
&
eNB2UE
[
eNB_id
][
UE_id
][
CC_id
]
->
DL_adc
);
//write_output("chsim_rxsig_subframe.m","chsm_rxsF", PHY_vars_UE_g[UE_id][CC_id]->common_vars.rxdata[0],10*frame_parms->samples_per_tti,1,16);
//for (int idx=0;idx<10;idx++) printf("dumping DL raw subframe %d, eNB_id %d: rxdata[%d] = (%d,%d)\n", subframe,eNB_id, idx, ((short*)&rxdata[0][sf_offset+idx])[0], ((short*)&rxdata[0][sf_offset+idx])[1]);
#ifdef DEBUG_SIM
rx_pwr2
=
signal_energy
(
rxdata
[
0
]
+
sf_offset
,
frame_parms
->
ofdm_symbol_size
)
/
(
12
.
0
*
frame_parms
->
N_RB_DL
);
...
...
@@ -752,10 +753,10 @@ void do_DL_sig_freq(channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX][
//for (int idx=0;idx<10;idx++) printf("dumping DL raw subframe %d,UE %d, eNB_id %d: rxdataF0[%d] = (%d,%d)\n", subframe,UE_id,eNB_id, idx, ((short*)&rxdataF[0][sf_offset+idx])[0], ((short*)&rxdataF[0][sf_offset+idx])[1]);
//print_meas (&eNB2UE[eNB_id][UE_id][CC_id]->DL_adc,"[DL][adc]", &eNB2UE[eNB_id][UE_id][CC_id]->DL_adc, &eNB2UE[eNB_id][UE_id][CC_id]->DL_adc);
//for (int idx=0;idx<10;idx++) printf("dumping DL raw rx subframe %d: rxdataF[%d] = (%d,%d)=====>%s,txdataF[%d] = (%d,%d), r_re_im_p_f(%e,%e)\n", subframe, idx, ((short*)&rxdataF[0][sf_offset+idx])[0], ((short*)&rxdataF[0][sf_offset+idx])[1],(((((r_re_p_f[0][idx]<0)&&(((short*)&rxdataF[0][sf_offset+idx])[0]<0))||((r_re_p_f[0][idx]>=0)&&(((short*)&rxdataF[0][sf_offset+idx])[0]>=0))))&&(((r_im_p_f[0][idx]<0)&&(((short*)&rxdataF[0][sf_offset+idx])[1]<0))||((r_im_p_f[0][idx]>=0)&&(((short*)&rxdataF[0][sf_offset+idx])[1]>=0))))?"OK":"ERROR",idx,((short*)&txdataF[0][sf_offset+idx])[0],((short*)&txdataF[0][sf_offset+idx])[1],r_re_p_f[0][idx],r_im_p_f[0][idx]);
/*if (
UE_id
==0)
/*if (
(subframe&0x1)
==0)
write_output("chsim0_rxsigF_subframe0.m","chsm0_rxsF0", PHY_vars_UE_g[UE_id][CC_id]->common_vars.common_vars_rx_data_per_thread[0].rxdataF[0],10*frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,1,16);
else
write_output("chsim1_rxsigF_subframe0.m","chsm1_rxsF0", PHY_vars_UE_g[UE_id][CC_id]->common_vars.common_vars_rx_data_per_thread[
0
].rxdataF[0],10*frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,1,16);*/
write_output("chsim1_rxsigF_subframe0.m","chsm1_rxsF0", PHY_vars_UE_g[UE_id][CC_id]->common_vars.common_vars_rx_data_per_thread[
1
].rxdataF[0],10*frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,1,16);*/
//write_output("chsim_rxsigF_subframe1.m","chsm_rxsF1", PHY_vars_UE_g[UE_id][CC_id]->common_vars.common_vars_rx_data_per_thread[1].rxdataF[0],10*frame_parms->ofdm_symbol_size*frame_parms->symbols_per_tti,1,16);
#ifdef DEBUG_SIM
...
...
This diff is collapsed.
Click to expand it.
targets/SIMU/USER/oaisim.c
View file @
86b0f4ce
...
...
@@ -1331,12 +1331,13 @@ main (int argc, char **argv)
exit
(
-
1
);
// need a softer mode
}
else
{
//NB_eNB_INST=1;
if
(
create_tasks
(
0
,
oai_emulation
.
info
.
nb_ue_local
)
<
0
)
exit
(
-
1
);
// need a softer mode
//NB_eNB_INST=2;
}
#endif
// wait for all threads to startup
sleep
(
3
);
printf
(
"Sending sync to all threads
\n
"
);
...
...
This diff is collapsed.
Click to expand it.
targets/SIMU/USER/oaisim_functions.c
View file @
86b0f4ce
...
...
@@ -848,6 +848,7 @@ void get_simulation_options(int argc, char *argv[])
}
free
(
conf_config_file_name
);
conf_config_file_name
=
0
;
//NB_eNB_INST=NB_eNB_INST-1;
}
void
check_and_adjust_params
(
void
)
...
...
@@ -1046,7 +1047,7 @@ int UE_trx_set_gains(openair0_device *device, openair0_config_t *openair0_cfg) {
extern
pthread_mutex_t
subframe_mutex
;
extern
int
subframe_eNB_mask
,
subframe_UE_mask
;
static
int
first_run
=
0
;
//
static int first_run=0;
//static int count=0;
//static int sum=0;
int
eNB_trx_read
(
openair0_device
*
device
,
openair0_timestamp
*
ptimestamp
,
void
**
buff
,
int
nsamps
,
int
cc
)
...
...
@@ -1070,6 +1071,7 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void *
int
CC_id
=
device
->
CC_id
;
int
UE_id
=
0
;
//printf("eNB_trx_read: eNB %d, Type %s\n",eNB_id,(PHY_vars_eNB_g[eNB_id][CC_id]->frame_parms.frame_type==FDD)?"FDD":"TDD");
int
subframe
;
int
read_samples
,
max_samples
;
openair0_timestamp
last
=
last_eNB_rx_timestamp
[
eNB_id
][
CC_id
];
...
...
@@ -1136,7 +1138,7 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void *
{
//clock_t start=clock();
//printf("subframe UL PRACH: %d\n",subframe);
printf
(
"prach is generated for UE %d, eNB %d
\n
"
,
UE_id
,
eNB_id
);
printf
(
"prach is generated for UE %d, eNB %d
, subframe %d
\n
"
,
UE_id
,
eNB_id
,
subframe
);
start_meas
(
&
UE2eNB
[
UE_id
][
eNB_id
][
CC_id
]
->
UL_PRACH_channel_freq
);
do_UL_sig_freq_prach
(
UE2eNB
,
enb_data
,
...
...
@@ -1158,6 +1160,7 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void *
}
start_meas
(
&
UE2eNB
[
0
][
eNB_id
][
CC_id
]
->
UL_channel_freq
);
//clock_t start=clock();
do_UL_sig_freq
(
UE2eNB
,
enb_data
,
ue_data
,
...
...
@@ -1204,6 +1207,8 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **
int
subframe
;
//int frame=0;
int
read_samples
,
max_samples
;
//printf("UE_trx_read: UE %d, Type %s\n",UE_id,(PHY_vars_UE_g[UE_id][CC_id]->frame_parms.frame_type==FDD)?"FDD":"TDD");
openair0_timestamp
last
=
last_UE_rx_timestamp
[
UE_id
][
CC_id
];
*
ptimestamp
=
last_UE_rx_timestamp
[
UE_id
][
CC_id
];
...
...
@@ -1266,7 +1271,7 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **
{
start_meas
(
&
eNB2UE
[
0
][
UE_id
][
CC_id
]
->
DL_channel_freq
);
//clock_t start=clock();
do_DL_sig_freq
(
eNB2UE
,
do_DL_sig_freq
(
eNB2UE
,
enb_data
,
ue_data
,
subframe
,
...
...
@@ -1452,8 +1457,8 @@ void init_openair1(void)
{
module_id_t
UE_id
;
uint8_t
eNB_id
=
0
;
uint8_t
RN_id
=
0
;
uint8_t
CC_id
;
//
uint8_t RN_id = 0;
uint8_t
CC_id
=
0
;
#if ENABLE_RAL
int
list_index
;
#endif
...
...
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