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
lizhongxiao
OpenXG-RAN
Commits
9b691b3e
Commit
9b691b3e
authored
Sep 21, 2021
by
Laurent THOMAS
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix old code errors, add CU to DU, 4G F1-U
parent
686e5856
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
101 additions
and
86 deletions
+101
-86
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+2
-3
executables/main-ocp.c
executables/main-ocp.c
+4
-4
executables/nr-softmodem.c
executables/nr-softmodem.c
+4
-4
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.c
+2
-2
executables/ocp-gnb.c
executables/ocp-gnb.c
+2
-2
openair2/F1AP/f1ap_cu_rrc_message_transfer.c
openair2/F1AP/f1ap_cu_rrc_message_transfer.c
+1
-1
openair2/F1AP/f1ap_cu_ue_context_management.c
openair2/F1AP/f1ap_cu_ue_context_management.c
+2
-2
openair2/GNB_APP/gnb_app.c
openair2/GNB_APP/gnb_app.c
+4
-4
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
+32
-5
openair2/LAYER2/PDCP_v10.1.0/pdcp.h
openair2/LAYER2/PDCP_v10.1.0/pdcp.h
+12
-13
openair2/LAYER2/PROTO_AGENT/proto_agent.c
openair2/LAYER2/PROTO_AGENT/proto_agent.c
+5
-5
openair2/LAYER2/PROTO_AGENT/proto_agent.h
openair2/LAYER2/PROTO_AGENT/proto_agent.h
+2
-4
openair2/LAYER2/PROTO_AGENT/proto_agent_common.c
openair2/LAYER2/PROTO_AGENT/proto_agent_common.c
+1
-9
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
+6
-7
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+11
-11
openair2/SIMULATION/NR_RRC/itti_sim.c
openair2/SIMULATION/NR_RRC/itti_sim.c
+2
-2
openair3/ocp-gtpu/gtp_itf.h
openair3/ocp-gtpu/gtp_itf.h
+2
-1
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+4
-4
targets/RT/USER/lte-uesoftmodem.c
targets/RT/USER/lte-uesoftmodem.c
+3
-3
No files found.
cmake_targets/CMakeLists.txt
View file @
9b691b3e
...
@@ -2968,9 +2968,8 @@ if (NOT ${NOS1})
...
@@ -2968,9 +2968,8 @@ if (NOT ${NOS1})
endif
()
endif
()
target_link_libraries
(
lte-uesoftmodem
target_link_libraries
(
lte-uesoftmodem
-Wl,--start-group
-Wl,--start-group
RRC_LIB NR_RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB X2AP_ENB M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB F1AP F1AP_LIB
RRC_LIB NR_RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB X2AP_ENB M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB
SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT MME_APP UDP SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON
GTPV1U_OCP SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT MME_APP UDP SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON
PHY_UE PHY_RU LFDS L2_UE L2_LTE LFDS7 SIMU_COMMON SIMU NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB MISC_NFAPI_LTE_LIB
PHY_UE PHY_RU LFDS L2_UE L2_LTE LFDS7 SIMU_COMMON SIMU NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB MISC_NFAPI_LTE_LIB
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE_LIB
}
ITTI
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
ATLAS_LIBRARIES
}
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE_LIB
}
ITTI
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
ATLAS_LIBRARIES
}
-Wl,--end-group z dl
)
-Wl,--end-group z dl
)
...
...
executables/main-ocp.c
View file @
9b691b3e
...
@@ -1046,13 +1046,13 @@ void init_pdcp(void) {
...
@@ -1046,13 +1046,13 @@ void init_pdcp(void) {
pdcp_module_init
(
pdcp_initmask
);
pdcp_module_init
(
pdcp_initmask
);
if
(
NODE_IS_CU
(
RC
.
rrc
[
0
]
->
node_type
))
{
if
(
NODE_IS_CU
(
RC
.
rrc
[
0
]
->
node_type
))
{
//pdcp_set_rlc_data_req_func(
(send_rlc_data_req_func_t)
proto_agent_send_rlc_data_req);
//pdcp_set_rlc_data_req_func(proto_agent_send_rlc_data_req);
}
else
{
}
else
{
pdcp_set_rlc_data_req_func
(
(
send_rlc_data_req_func_t
)
rlc_data_req
);
pdcp_set_rlc_data_req_func
(
rlc_data_req
);
pdcp_set_pdcp_data_ind_func
(
(
pdcp_data_ind_func_t
)
pdcp_data_ind
);
pdcp_set_pdcp_data_ind_func
(
pdcp_data_ind
);
}
}
}
else
{
}
else
{
//pdcp_set_pdcp_data_ind_func(
(pdcp_data_ind_func_t)
proto_agent_send_pdcp_data_ind);
//pdcp_set_pdcp_data_ind_func(proto_agent_send_pdcp_data_ind);
}
}
}
}
...
...
executables/nr-softmodem.c
View file @
9b691b3e
...
@@ -610,15 +610,15 @@ void init_pdcp(void) {
...
@@ -610,15 +610,15 @@ void init_pdcp(void) {
if
(
NODE_IS_CU
(
RC
.
nrrrc
[
0
]
->
node_type
))
{
if
(
NODE_IS_CU
(
RC
.
nrrrc
[
0
]
->
node_type
))
{
LOG_I
(
PDCP
,
"node is CU, pdcp send rlc_data_req by proto_agent
\n
"
);
LOG_I
(
PDCP
,
"node is CU, pdcp send rlc_data_req by proto_agent
\n
"
);
pdcp_set_rlc_data_req_func
(
(
send_rlc_data_req_func_t
)
proto_agent_send_rlc_data_req
);
pdcp_set_rlc_data_req_func
(
proto_agent_send_rlc_data_req
);
}
else
{
}
else
{
LOG_I
(
PDCP
,
"node is gNB
\n
"
);
LOG_I
(
PDCP
,
"node is gNB
\n
"
);
pdcp_set_rlc_data_req_func
(
(
send_rlc_data_req_func_t
)
rlc_data_req
);
pdcp_set_rlc_data_req_func
(
rlc_data_req
);
pdcp_set_pdcp_data_ind_func
(
(
pdcp_data_ind_func_t
)
pdcp_data_ind
);
pdcp_set_pdcp_data_ind_func
(
pdcp_data_ind
);
}
}
}
else
{
}
else
{
LOG_I
(
PDCP
,
"node is DU, rlc send pdcp_data_ind by proto_agent
\n
"
);
LOG_I
(
PDCP
,
"node is DU, rlc send pdcp_data_ind by proto_agent
\n
"
);
pdcp_set_pdcp_data_ind_func
(
(
pdcp_data_ind_func_t
)
proto_agent_send_pdcp_data_ind
);
pdcp_set_pdcp_data_ind_func
(
proto_agent_send_pdcp_data_ind
);
}
}
}
}
...
...
executables/nr-uesoftmodem.c
View file @
9b691b3e
...
@@ -397,8 +397,8 @@ static void init_pdcp(void) {
...
@@ -397,8 +397,8 @@ static void init_pdcp(void) {
nr_DRB_preconfiguration();*/
nr_DRB_preconfiguration();*/
pdcp_layer_init
();
pdcp_layer_init
();
pdcp_module_init
(
pdcp_initmask
);
pdcp_module_init
(
pdcp_initmask
);
pdcp_set_rlc_data_req_func
(
(
send_rlc_data_req_func_t
)
rlc_data_req
);
pdcp_set_rlc_data_req_func
(
rlc_data_req
);
pdcp_set_pdcp_data_ind_func
(
(
pdcp_data_ind_func_t
)
pdcp_data_ind
);
pdcp_set_pdcp_data_ind_func
(
pdcp_data_ind
);
}
}
// Stupid function addition because UE itti messages queues definition is common with eNB
// Stupid function addition because UE itti messages queues definition is common with eNB
...
...
executables/ocp-gnb.c
View file @
9b691b3e
...
@@ -329,8 +329,8 @@ static void init_pdcp(void) {
...
@@ -329,8 +329,8 @@ static void init_pdcp(void) {
}
}
pdcp_module_init
(
pdcp_initmask
);
pdcp_module_init
(
pdcp_initmask
);
pdcp_set_rlc_data_req_func
(
(
send_rlc_data_req_func_t
)
rlc_data_req
);
pdcp_set_rlc_data_req_func
(
rlc_data_req
);
pdcp_set_pdcp_data_ind_func
(
(
pdcp_data_ind_func_t
)
pdcp_data_ind
);
pdcp_set_pdcp_data_ind_func
(
pdcp_data_ind
);
}
}
void
init_main_gNB
(
void
)
{
void
init_main_gNB
(
void
)
{
...
...
openair2/F1AP/f1ap_cu_rrc_message_transfer.c
View file @
9b691b3e
...
@@ -326,6 +326,6 @@ int CU_handle_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
...
@@ -326,6 +326,6 @@ int CU_handle_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
0
,
// embms_flag
0
,
// embms_flag
srb_id
,
srb_id
,
ie
->
value
.
choice
.
RRCContainer
.
size
,
ie
->
value
.
choice
.
RRCContainer
.
size
,
mb
);
mb
,
NULL
,
NULL
);
return
0
;
return
0
;
}
}
openair2/F1AP/f1ap_cu_ue_context_management.c
View file @
9b691b3e
...
@@ -522,8 +522,8 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
...
@@ -522,8 +522,8 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
f1ap_ue_context_setup_req
->
drbs_to_be_setup
[
i
].
up_ul_tnl
[
j
].
teid
=
f1ap_ue_context_setup_req
->
drbs_to_be_setup
[
i
].
up_ul_tnl
[
j
].
teid
=
newGtpuCreateTunnel
(
getCxt
(
CUtype
,
instance
)
->
gtpInst
,
newGtpuCreateTunnel
(
getCxt
(
CUtype
,
instance
)
->
gtpInst
,
f1ap_ue_context_setup_req
->
rnti
,
f1ap_ue_context_setup_req
->
rnti
,
f1ap_ue_context_setup_req
->
drbs_to_be_setup
[
i
].
drb_id
,
f1ap_ue_context_setup_req
->
drbs_to_be_setup
[
i
].
drb_id
-
4
,
f1ap_ue_context_setup_req
->
drbs_to_be_setup
[
i
].
drb_id
,
f1ap_ue_context_setup_req
->
drbs_to_be_setup
[
i
].
drb_id
-
4
,
0xFFFF
,
// We will set the right value from DU answer
0xFFFF
,
// We will set the right value from DU answer
addr
,
addr
,
f1ap_ue_context_setup_req
->
drbs_to_be_setup
[
i
].
up_dl_tnl
[
0
].
port
,
f1ap_ue_context_setup_req
->
drbs_to_be_setup
[
i
].
up_dl_tnl
[
0
].
port
,
...
...
openair2/GNB_APP/gnb_app.c
View file @
9b691b3e
...
@@ -148,15 +148,15 @@ static void init_pdcp(void) {
...
@@ -148,15 +148,15 @@ static void init_pdcp(void) {
if
(
NODE_IS_CU
(
RC
.
nrrrc
[
0
]
->
node_type
))
{
if
(
NODE_IS_CU
(
RC
.
nrrrc
[
0
]
->
node_type
))
{
LOG_I
(
PDCP
,
"node is CU, pdcp send rlc_data_req by proto_agent
\n
"
);
LOG_I
(
PDCP
,
"node is CU, pdcp send rlc_data_req by proto_agent
\n
"
);
pdcp_set_rlc_data_req_func
(
(
send_rlc_data_req_func_t
)
proto_agent_send_rlc_data_req
);
pdcp_set_rlc_data_req_func
(
proto_agent_send_rlc_data_req
);
}
else
{
}
else
{
LOG_I
(
PDCP
,
"node is gNB
\n
"
);
LOG_I
(
PDCP
,
"node is gNB
\n
"
);
pdcp_set_rlc_data_req_func
(
(
send_rlc_data_req_func_t
)
rlc_data_req
);
pdcp_set_rlc_data_req_func
(
rlc_data_req
);
pdcp_set_pdcp_data_ind_func
(
(
pdcp_data_ind_func_t
)
pdcp_data_ind
);
pdcp_set_pdcp_data_ind_func
(
pdcp_data_ind
);
}
}
}
else
{
}
else
{
LOG_I
(
PDCP
,
"node is DU, rlc send pdcp_data_ind by proto_agent
\n
"
);
LOG_I
(
PDCP
,
"node is DU, rlc send pdcp_data_ind by proto_agent
\n
"
);
pdcp_set_pdcp_data_ind_func
(
(
pdcp_data_ind_func_t
)
proto_agent_send_pdcp_data_ind
);
pdcp_set_pdcp_data_ind_func
(
proto_agent_send_pdcp_data_ind
);
}
}
}
}
...
...
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
View file @
9b691b3e
...
@@ -152,16 +152,14 @@ boolean_t cu_f1u_data_req(
...
@@ -152,16 +152,14 @@ boolean_t cu_f1u_data_req(
const
pdcp_transmission_mode_t
mode
,
const
pdcp_transmission_mode_t
mode
,
const
uint32_t
*
const
sourceL2Id
,
const
uint32_t
*
const
sourceL2Id
,
const
uint32_t
*
const
destinationL2Id
const
uint32_t
*
const
destinationL2Id
)
)
{
{
mem_block_t
*
memblock
=
get_free_mem_block
(
sdu_buffer_size
,
__func__
);
mem_block_t
*
memblock
=
get_free_mem_block
(
sdu_buffer_size
,
__func__
);
if
(
memblock
==
NULL
)
{
if
(
memblock
==
NULL
)
{
LOG_E
(
RLC
,
"%s:%d:%s: ERROR: get_free_mem_block failed
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
LOG_E
(
RLC
,
"%s:%d:%s: ERROR: get_free_mem_block failed
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
exit
(
1
);
exit
(
1
);
}
}
memcpy
(
memblock
->
data
,
sdu_buffer
,
sdu_buffer_size
);
memcpy
(
memblock
->
data
,
sdu_buffer
,
sdu_buffer_size
);
// These -4 are boring
int
ret
=
pdcp_data_ind
(
ctxt_pP
,
srb_flagP
,
false
,
rb_id
,
sdu_buffer_size
,
memblock
,
NULL
,
NULL
);
int
ret
=
pdcp_data_ind
(
ctxt_pP
,
srb_flagP
,
false
,
rb_id
-
4
,
sdu_buffer_size
,
memblock
);
if
(
!
ret
)
{
if
(
!
ret
)
{
LOG_E
(
RLC
,
"%s:%d:%s: ERROR: pdcp_data_ind failed
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
LOG_E
(
RLC
,
"%s:%d:%s: ERROR: pdcp_data_ind failed
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
/* what to do in case of failure? for the moment: nothing */
/* what to do in case of failure? for the moment: nothing */
...
@@ -204,6 +202,33 @@ void *pdcp_stats_thread(void *param) {
...
@@ -204,6 +202,33 @@ void *pdcp_stats_thread(void *param) {
uint64_t
get_pdcp_optmask
(
void
)
{
uint64_t
get_pdcp_optmask
(
void
)
{
return
pdcp_params
.
optmask
;
return
pdcp_params
.
optmask
;
}
}
rlc_op_status_t
cu_send_to_du
(
const
protocol_ctxt_t
*
const
ctxt
,
const
srb_flag_t
srb_flag
,
const
MBMS_flag_t
MBMS_flag
,
const
rb_id_t
rb_id
,
const
mui_t
mui
,
confirm_t
confirm
,
sdu_size_t
size
,
mem_block_t
*
sdu
,
const
uint32_t
*
const
sourceID
,
const
uint32_t
*
const
destID
)
{
uint8_t
*
gtpu_buffer_p
=
itti_malloc
(
TASK_PDCP_ENB
,
TASK_GTPV1_U
,
size
+
GTPU_HEADER_OVERHEAD_MAX
);
AssertFatal
(
gtpu_buffer_p
!=
NULL
,
"OUT OF MEMORY"
);
memcpy
(
gtpu_buffer_p
+
GTPU_HEADER_OVERHEAD_MAX
,
sdu
->
data
,
size
);
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_PDCP_ENB
,
0
,
GTPV1U_ENB_TUNNEL_DATA_REQ
);
AssertFatal
(
message_p
!=
NULL
,
"OUT OF MEMORY"
);
gtpv1u_enb_tunnel_data_req_t
*
req
=&
GTPV1U_ENB_TUNNEL_DATA_REQ
(
message_p
);
req
->
buffer
=
gtpu_buffer_p
;
req
->
length
=
size
;
req
->
offset
=
GTPU_HEADER_OVERHEAD_MAX
;
req
->
rnti
=
ctxt
->
rnti
;
req
->
rab_id
=
rb_id
;
LOG_D
(
PDCP
,
"%s() (drb %ld) sending message to gtp size %d
\n
"
,
__func__
,
rb_id
,
size
);
extern
instance_t
CUuniqInstance
;
itti_send_msg_to_task
(
TASK_VARIABLE
,
CUuniqInstance
,
message_p
);
return
TRUE
;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
/*
/*
* If PDCP_UNIT_TEST is set here then data flow between PDCP and RLC is broken
* If PDCP_UNIT_TEST is set here then data flow between PDCP and RLC is broken
...
@@ -599,7 +624,9 @@ pdcp_data_ind(
...
@@ -599,7 +624,9 @@ pdcp_data_ind(
const
MBMS_flag_t
MBMS_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
rb_id_t
rb_idP
,
const
rb_id_t
rb_idP
,
const
sdu_size_t
sdu_buffer_sizeP
,
const
sdu_size_t
sdu_buffer_sizeP
,
mem_block_t
*
const
sdu_buffer_pP
mem_block_t
*
const
sdu_buffer_pP
,
const
uint32_t
*
const
srcID
,
const
uint32_t
*
const
dstID
)
)
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
{
{
...
...
openair2/LAYER2/PDCP_v10.1.0/pdcp.h
View file @
9b691b3e
...
@@ -47,12 +47,14 @@
...
@@ -47,12 +47,14 @@
typedef
rlc_op_status_t
(
*
send_rlc_data_req_func_t
)(
const
protocol_ctxt_t
*
const
,
typedef
rlc_op_status_t
(
*
send_rlc_data_req_func_t
)(
const
protocol_ctxt_t
*
const
,
const
srb_flag_t
,
const
MBMS_flag_t
,
const
srb_flag_t
,
const
MBMS_flag_t
,
const
rb_id_t
,
const
mui_t
,
const
rb_id_t
,
const
mui_t
,
confirm_t
,
sdu_size_t
,
mem_block_t
*
,
const
uint32_t
*
const
,
const
uint32_t
*
const
);
confirm_t
,
sdu_size_t
,
mem_block_t
*
,
const
uint32_t
*
const
,
const
uint32_t
*
const
);
typedef
boolean_t
(
*
pdcp_data_ind_func_t
)(
const
protocol_ctxt_t
*
,
const
srb_flag_t
,
const
MBMS_flag_t
,
const
rb_id_t
,
const
sdu_size_t
,
typedef
boolean_t
(
pdcp_data_ind_t
)(
const
protocol_ctxt_t
*
,
const
srb_flag_t
,
mem_block_t
*
,
const
uint32_t
*
const
,
const
uint32_t
*
const
);
const
MBMS_flag_t
,
const
rb_id_t
,
const
sdu_size_t
,
mem_block_t
*
,
const
uint32_t
*
const
,
const
uint32_t
*
const
);
typedef
pdcp_data_ind_t
*
pdcp_data_ind_func_t
;
#define ENB_NAS_USE_TUN_W_MBMS_BIT (1<< 10)
#define ENB_NAS_USE_TUN_W_MBMS_BIT (1<< 10)
#define PDCP_USE_NETLINK_BIT (1<< 11)
#define PDCP_USE_NETLINK_BIT (1<< 11)
...
@@ -282,13 +284,7 @@ boolean_t cu_f1u_data_req(
...
@@ -282,13 +284,7 @@ boolean_t cu_f1u_data_req(
* \note None
* \note None
* @ingroup _pdcp
* @ingroup _pdcp
*/
*/
boolean_t
pdcp_data_ind
(
pdcp_data_ind_t
pdcp_data_ind
;
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
srb_flag_t
srb_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
rb_id_t
rb_id
,
const
sdu_size_t
sdu_buffer_size
,
mem_block_t
*
const
sdu_buffer
);
/*! \fn void rrc_pdcp_config_req(const protocol_ctxt_t* const ,uint32_t,rb_id_t,uint8_t)
/*! \fn void rrc_pdcp_config_req(const protocol_ctxt_t* const ,uint32_t,rb_id_t,uint8_t)
* \brief This functions initializes relevant PDCP entity
* \brief This functions initializes relevant PDCP entity
...
@@ -434,7 +430,10 @@ pdcp_data_ind_func_t get_pdcp_data_ind_func(void);
...
@@ -434,7 +430,10 @@ pdcp_data_ind_func_t get_pdcp_data_ind_func(void);
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int
pdcp_fifo_flush_mbms_sdus
(
const
protocol_ctxt_t
*
const
ctxt_pP
);
int
pdcp_fifo_flush_mbms_sdus
(
const
protocol_ctxt_t
*
const
ctxt_pP
);
int
pdcp_fifo_read_input_mbms_sdus_fromtun
(
const
protocol_ctxt_t
*
const
ctxt_pP
);
int
pdcp_fifo_read_input_mbms_sdus_fromtun
(
const
protocol_ctxt_t
*
const
ctxt_pP
);
rlc_op_status_t
cu_send_to_du
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
srb_flag_t
srb_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
rb_id_t
rb_idP
,
const
mui_t
muiP
,
confirm_t
confirmP
,
sdu_size_t
sdu_sizeP
,
mem_block_t
*
sdu_pP
,
const
uint32_t
*
const
,
const
uint32_t
*
const
);
/*
/*
* Following two types are utilized between NAS driver and PDCP
* Following two types are utilized between NAS driver and PDCP
...
...
openair2/LAYER2/PROTO_AGENT/proto_agent.c
View file @
9b691b3e
...
@@ -157,7 +157,7 @@ void proto_agent_stop(mod_id_t mod_id) {
...
@@ -157,7 +157,7 @@ void proto_agent_stop(mod_id_t mod_id) {
rlc_op_status_t
proto_agent_send_rlc_data_req
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
rlc_op_status_t
proto_agent_send_rlc_data_req
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
srb_flag_t
srb_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
srb_flag_t
srb_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
rb_id_t
rb_idP
,
const
mui_t
muiP
,
const
rb_id_t
rb_idP
,
const
mui_t
muiP
,
confirm_t
confirmP
,
sdu_size_t
sdu_sizeP
,
mem_block_t
*
sdu_pP
)
{
confirm_t
confirmP
,
sdu_size_t
sdu_sizeP
,
mem_block_t
*
sdu_pP
,
const
uint32_t
*
const
SrcID
,
const
uint32_t
*
const
DstID
)
{
uint8_t
*
msg
=
NULL
;
uint8_t
*
msg
=
NULL
;
Protocol__FlexsplitMessage
*
init_msg
=
NULL
;
Protocol__FlexsplitMessage
*
init_msg
=
NULL
;
int
msg_flag
=
0
;
int
msg_flag
=
0
;
...
@@ -191,10 +191,10 @@ error:
...
@@ -191,10 +191,10 @@ error:
}
}
boolean_t
boolean_t
proto_agent_send_pdcp_data_ind
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
srb_flag_t
srb_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
rb_id_t
rb_idP
,
proto_agent_send_pdcp_data_ind
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
srb_flag_t
srb_flag
P
,
sdu_size_t
sdu_sizeP
,
mem_block_t
*
sdu_p
P
,
const
MBMS_flag_t
MBMS_flagP
,
const
rb_id_t
rb_idP
,
sdu_size_t
sdu_sizeP
,
mem_block_t
*
sdu_pP
)
{
const
uint32_t
*
const
SrcID
,
const
uint32_t
*
const
DstID
)
{
uint8_t
*
msg
=
NULL
;
uint8_t
*
msg
=
NULL
;
Protocol__FlexsplitMessage
*
init_msg
=
NULL
;
Protocol__FlexsplitMessage
*
init_msg
=
NULL
;
int
msg_flag
=
0
;
int
msg_flag
=
0
;
...
...
openair2/LAYER2/PROTO_AGENT/proto_agent.h
View file @
9b691b3e
...
@@ -42,10 +42,8 @@ void proto_agent_stop(mod_id_t mod_id);
...
@@ -42,10 +42,8 @@ void proto_agent_stop(mod_id_t mod_id);
rlc_op_status_t
proto_agent_send_rlc_data_req
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
rlc_op_status_t
proto_agent_send_rlc_data_req
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
srb_flag_t
srb_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
srb_flag_t
srb_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
rb_id_t
rb_idP
,
const
mui_t
muiP
,
confirm_t
confirmP
,
const
rb_id_t
rb_idP
,
const
mui_t
muiP
,
confirm_t
confirmP
,
sdu_size_t
sdu_sizeP
,
mem_block_t
*
sdu_pP
);
sdu_size_t
sdu_sizeP
,
mem_block_t
*
sdu_pP
,
const
uint32_t
*
const
SrcID
,
const
uint32_t
*
const
DstID
);
boolean_t
proto_agent_send_pdcp_data_ind
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
pdcp_data_ind_t
proto_agent_send_pdcp_data_ind
;
const
srb_flag_t
srb_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
rb_id_t
rb_idP
,
sdu_size_t
sdu_sizeP
,
mem_block_t
*
sdu_pP
);
#endif
#endif
openair2/LAYER2/PROTO_AGENT/proto_agent_common.c
View file @
9b691b3e
...
@@ -496,14 +496,6 @@ error:
...
@@ -496,14 +496,6 @@ error:
return
-
1
;
return
-
1
;
}
}
boolean_t
pdcp_data_ind
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
srb_flag_t
srb_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
rb_id_t
rb_id
,
const
sdu_size_t
sdu_buffer_size
,
mem_block_t
*
const
sdu_buffer
);
int
proto_agent_pdcp_data_ind_process
(
mod_id_t
mod_id
,
const
void
*
params
,
Protocol__FlexsplitMessage
**
msg
)
{
int
proto_agent_pdcp_data_ind_process
(
mod_id_t
mod_id
,
const
void
*
params
,
Protocol__FlexsplitMessage
**
msg
)
{
boolean_t
result
=
0
;
boolean_t
result
=
0
;
Protocol__FlexsplitMessage
*
input
=
(
Protocol__FlexsplitMessage
*
)
params
;
Protocol__FlexsplitMessage
*
input
=
(
Protocol__FlexsplitMessage
*
)
params
;
...
@@ -545,7 +537,7 @@ int proto_agent_pdcp_data_ind_process(mod_id_t mod_id, const void *params, Proto
...
@@ -545,7 +537,7 @@ int proto_agent_pdcp_data_ind_process(mod_id_t mod_id, const void *params, Proto
flag_MBMS
,
flag_MBMS
,
rb_idP
,
rb_idP
,
pdcp_pdu_size
,
pdcp_pdu_size
,
pdcp_pdu_p
);
pdcp_pdu_p
,
NULL
,
NULL
);
return
result
;
return
result
;
error:
error:
...
...
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
View file @
9b691b3e
...
@@ -463,7 +463,8 @@ static void deliver_sdu_drb(void *_ue, nr_pdcp_entity_t *entity,
...
@@ -463,7 +463,8 @@ static void deliver_sdu_drb(void *_ue, nr_pdcp_entity_t *entity,
rb_found:
rb_found:
{
{
int
offset
=
0
;
int
offset
=
0
;
if
(
entity
->
has_sdap
==
1
&&
entity
->
has_sdapULheader
==
1
)
offset
=
1
;
// this is the offset of the SDAP header in bytes
if
(
entity
->
has_sdap
==
1
&&
entity
->
has_sdapULheader
==
1
)
offset
=
1
;
// this is the offset of the SDAP header in bytes
message_p
=
itti_alloc_new_message_sized
(
TASK_PDCP_ENB
,
0
,
message_p
=
itti_alloc_new_message_sized
(
TASK_PDCP_ENB
,
0
,
GTPV1U_GNB_TUNNEL_DATA_REQ
,
GTPV1U_GNB_TUNNEL_DATA_REQ
,
...
@@ -654,7 +655,9 @@ boolean_t pdcp_data_ind(
...
@@ -654,7 +655,9 @@ boolean_t pdcp_data_ind(
const
MBMS_flag_t
MBMS_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
rb_id_t
rb_id
,
const
rb_id_t
rb_id
,
const
sdu_size_t
sdu_buffer_size
,
const
sdu_size_t
sdu_buffer_size
,
mem_block_t
*
const
sdu_buffer
)
mem_block_t
*
const
sdu_buffer
,
const
uint32_t
*
const
sourceL2Id
,
const
uint32_t
*
const
destinationL2Id
)
{
{
nr_pdcp_ue_t
*
ue
;
nr_pdcp_ue_t
*
ue
;
nr_pdcp_entity_t
*
rb
;
nr_pdcp_entity_t
*
rb
;
...
@@ -1234,10 +1237,8 @@ boolean_t cu_f1u_data_req(
...
@@ -1234,10 +1237,8 @@ boolean_t cu_f1u_data_req(
const
sdu_size_t
sdu_buffer_size
,
const
sdu_size_t
sdu_buffer_size
,
unsigned
char
*
const
sdu_buffer
,
unsigned
char
*
const
sdu_buffer
,
const
pdcp_transmission_mode_t
mode
const
pdcp_transmission_mode_t
mode
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
const
uint32_t
*
const
sourceL2Id
,
const
uint32_t
*
const
sourceL2Id
,
const
uint32_t
*
const
destinationL2Id
,
const
uint32_t
*
const
destinationL2Id
#endif
)
{
)
{
//Force instance id to 0, OAI incoherent instance management
//Force instance id to 0, OAI incoherent instance management
...
@@ -1248,7 +1249,7 @@ boolean_t cu_f1u_data_req(
...
@@ -1248,7 +1249,7 @@ boolean_t cu_f1u_data_req(
exit
(
1
);
exit
(
1
);
}
}
memcpy
(
memblock
->
data
,
sdu_buffer
,
sdu_buffer_size
);
memcpy
(
memblock
->
data
,
sdu_buffer
,
sdu_buffer_size
);
int
ret
=
pdcp_data_ind
(
ctxt_pP
,
srb_flagP
,
false
,
rb_id
,
sdu_buffer_size
,
memblock
);
int
ret
=
pdcp_data_ind
(
ctxt_pP
,
srb_flagP
,
false
,
rb_id
,
sdu_buffer_size
,
memblock
,
NULL
,
NULL
);
if
(
!
ret
)
{
if
(
!
ret
)
{
LOG_E
(
RLC
,
"%s:%d:%s: ERROR: pdcp_data_ind failed
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
LOG_E
(
RLC
,
"%s:%d:%s: ERROR: pdcp_data_ind failed
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
/* what to do in case of failure? for the moment: nothing */
/* what to do in case of failure? for the moment: nothing */
...
@@ -1265,10 +1266,8 @@ boolean_t pdcp_data_req(
...
@@ -1265,10 +1266,8 @@ boolean_t pdcp_data_req(
const
sdu_size_t
sdu_buffer_size
,
const
sdu_size_t
sdu_buffer_size
,
unsigned
char
*
const
sdu_buffer
,
unsigned
char
*
const
sdu_buffer
,
const
pdcp_transmission_mode_t
mode
const
pdcp_transmission_mode_t
mode
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
const
uint32_t
*
const
sourceL2Id
,
const
uint32_t
*
const
sourceL2Id
,
const
uint32_t
*
const
destinationL2Id
,
const
uint32_t
*
const
destinationL2Id
#endif
)
)
{
{
if
(
srb_flagP
)
{
if
(
srb_flagP
)
{
...
...
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
View file @
9b691b3e
...
@@ -344,16 +344,16 @@ rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(
...
@@ -344,16 +344,16 @@ rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(
rlc_op_status_t
rlc_data_req
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
rlc_op_status_t
rlc_data_req
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
srb_flag_t
srb_flagP
,
const
srb_flag_t
srb_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
MBMS_flag_t
MBMS_flagP
,
const
rb_id_t
rb_idP
,
const
rb_id_t
rb_idP
,
const
mui_t
muiP
,
const
mui_t
muiP
,
confirm_t
confirmP
,
confirm_t
confirmP
,
sdu_size_t
sdu_sizeP
,
sdu_size_t
sdu_sizeP
,
mem_block_t
*
sdu_pP
,
mem_block_t
*
sdu_pP
,
const
uint32_t
*
const
sourceL2Id
,
const
uint32_t
*
const
sourceL2Id
,
const
uint32_t
*
const
destinationL2Id
const
uint32_t
*
const
destinationL2Id
)
)
{
{
int
rnti
=
ctxt_pP
->
rnti
;
int
rnti
=
ctxt_pP
->
rnti
;
nr_rlc_ue_t
*
ue
;
nr_rlc_ue_t
*
ue
;
...
@@ -521,7 +521,7 @@ rb_found:
...
@@ -521,7 +521,7 @@ rb_found:
exit
(
1
);
exit
(
1
);
}
}
memcpy
(
memblock
->
data
,
buf
,
size
);
memcpy
(
memblock
->
data
,
buf
,
size
);
if
(
!
pdcp_data_ind
(
&
ctx
,
is_srb
,
0
,
rb_id
,
size
,
memblock
))
{
if
(
!
pdcp_data_ind
(
&
ctx
,
is_srb
,
0
,
rb_id
,
size
,
memblock
,
NULL
,
NULL
))
{
LOG_E
(
RLC
,
"%s:%d:%s: ERROR: pdcp_data_ind failed
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
LOG_E
(
RLC
,
"%s:%d:%s: ERROR: pdcp_data_ind failed
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
/* what to do in case of failure? for the moment: nothing */
/* what to do in case of failure? for the moment: nothing */
}
}
...
...
openair2/SIMULATION/NR_RRC/itti_sim.c
View file @
9b691b3e
...
@@ -400,8 +400,8 @@ statis void init_pdcp(void) {
...
@@ -400,8 +400,8 @@ statis void init_pdcp(void) {
pdcp_module_init
(
pdcp_initmask
);
pdcp_module_init
(
pdcp_initmask
);
pdcp_set_rlc_data_req_func
(
(
send_rlc_data_req_func_t
)
rlc_data_req
);
pdcp_set_rlc_data_req_func
(
rlc_data_req
);
pdcp_set_pdcp_data_ind_func
(
(
pdcp_data_ind_func_t
)
pdcp_data_ind
);
pdcp_set_pdcp_data_ind_func
(
pdcp_data_ind
);
}
}
...
...
openair3/ocp-gtpu/gtp_itf.h
View file @
9b691b3e
#ifndef __GTPUNEW_ITF_H__
#ifndef __GTPUNEW_ITF_H__
#define __GTPUNEW_ITF_H__
#define __GTPUNEW_ITF_H__
#define GTPNOK -1
#define GTPNOK -1
# define GTPU_HEADER_OVERHEAD_MAX 64
# define GTPU_HEADER_OVERHEAD_MAX 64
...
@@ -31,7 +32,7 @@ typedef boolean_t (*gtpCallback)(
...
@@ -31,7 +32,7 @@ typedef boolean_t (*gtpCallback)(
const
pdcp_transmission_mode_t
modeP
,
const
pdcp_transmission_mode_t
modeP
,
const
uint32_t
*
sourceL2Id
,
const
uint32_t
*
sourceL2Id
,
const
uint32_t
*
destinationL2Id
);
const
uint32_t
*
destinationL2Id
);
typedef
struct
openAddr_s
{
typedef
struct
openAddr_s
{
char
originHost
[
HOST_NAME_MAX
];
char
originHost
[
HOST_NAME_MAX
];
char
originService
[
HOST_NAME_MAX
];
char
originService
[
HOST_NAME_MAX
];
...
...
targets/RT/USER/lte-softmodem.c
View file @
9b691b3e
...
@@ -496,13 +496,13 @@ static void init_pdcp(void) {
...
@@ -496,13 +496,13 @@ static void init_pdcp(void) {
pdcp_module_init
(
pdcp_initmask
);
pdcp_module_init
(
pdcp_initmask
);
if
(
NODE_IS_CU
(
RC
.
rrc
[
0
]
->
node_type
))
{
if
(
NODE_IS_CU
(
RC
.
rrc
[
0
]
->
node_type
))
{
pdcp_set_rlc_data_req_func
(
(
send_rlc_data_req_func_t
)
proto_agent_send_rlc_data_req
);
pdcp_set_rlc_data_req_func
(
cu_send_to_du
);
}
else
{
}
else
{
pdcp_set_rlc_data_req_func
(
(
send_rlc_data_req_func_t
)
rlc_data_req
);
pdcp_set_rlc_data_req_func
(
rlc_data_req
);
pdcp_set_pdcp_data_ind_func
(
(
pdcp_data_ind_func_t
)
pdcp_data_ind
);
pdcp_set_pdcp_data_ind_func
(
pdcp_data_ind
);
}
}
}
else
{
}
else
{
pdcp_set_pdcp_data_ind_func
(
(
pdcp_data_ind_func_t
)
proto_agent_send_pdcp_data_ind
);
pdcp_set_pdcp_data_ind_func
(
proto_agent_send_pdcp_data_ind
);
}
}
}
}
...
...
targets/RT/USER/lte-uesoftmodem.c
View file @
9b691b3e
...
@@ -194,7 +194,7 @@ uint8_t abstraction_flag=0;
...
@@ -194,7 +194,7 @@ uint8_t abstraction_flag=0;
// needed for pdcp.c
// needed for pdcp.c
RAN_CONTEXT_t
RC
;
RAN_CONTEXT_t
RC
;
instance_t
CUuniqInstance
=
0
;
/* forward declarations */
/* forward declarations */
void
set_default_frame_parms
(
LTE_DL_FRAME_PARMS
*
frame_parms
[
MAX_NUM_CCs
]);
void
set_default_frame_parms
(
LTE_DL_FRAME_PARMS
*
frame_parms
[
MAX_NUM_CCs
]);
...
@@ -535,8 +535,8 @@ static void init_pdcp(void) {
...
@@ -535,8 +535,8 @@ static void init_pdcp(void) {
pdcp_initmask
=
pdcp_initmask
|
UE_NAS_USE_TUN_BIT
;
pdcp_initmask
=
pdcp_initmask
|
UE_NAS_USE_TUN_BIT
;
pdcp_module_init
(
pdcp_initmask
);
pdcp_module_init
(
pdcp_initmask
);
pdcp_set_rlc_data_req_func
(
(
send_rlc_data_req_func_t
)
rlc_data_req
);
pdcp_set_rlc_data_req_func
(
rlc_data_req
);
pdcp_set_pdcp_data_ind_func
(
(
pdcp_data_ind_func_t
)
pdcp_data_ind
);
pdcp_set_pdcp_data_ind_func
(
pdcp_data_ind
);
}
}
// Stupid function addition because UE itti messages queues definition is common with eNB
// Stupid function addition because UE itti messages queues definition is common with eNB
...
...
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