Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
常顺宇
OpenXG-RAN
Commits
568af888
Commit
568af888
authored
May 17, 2021
by
hardy
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/fix-compile' into integration_2021_wk20_a
parents
a07e3959
b5bbfdad
Changes
24
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
137 additions
and
196 deletions
+137
-196
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+46
-35
cmake_targets/build_oai
cmake_targets/build_oai
+1
-0
cmake_targets/tools/make_asn1c_includes.sh
cmake_targets/tools/make_asn1c_includes.sh
+11
-5
common/ran_context.h
common/ran_context.h
+1
-1
common/utils/telnetsrv/telnetsrv.h
common/utils/telnetsrv/telnetsrv.h
+1
-0
executables/nr-ru.c
executables/nr-ru.c
+3
-2
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.c
+1
-1
executables/nr-uesoftmodem.h
executables/nr-uesoftmodem.h
+0
-3
openair1/PHY/TOOLS/lte_phy_scope.h
openair1/PHY/TOOLS/lte_phy_scope.h
+1
-0
openair1/PHY/TOOLS/nr_phy_scope.c
openair1/PHY/TOOLS/nr_phy_scope.c
+1
-1
openair2/COMMON/mac_rrc_primitives.h
openair2/COMMON/mac_rrc_primitives.h
+3
-3
openair2/COMMON/tasks_def.h
openair2/COMMON/tasks_def.h
+0
-89
openair2/ENB_APP/flexran_agent_ran_api.c
openair2/ENB_APP/flexran_agent_ran_api.c
+1
-1
openair2/F1AP/f1ap_du_rrc_message_transfer.c
openair2/F1AP/f1ap_du_rrc_message_transfer.c
+1
-1
openair2/GNB_APP/gnb_config.h
openair2/GNB_APP/gnb_config.h
+1
-1
openair2/RRC/LTE/L2_interface.c
openair2/RRC/LTE/L2_interface.c
+4
-4
openair2/RRC/LTE/rrc_UE.c
openair2/RRC/LTE/rrc_UE.c
+3
-3
openair2/RRC/LTE/rrc_defs.h
openair2/RRC/LTE/rrc_defs.h
+3
-3
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+31
-31
openair2/RRC/LTE/rrc_eNB_GTPV1U.c
openair2/RRC/LTE/rrc_eNB_GTPV1U.c
+2
-2
openair2/RRC/LTE/rrc_eNB_S1AP.c
openair2/RRC/LTE/rrc_eNB_S1AP.c
+1
-1
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+5
-5
openair2/SIMULATION/NR_RRC/itti_sim.c
openair2/SIMULATION/NR_RRC/itti_sim.c
+13
-1
openair3/GTPV1-U/gtpv1u_eNB.c
openair3/GTPV1-U/gtpv1u_eNB.c
+3
-3
No files found.
cmake_targets/CMakeLists.txt
View file @
568af888
This diff is collapsed.
Click to expand it.
cmake_targets/build_oai
View file @
568af888
...
...
@@ -70,6 +70,7 @@ NR="False"
ITTI_SIM
=
"False"
SANITIZE_ADDRESS
=
"False"
OPTIONAL_LIBRARIES
=
"telnetsrv enbscope uescope nrscope msc"
RU
=
0
trap
handle_ctrl_c INT
function
print_help
()
{
...
...
cmake_targets/tools/make_asn1c_includes.sh
View file @
568af888
#!/bin/bash
GENERATED_FULL_DIR
=
$1
export
ASN1C_PREFIX
=
$1
shift
ASN1_SOURCE_DIR
=
$1
options
=
$1
shift
export
ASN1C_PREFIX
=
$1
GENERATED_FULL_DIR
=
$1
shift
options
=
$*
ASN1_SOURCE_DIR
=
$*
done_flag
=
"
$GENERATED_FULL_DIR
"
/done
if
[
"
$done_flag
"
-ot
$ASN1_SOURCE_DIR
]
;
then
rebuild
=
0
for
f
in
$ASN1_SOURCE_DIR
;
do
if
[
"
$done_flag
"
-ot
"
$f
"
]
;
then
rebuild
=
1
fi
done
if
[
$rebuild
-eq
1
]
;
then
rm
-f
"
$GENERATED_FULL_DIR
"
/
${
ASN1C_PREFIX
}*
.c
"
$GENERATED_FULL_DIR
"
/
${
ASN1C_PREFIX
}*
.h
mkdir
-p
"
$GENERATED_FULL_DIR
"
asn1c
-pdu
=
all
-fcompound-names
-gen-PER
-no-gen-OER
-no-gen-example
$options
-D
$GENERATED_FULL_DIR
$ASN1_SOURCE_DIR
|& egrep
-v
"^Copied|^Compiled"
|
sort
-u
...
...
common/ran_context.h
View file @
568af888
...
...
@@ -122,5 +122,5 @@ typedef struct {
pthread_cond_t
ru_cond
;
}
RAN_CONTEXT_t
;
extern
RAN_CONTEXT_t
RC
;
#endif
common/utils/telnetsrv/telnetsrv.h
View file @
568af888
...
...
@@ -31,6 +31,7 @@
#ifndef TELNETSRV_H
#define TELNETSRV_H
#include <common/ran_context.h>
#define TELNETSRV_MODNAME "telnetsrv"
#define TELNET_PORT 9090
...
...
executables/nr-ru.c
View file @
568af888
...
...
@@ -112,6 +112,7 @@ void configure_ru(int idx, void *arg);
void
configure_rru
(
int
idx
,
void
*
arg
);
int
attach_rru
(
RU_t
*
ru
);
int
connect_rau
(
RU_t
*
ru
);
static
void
NRRCconfig_RU
(
void
);
uint16_t
sf_ahead
;
uint16_t
slot_ahead
;
...
...
@@ -1837,7 +1838,7 @@ void init_NR_RU(char *rf_config_file)
pthread_cond_init
(
&
RC
.
ru_cond
,
NULL
);
// read in configuration file)
printf
(
"configuring RU from file
\n
"
);
RCconfig_RU
();
NR
RCconfig_RU
();
LOG_I
(
PHY
,
"number of L1 instances %d, number of RU %d, number of CPU cores %d
\n
"
,
RC
.
nb_nr_L1_inst
,
RC
.
nb_RU
,
get_nprocs
());
LOG_D
(
PHY
,
"Process RUs RC.nb_RU:%d
\n
"
,
RC
.
nb_RU
);
...
...
@@ -1912,7 +1913,7 @@ void stop_RU(int nb_ru)
/* --------------------------------------------------------*/
/* from here function to use configuration module */
void
RCconfig_RU
(
void
)
static
void
NR
RCconfig_RU
(
void
)
{
int
i
=
0
,
j
=
0
;
paramdef_t
RUParams
[]
=
RUPARAMS_DESC
;
...
...
executables/nr-uesoftmodem.c
View file @
568af888
...
...
@@ -82,7 +82,6 @@ unsigned short config_frames[4] = {2,9,11,13};
// current status is that every UE has a DL scope for a SINGLE eNB (eNB_id=0)
#include "PHY/TOOLS/phy_scope_interface.h"
#include "PHY/TOOLS/nr_phy_scope.h"
#define NRUE_MAIN
#include <executables/nr-uesoftmodem.h>
#include "executables/softmodem-common.h"
#include "executables/thread-common.h"
...
...
@@ -90,6 +89,7 @@ unsigned short config_frames[4] = {2,9,11,13};
extern
const
char
*
duplex_mode
[];
msc_interface_t
msc_interface
;
THREAD_STRUCT
thread_struct
;
nrUE_params_t
nrUE_params
;
// Thread variables
pthread_cond_t
nfapi_sync_cond
;
...
...
executables/nr-uesoftmodem.h
View file @
568af888
...
...
@@ -72,9 +72,6 @@ extern uint64_t get_nrUE_optmask(void);
extern
uint64_t
set_nrUE_optmask
(
uint64_t
bitmask
);
extern
nrUE_params_t
*
get_nrUE_params
(
void
);
#ifdef NRUE_MAIN
nrUE_params_t
nrUE_params
;
#endif
// In nr-ue.c
extern
int
setup_nr_ue_buffers
(
PHY_VARS_NR_UE
**
phy_vars_ue
,
openair0_config_t
*
openair0_cfg
);
...
...
openair1/PHY/TOOLS/lte_phy_scope.h
View file @
568af888
...
...
@@ -28,6 +28,7 @@
#include "PHY/defs_eNB.h"
#include "PHY/defs_UE.h"
#include "PHY/impl_defs_top.h"
#include <common/ran_context.h>
/* Forms and Objects */
...
...
openair1/PHY/TOOLS/nr_phy_scope.c
View file @
568af888
...
...
@@ -240,7 +240,7 @@ static void genericWaterFall (OAIgraph_t *graph, scopeSample_t *values, const in
for
(
int
pix
=
0
;
pix
<
graph
->
w
;
pix
++
)
{
scopeSample_t
*
end
=
values
+
(
pix
+
1
)
*
samplesPerPixel
;
end
-=
2
;
AssertFatal
(
end
<=
values
+
datasize
,
"diff : %
u
"
,
end
-
values
+
datasize
);
AssertFatal
(
end
<=
values
+
datasize
,
"diff : %
ld
"
,
end
-
values
+
datasize
);
double
val
=
0
;
for
(
scopeSample_t
*
s
=
values
+
(
pix
)
*
samplesPerPixel
;
...
...
openair2/COMMON/mac_rrc_primitives.h
View file @
568af888
...
...
@@ -189,7 +189,7 @@ typedef struct MEAS_REQ_TABLE_ENTRY {
MAC_MEAS_REQ
Mac_meas_req
;
unsigned
int
Last_report_frame
;
unsigned
int
Next_check_frame
;
uint8_t
Status
;
uint8_t
Status
Meas
;
uint8_t
Meas_req_status
;
uint8_t
Rx_activity
;
//uint8_t Meas_Direction;//???
...
...
@@ -269,7 +269,7 @@ typedef struct {
char
Wideband_sinr
;
uint8_t
Forg_fact
;
unsigned
short
Rep_interval
;
uint8_t
Status
;
uint8_t
Status
Meas
;
unsigned
int
Last_report_frame
;
unsigned
int
Next_check_frame
;
uint8_t
Active
;
...
...
@@ -299,7 +299,7 @@ typedef struct {
unsigned
short
Rep_interval
;
unsigned
int
Last_report_frame
;
unsigned
int
Next_check_frame
;
uint8_t
Status
;
//IDLE,NEED_rADIO_CONFIG, RADIO_CONFIG_TX, RADIO_CONFIG_ok
uint8_t
Status
Meas
;
//IDLE,NEED_rADIO_CONFIG, RADIO_CONFIG_TX, RADIO_CONFIG_ok
uint8_t
Active
;
}
__attribute__
((
__packed__
))
DEFAULT_CH_MEAS
;
#define DEFAULT_eNB_MEAS_SIZE sizeof(DEFAULT_eNB_MEAS)
...
...
openair2/COMMON/tasks_def.h
deleted
100644 → 0
View file @
a07e3959
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
// This task is mandatory and must always be placed in first position
TASK_DEF
(
TASK_TIMER
,
TASK_PRIORITY_MAX
,
10
)
// Other possible tasks in the process
// Common tasks:
/// Bearers Manager task
TASK_DEF
(
TASK_BM
,
TASK_PRIORITY_MED
,
200
)
// eNodeB tasks and sub-tasks:
/// Radio Resource Control task
TASK_DEF
(
TASK_RRC_ENB
,
TASK_PRIORITY_MED
,
200
)
// Define here for now
TASK_DEF
(
TASK_RRC_ENB_NB_IoT
,
TASK_PRIORITY_MED
,
200
)
TASK_DEF
(
TASK_RRC_GNB
,
TASK_PRIORITY_MED
,
200
)
/// S1ap task
/// RAL task for ENB
TASK_DEF
(
TASK_RAL_ENB
,
TASK_PRIORITY_MED
,
200
)
// UDP TASK
TASK_DEF
(
TASK_UDP
,
TASK_PRIORITY_MED
,
1000
)
// GTP_V1U task
TASK_DEF
(
TASK_GTPV1_U
,
TASK_PRIORITY_MED
,
1000
)
TASK_DEF
(
TASK_S1AP
,
TASK_PRIORITY_MED
,
200
)
TASK_DEF
(
TASK_CU_F1
,
TASK_PRIORITY_MED
,
200
)
TASK_DEF
(
TASK_DU_F1
,
TASK_PRIORITY_MED
,
200
)
/// M3ap task, acts as both source and target
TASK_DEF
(
TASK_M3AP
,
TASK_PRIORITY_MED
,
200
)
/// M3ap task, acts as both source and target
TASK_DEF
(
TASK_M3AP_MME
,
TASK_PRIORITY_MED
,
200
)
/// M3ap task, acts as both source and target
TASK_DEF
(
TASK_M3AP_MCE
,
TASK_PRIORITY_MED
,
200
)
/// M2ap task, acts as both source and target
TASK_DEF
(
TASK_M2AP_MCE
,
TASK_PRIORITY_MED
,
200
)
TASK_DEF
(
TASK_M2AP_ENB
,
TASK_PRIORITY_MED
,
200
)
/// X2ap task, acts as both source and target
TASK_DEF
(
TASK_X2AP
,
TASK_PRIORITY_MED
,
200
)
/// Sctp task (Used by both S1AP and X2AP)
TASK_DEF
(
TASK_SCTP
,
TASK_PRIORITY_MED
,
200
)
/// eNB APP task
TASK_DEF
(
TASK_ENB_APP
,
TASK_PRIORITY_MED
,
200
)
/// gNB APP task
TASK_DEF
(
TASK_GNB_APP
,
TASK_PRIORITY_MED
,
200
)
/// eNB Agent task
TASK_DEF
(
TASK_FLEXRAN_AGENT
,
TASK_PRIORITY_MED
,
200
)
TASK_DEF
(
TASK_PROTO_AGENT
,
TASK_PRIORITY_MED
,
200
)
// UE tasks and sub-tasks:
/// Radio Resource Control task
TASK_DEF
(
TASK_RRC_UE
,
TASK_PRIORITY_MED
,
200
)
TASK_DEF
(
TASK_RRC_NRUE
,
TASK_PRIORITY_MED
,
200
)
/// Non Access Stratum task
TASK_DEF
(
TASK_NAS_UE
,
TASK_PRIORITY_MED
,
200
)
TASK_DEF
(
TASK_RAL_UE
,
TASK_PRIORITY_MED
,
200
)
//MESSAGE GENERATOR TASK
TASK_DEF
(
TASK_MSC
,
TASK_PRIORITY_MED
,
200
)
#ifdef ITTI_SIM
TASK_DEF
(
TASK_RRC_GNB_SIM
,
TASK_PRIORITY_MED
,
200
)
TASK_DEF
(
TASK_RRC_UE_SIM
,
TASK_PRIORITY_MED
,
200
)
#endif
openair2/ENB_APP/flexran_agent_ran_api.c
View file @
568af888
...
...
@@ -888,7 +888,7 @@ uint8_t flexran_get_rrc_status(mid_t mod_id, rnti_t rnti) {
if
(
!
ue_context_p
)
return
RRC_INACTIVE
;
return
ue_context_p
->
ue_context
.
Status
;
return
ue_context_p
->
ue_context
.
Status
Rrc
;
}
uint64_t
flexran_get_ue_aggregated_max_bitrate_dl
(
mid_t
mod_id
,
mid_t
ue_id
)
{
...
...
openair2/F1AP/f1ap_du_rrc_message_transfer.c
View file @
568af888
...
...
@@ -721,7 +721,7 @@ int DU_send_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
}
else
{
LOG_I
(
F1AP
,
"Processing RRCConnectionSetupComplete UE %x
\n
"
,
rnti
);
ue_context_p
->
ue_context
.
Status
=
RRC_CONNECTED
;
ue_context_p
->
ue_context
.
Status
Rrc
=
RRC_CONNECTED
;
}
break
;
...
...
openair2/GNB_APP/gnb_config.h
View file @
568af888
...
...
@@ -92,7 +92,7 @@ typedef struct ru_config_s {
uint8_t if_compress;
} ru_config_t;
*/
extern
void
RCconfig_RU
(
void
);
extern
void
NR
RCconfig_RU
(
void
);
extern
void
RCconfig_nr_flexran
(
void
);
extern
void
RCconfig_NR_L1
(
void
);
extern
void
RCconfig_nr_macrlc
(
void
);
...
...
openair2/RRC/LTE/L2_interface.c
View file @
568af888
...
...
@@ -349,12 +349,12 @@ mac_rrc_data_ind(
ue_context_p
=
rrc_eNB_get_ue_context
(
RC
.
rrc
[
ctxt
.
module_id
],
rntiP
);
if
(
ue_context_p
)
{
if
(
ue_context_p
->
ue_context
.
Status
!=
RRC_RECONFIGURED
)
{
LOG_E
(
RRC
,
"[eNB %d] Received C-RNTI ,but UE %x status(%d) not RRC_RECONFIGURED
\n
"
,
module_idP
,
rntiP
,
ue_context_p
->
ue_context
.
Status
);
if
(
ue_context_p
->
ue_context
.
Status
Rrc
!=
RRC_RECONFIGURED
)
{
LOG_E
(
RRC
,
"[eNB %d] Received C-RNTI ,but UE %x status(%d) not RRC_RECONFIGURED
\n
"
,
module_idP
,
rntiP
,
ue_context_p
->
ue_context
.
Status
Rrc
);
return
(
-
1
);
}
rrc_eNB_generate_defaultRRCConnectionReconfiguration
(
&
ctxt
,
ue_context_p
,
0
);
ue_context_p
->
ue_context
.
Status
=
RRC_RECONFIGURED
;
ue_context_p
->
ue_context
.
Status
Rrc
=
RRC_RECONFIGURED
;
}
}
...
...
@@ -376,7 +376,7 @@ mac_eNB_get_rrc_status(
ue_context_p
=
rrc_eNB_get_ue_context
(
RC
.
rrc
[
Mod_idP
],
rntiP
);
if
(
ue_context_p
!=
NULL
)
{
return
(
ue_context_p
->
ue_context
.
Status
);
return
(
ue_context_p
->
ue_context
.
Status
Rrc
);
}
else
{
return
RRC_INACTIVE
;
}
...
...
openair2/RRC/LTE/rrc_UE.c
View file @
568af888
...
...
@@ -492,7 +492,7 @@ rrc_t310_expiration(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb2
[
eNB_index
].
Srb_info
.
Srb_id
,
Rlc_info_um
);
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb2
[
eNB_index
].
Active
=
0
;
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb2
[
eNB_index
].
Status
=
IDLE
;
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb2
[
eNB_index
].
Status
Srb
=
IDLE
;
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb2
[
eNB_index
].
Next_check_frame
=
0
;
}
}
else
{
// Restablishment procedure
...
...
@@ -671,7 +671,7 @@ rrc_ue_establish_srb1(
{
// add descriptor from RRC PDU
UE_rrc_inst
[
ue_mod_idP
].
Srb1
[
eNB_index
].
Active
=
1
;
UE_rrc_inst
[
ue_mod_idP
].
Srb1
[
eNB_index
].
Status
=
RADIO_CONFIG_OK
;
//RADIO CFG
UE_rrc_inst
[
ue_mod_idP
].
Srb1
[
eNB_index
].
Status
Srb
=
RADIO_CONFIG_OK
;
//RADIO CFG
UE_rrc_inst
[
ue_mod_idP
].
Srb1
[
eNB_index
].
Srb_info
.
Srb_id
=
1
;
// copy default configuration for now
// memcpy(&UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Srb_info.Lchan_desc[0],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE);
...
...
@@ -695,7 +695,7 @@ rrc_ue_establish_srb2(
{
// add descriptor from RRC PDU
UE_rrc_inst
[
ue_mod_idP
].
Srb2
[
eNB_index
].
Active
=
1
;
UE_rrc_inst
[
ue_mod_idP
].
Srb2
[
eNB_index
].
Status
=
RADIO_CONFIG_OK
;
//RADIO CFG
UE_rrc_inst
[
ue_mod_idP
].
Srb2
[
eNB_index
].
Status
Srb
=
RADIO_CONFIG_OK
;
//RADIO CFG
UE_rrc_inst
[
ue_mod_idP
].
Srb2
[
eNB_index
].
Srb_info
.
Srb_id
=
2
;
// copy default configuration for now
// memcpy(&UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Srb_info.Lchan_desc[0],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE);
...
...
openair2/RRC/LTE/rrc_defs.h
View file @
568af888
...
...
@@ -519,13 +519,13 @@ typedef struct RB_INFO_TABLE_ENTRY_s {
RB_INFO
Rb_info
;
uint8_t
Active
;
uint32_t
Next_check_frame
;
uint8_t
Status
;
uint8_t
Status
Rb
;
}
RB_INFO_TABLE_ENTRY
;
typedef
struct
SRB_INFO_TABLE_ENTRY_s
{
SRB_INFO
Srb_info
;
uint8_t
Active
;
uint8_t
Status
;
uint8_t
Status
Srb
;
uint32_t
Next_check_frame
;
}
SRB_INFO_TABLE_ENTRY
;
...
...
@@ -599,7 +599,7 @@ typedef struct eNB_RRC_UE_s {
LTE_CipheringAlgorithm_r12_t
ciphering_algorithm
;
e_LTE_SecurityAlgorithmConfig__integrityProtAlgorithm
integrity_algorithm
;
uint8_t
Status
;
// RRC status, type enum UE_STATE_t
uint8_t
Status
Rrc
;
// RRC status, type enum UE_STATE_t
rnti_t
rnti
;
int
gnb_rnti
;
//RNTI of the UE at the gNB if in ENDC connection
int
gnb_x2_assoc_id
;
...
...
openair2/RRC/LTE/rrc_eNB.c
View file @
568af888
This diff is collapsed.
Click to expand it.
openair2/RRC/LTE/rrc_eNB_GTPV1U.c
View file @
568af888
...
...
@@ -188,7 +188,7 @@ boolean_t gtpv_data_req_new (
struct
rrc_eNB_ue_context_s
*
ue_context_p
=
rrc_eNB_get_ue_context
(
RC
.
rrc
[
ctxt
->
module_id
],
ctxt
->
rnti
);
if
(
ue_context_p
==
NULL
||
ue_context_p
->
ue_context
.
handover_info
==
NULL
||
ue_context_p
->
ue_context
.
Status
!=
RRC_HO_EXECUTION
)
{
ue_context_p
->
ue_context
.
Status
Rrc
!=
RRC_HO_EXECUTION
)
{
LOG_E
(
RRC
,
"incoming GTP-U for X2 in non HO context
\n
"
);
return
false
;
}
...
...
@@ -215,7 +215,7 @@ boolean_t gtpv_data_req_new (
/* target enb */
// We have 2*2=4 cases (data or end marker) * (from source, from EPC)
if
(
ue_context_p
->
ue_context
.
Status
==
RRC_RECONFIGURED
)
{
if
(
ue_context_p
->
ue_context
.
Status
Rrc
==
RRC_RECONFIGURED
)
{
// It should come from remote eNB
// case end marker by EPC is not possible ?
if
(
task
==
TASK_END_MARKER
)
{
...
...
openair2/RRC/LTE/rrc_eNB_S1AP.c
View file @
568af888
...
...
@@ -1072,7 +1072,7 @@ int rrc_eNB_process_S1AP_INITIAL_CONTEXT_SETUP_REQ(MessageDef *msg_p, const char
ue_context_p
->
ue_context
.
nr_security
.
kgNB
);
// in case, send the S1SP initial context response if it is not sent with the attach complete message
if
(
ue_context_p
->
ue_context
.
Status
==
RRC_RECONFIGURED
)
{
if
(
ue_context_p
->
ue_context
.
Status
Rrc
==
RRC_RECONFIGURED
)
{
LOG_I
(
RRC
,
"Sending rrc_eNB_send_S1AP_INITIAL_CONTEXT_SETUP_RESP, cause %ld
\n
"
,
ue_context_p
->
ue_context
.
reestablishment_cause
);
//if(ue_context_p->ue_context.reestablishment_cause == ReestablishmentCause_spare1){}
rrc_eNB_send_S1AP_INITIAL_CONTEXT_SETUP_RESP
(
&
ctxt
,
ue_context_p
);
...
...
openair2/RRC/NR_UE/rrc_UE.c
View file @
568af888
...
...
@@ -1736,13 +1736,13 @@ void nr_rrc_ue_generate_RRCSetupRequest(module_id_t module_id, const uint8_t gNB
MessageDef
*
message_p
;
uint8_t
*
message_buffer
;
message_buffer
=
itti_malloc
(
TASK_RRC_NRUE
,
TASK_RRC_GNB_SIM
,
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
payload_size
);
memcpy
(
message_buffer
,
(
uint8_t
*
)
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
Payload
,
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
payload_size
);
NR_UE_rrc_inst
[
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
payload_size
);
memcpy
(
message_buffer
,
(
uint8_t
*
)
NR_UE_rrc_inst
[
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
Payload
,
NR_UE_rrc_inst
[
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
payload_size
);
message_p
=
itti_alloc_new_message
(
TASK_RRC_NRUE
,
0
,
UE_RRC_CCCH_DATA_IND
);
GNB_RRC_CCCH_DATA_IND
(
message_p
).
sdu
=
message_buffer
;
GNB_RRC_CCCH_DATA_IND
(
message_p
).
size
=
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
payload_size
;
itti_send_msg_to_task
(
TASK_RRC_GNB_SIM
,
ctxt_pP
->
instance
,
message_p
);
GNB_RRC_CCCH_DATA_IND
(
message_p
).
size
=
NR_UE_rrc_inst
[
module_id
].
Srb0
[
gNB_index
].
Tx_buffer
.
payload_size
;
itti_send_msg_to_task
(
TASK_RRC_GNB_SIM
,
gNB_index
,
message_p
);
#endif
}
}
...
...
openair2/SIMULATION/NR_RRC/itti_sim.c
View file @
568af888
...
...
@@ -81,12 +81,13 @@ unsigned short config_frames[4] = {2,9,11,13};
#include "RRC/NR_UE/rrc_proto.h"
#include "RRC/NR_UE/rrc_vars.h"
#include "openair3/NAS/UE/nas_ue_task.h"
#include <executables/split_headers.h>
#include <executables/nr-uesoftmodem.h>
pthread_cond_t
nfapi_sync_cond
;
pthread_mutex_t
nfapi_sync_mutex
;
int
nfapi_sync_var
=-
1
;
//!< protected by mutex \ref nfapi_sync_mutex
uint8_t
nfapi_mode
=
0
;
// Default to monolithic mode
uint32_t
timing_advance
=
0
;
uint64_t
num_missed_slots
=
0
;
...
...
@@ -94,7 +95,18 @@ int split73=0;
void
sendFs6Ul
(
PHY_VARS_eNB
*
eNB
,
int
UE_id
,
int
harq_pid
,
int
segmentID
,
int16_t
*
data
,
int
dataLen
,
int
r_offset
)
{
AssertFatal
(
false
,
"Must not be called in this context
\n
"
);
}
void
sendFs6Ulharq
(
enum
pckType
type
,
int
UEid
,
PHY_VARS_eNB
*
eNB
,
LTE_eNB_UCI
*
uci
,
int
frame
,
int
subframe
,
uint8_t
*
harq_ack
,
uint8_t
tdd_mapping_mode
,
uint16_t
tdd_multiplexing_mask
,
uint16_t
rnti
,
int32_t
stat
)
{
AssertFatal
(
false
,
"Must not be called in this context
\n
"
);
}
nrUE_params_t
nrUE_params
;
nrUE_params_t
*
get_nrUE_params
(
void
)
{
return
&
nrUE_params
;
}
void
processSlotTX
(
void
*
arg
)
{}
THREAD_STRUCT
thread_struct
;
pthread_cond_t
sync_cond
;
pthread_mutex_t
sync_mutex
;
int
sync_var
=-
1
;
//!< protected by mutex \ref sync_mutex.
...
...
openair3/GTPV1-U/gtpv1u_eNB.c
View file @
568af888
...
...
@@ -281,7 +281,7 @@ NwGtpv1uRcT gtpv1u_eNB_process_stack_req(
(
ue_context_p
->
ue_context
.
handover_info
->
state
<
HO_FORWARDING_COMPLETE
))
{
if
(
msgType
==
NW_GTP_END_MARKER
)
{
/* in the source enb, UE in RRC_HO_EXECUTION mode */
if
(
ue_context_p
->
ue_context
.
Status
==
RRC_HO_EXECUTION
&&
ue_context_p
->
ue_context
.
handover_info
->
state
==
HO_COMPLETE
)
{
if
(
ue_context_p
->
ue_context
.
Status
Rrc
==
RRC_HO_EXECUTION
&&
ue_context_p
->
ue_context
.
handover_info
->
state
==
HO_COMPLETE
)
{
/* set handover state */
//ue_context_p->ue_context.handover_info->state = HO_END_MARKER;
MessageDef
*
msg
;
...
...
@@ -299,10 +299,10 @@ NwGtpv1uRcT gtpv1u_eNB_process_stack_req(
}
}
if
(
ue_context_p
->
ue_context
.
Status
==
RRC_HO_EXECUTION
||
ue_context_p
->
ue_context
.
Status
==
RRC_RECONFIGURED
)
{
if
(
ue_context_p
->
ue_context
.
Status
Rrc
==
RRC_HO_EXECUTION
||
ue_context_p
->
ue_context
.
StatusRrc
==
RRC_RECONFIGURED
)
{
int
msgsrc
=
gtpv1u_eNB_get_msgsource
(
ue_context_p
,
teid
);
LOG_D
(
GTPU
,
"UE INFO.ueStatus %d, handover state %d, forwarding state %d, from %s. message type %s
\n
"
,
ue_context_p
->
ue_context
.
Status
,
ue_context_p
->
ue_context
.
Status
Rrc
,
ue_context_p
->
ue_context
.
handover_info
->
state
,
ue_context_p
->
ue_context
.
handover_info
->
forwarding_state
,
msgsrc
==
GTPV1U_MSG_FROM_SOURCE_ENB
?
"Source eNB"
:
"EPC"
,
...
...
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