Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Michael Black
OpenXG UE
Commits
637f2106
Commit
637f2106
authored
Sep 20, 2018
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add F1U proto_agent calls, remove old code
parent
8c473298
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
60 additions
and
120 deletions
+60
-120
common/utils/LOG/log.h
common/utils/LOG/log.h
+0
-5
openair2/F1AP/f1ap_cu_task.c
openair2/F1AP/f1ap_cu_task.c
+12
-0
openair2/F1AP/f1ap_du_task.c
openair2/F1AP/f1ap_du_task.c
+13
-0
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
+32
-17
openair2/LAYER2/RLC/rlc.c
openair2/LAYER2/RLC/rlc.c
+3
-88
openair2/LAYER2/RLC/rlc.h
openair2/LAYER2/RLC/rlc.h
+0
-10
No files found.
common/utils/LOG/log.h
View file @
637f2106
...
...
@@ -524,11 +524,6 @@ static inline void updateTimes(uint64_t start, Meas *M, int period, char * txt)
}
#endif
pthread_mutex_t
async_server_lock
;
pthread_cond_t
async_server_notify
;
int
async_server_shutdown
;
#endif
openair2/F1AP/f1ap_cu_task.c
View file @
637f2106
...
...
@@ -35,6 +35,7 @@
#include "f1ap_cu_interface_management.h"
#include "f1ap_cu_rrc_message_transfer.h"
#include "f1ap_cu_task.h"
#include "proto_agent.h"
extern
RAN_CONTEXT_t
RC
;
...
...
@@ -64,6 +65,17 @@ void cu_task_handle_sctp_association_resp(instance_t instance, sctp_new_associat
f1ap_du_data_from_du
->
assoc_id
=
sctp_new_association_resp
->
assoc_id
;
f1ap_du_data_from_du
->
sctp_in_streams
=
sctp_new_association_resp
->
in_streams
;
f1ap_du_data_from_du
->
sctp_out_streams
=
sctp_new_association_resp
->
out_streams
;
/* setup parameters for F1U and start the server */
const
cudu_params_t
params
=
{
.
local_interface
=
NULL
,
/* is not used */
.
local_ipv4_address
=
RC
.
rrc
[
instance
]
->
eth_params_s
.
my_addr
,
.
local_port
=
RC
.
rrc
[
instance
]
->
eth_params_s
.
my_portd
,
.
remote_ipv4_address
=
RC
.
rrc
[
instance
]
->
eth_params_s
.
remote_addr
,
.
remote_port
=
RC
.
rrc
[
instance
]
->
eth_params_s
.
remote_portd
};
AssertFatal
(
proto_agent_start
(
instance
,
&
params
)
==
0
,
"could not start PROTO_AGENT for F1U on instance %d!
\n
"
,
instance
);
}
void
cu_task_handle_sctp_data_ind
(
instance_t
instance
,
sctp_data_ind_t
*
sctp_data_ind
)
{
...
...
openair2/F1AP/f1ap_du_task.c
View file @
637f2106
...
...
@@ -34,6 +34,9 @@
#include "f1ap_handlers.h"
#include "f1ap_du_interface_management.h"
#include "f1ap_du_task.h"
#include "proto_agent.h"
extern
RAN_CONTEXT_t
RC
;
f1ap_setup_req_t
*
f1ap_du_data
;
...
...
@@ -95,6 +98,16 @@ void du_task_handle_sctp_association_resp(instance_t instance, sctp_new_associat
f1ap_du_data
->
sctp_out_streams
=
sctp_new_association_resp
->
out_streams
;
f1ap_du_data
->
default_sctp_stream_id
=
0
;
/* setup parameters for F1U and start the server */
const
cudu_params_t
params
=
{
.
local_interface
=
NULL
,
/* is not used */
.
local_ipv4_address
=
RC
.
mac
[
instance
]
->
eth_params_n
.
my_addr
,
.
local_port
=
RC
.
mac
[
instance
]
->
eth_params_n
.
my_portd
,
.
remote_ipv4_address
=
RC
.
mac
[
instance
]
->
eth_params_n
.
remote_addr
,
.
remote_port
=
RC
.
mac
[
instance
]
->
eth_params_n
.
remote_portd
};
AssertFatal
(
proto_agent_start
(
instance
,
&
params
)
==
0
,
"could not start PROTO_AGENT for F1U on instance %d!
\n
"
,
instance
);
DU_send_F1_SETUP_REQUEST
(
instance
);
}
...
...
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
View file @
637f2106
...
...
@@ -189,11 +189,23 @@ boolean_t pdcp_data_req(
(
unsigned
char
*
)
&
pdcp_pdu_p
->
data
[
0
],
sdu_buffer_sizeP
);
#endif
rlc_status
=
rlc_data_req
(
ctxt_pP
,
srb_flagP
,
MBMS_FLAG_YES
,
rb_idP
,
muiP
,
confirmP
,
sdu_buffer_sizeP
,
pdcp_pdu_p
if
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
==
ngran_eNB_CU
||
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
==
ngran_ng_eNB_CU
||
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
==
ngran_gNB_CU
)
{
/* currently, there is no support to send also the source/destinationL2Id */
proto_agent_send_rlc_data_req
(
ctxt_pP
,
srb_flagP
,
MBMS_FLAG_NO
,
rb_idP
,
muiP
,
confirmP
,
sdu_buffer_sizeP
,
pdcp_pdu_p
);
/* assume good status */
rlc_status
=
RLC_OP_STATUS_OK
;
}
else
{
rlc_status
=
rlc_data_req
(
ctxt_pP
,
srb_flagP
,
MBMS_FLAG_YES
,
rb_idP
,
muiP
,
confirmP
,
sdu_buffer_sizeP
,
pdcp_pdu_p
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,
NULL
,
NULL
,
NULL
,
NULL
#endif
);
);
}
}
else
{
rlc_status
=
RLC_OP_STATUS_OUT_OF_RESSOURCES
;
LOG_W
(
PDCP
,
PROTOCOL_CTXT_FMT
" PDCP_DATA_REQ SDU DROPPED, OUT OF MEMORY
\n
"
,
...
...
@@ -377,24 +389,27 @@ boolean_t pdcp_data_req(
#ifndef UETARGET
if
((
pdcp_pdu_p
!=
NULL
)
&&
(
srb_flagP
==
0
)
&&
(
ctxt_pP
->
enb_flag
==
1
))
{
if
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
==
ngran_eNB_CU
||
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
==
ngran_ng_eNB_CU
||
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
==
ngran_gNB_CU
)
{
/* currently, there is no support to send also the source/destinationL2Id */
proto_agent_send_rlc_data_req
(
ctxt_pP
,
srb_flagP
,
MBMS_FLAG_NO
,
rb_idP
,
muiP
,
confirmP
,
pdcp_pdu_size
,
pdcp_pdu_p
);
/* assume good status */
rlc_status
=
RLC_OP_STATUS_OK
;
}
else
{
{
LOG_E
(
PDCP
,
"proto_agent_send_rlc_data_req()
\n
"
);
{
//proto_agent_send_rlc_data_req(0,cudu->cu[j].du_type, ctxt_pP, srb_flagP,
//MBMS_FLAG_NO,rb_idP, muiP, confirmP, pdcp_pdu_size, pdcp_pdu_p);
}
//rlc_status = rlc_data_req(ctxt_pP, srb_flagP, MBMS_FLAG_NO, rb_idP, muiP, confirmP, pdcp_pdu_size, pdcp_pdu_p
rlc_status
=
rlc_data_req
(
ctxt_pP
,
srb_flagP
,
MBMS_FLAG_NO
,
rb_idP
,
muiP
,
confirmP
,
pdcp_pdu_size
,
pdcp_pdu_p
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
//
,sourceL2Id
//
,destinationL2Id
,
sourceL2Id
,
destinationL2Id
#endif
//);
}
);
}
/* end if node_type is CU */
free_mem_block
(
pdcp_pdu_p
,
__FUNCTION__
);
rlc_status
=
ack_result
;
free_mem_block
(
pdcp_pdu_p
,
__FUNCTION__
);
rlc_status
=
ack_result
;
}
else
...
...
openair2/LAYER2/RLC/rlc.c
View file @
637f2106
...
...
@@ -54,68 +54,7 @@ extern boolean_t pdcp_data_ind(
#include "rlc_proto_agent_primitives.h"
// PROTO AGENT
#ifndef UETARGET
void
async_server_thread_init
(
void
)
{
//create log_list
//log_list_init(&log_list);
//AssertFatal(0, "this should not be reached!\n");
async_server_shutdown
=
0
;
if
((
pthread_mutex_init
(
&
async_server_lock
,
NULL
)
!=
0
)
||
(
pthread_cond_init
(
&
async_server_notify
,
NULL
)
!=
0
))
{
return
;
}
//if (pthread_create (&async_server_thread, NULL, proto_server_init, (void*) NULL)
// != 0) {
// async_server_thread_finalize();
// return;
//}
}
int
async_server_thread_finalize
(
void
)
{
int
err
=
0
;
if
(
pthread_mutex_lock
(
&
async_server_lock
)
!=
0
)
{
return
-
1
;
}
async_server_shutdown
=
1
;
/* Wake up LOG thread */
if
((
pthread_cond_broadcast
(
&
async_server_notify
)
!=
0
)
||
(
pthread_mutex_unlock
(
&
async_server_lock
)
!=
0
))
{
err
=
-
1
;
}
if
(
pthread_join
(
async_server_thread
,
NULL
)
!=
0
)
{
err
=
-
1
;
}
if
(
pthread_mutex_unlock
(
&
async_server_lock
)
!=
0
)
{
err
=
-
1
;
}
if
(
!
err
)
{
//log_list_free(&log_list);
pthread_mutex_lock
(
&
async_server_lock
);
pthread_mutex_destroy
(
&
async_server_lock
);
pthread_cond_destroy
(
&
async_server_notify
);
}
return
err
;
}
#endif
/*UETARGET*/
#include "proto_agent.h"
//-----------------------------------------------------------------------------
void
rlc_util_print_hex_octets
(
comp_name_t
componentP
,
unsigned
char
*
dataP
,
const
signed
long
sizeP
)
...
...
@@ -680,24 +619,13 @@ void rlc_data_ind (
T
(
T_ENB_RLC_UL
,
T_INT
(
ctxt_pP
->
module_id
),
T_INT
(
ctxt_pP
->
rnti
),
T_INT
(
rb_idP
),
T_INT
(
sdu_sizeP
));
#endif
#ifndef UETARGET
if
(
(
!
srb_flagP
)
&&
(
ctxt_pP
->
enb_flag
==
1
)
)
if
(
ctxt_pP
->
enb_flag
==
1
)
{
proto_agent_send_pdcp_data_ind
(
ctxt_pP
,
srb_flagP
,
MBMS_flagP
,
rb_idP
,
sdu_sizeP
,
sdu_pP
);
}
else
{
switch
(
RC
.
rrc
[
ctxt_pP
->
module_id
]
->
node_type
){
case
ngran_eNB_CU
:
case
ngran_ng_eNB_CU
:
case
ngran_gNB_CU
:
pdcp_data_ind
(
p
roto_agent_send_p
dcp_data_ind
(
ctxt_pP
,
1
,
// srb_flagP,
0
,
// MBMS_flagP,
...
...
@@ -804,19 +732,6 @@ rlc_module_init (void)
pool_buffer_init
();
/*
#ifndef UETARGET
// Launch the RLC listening server
// as a separate thread
static int started = 0;
if (started == 0)
{
async_server_thread_init();
started = 1;
}
#endif
*/
return
(
0
);
}
//-----------------------------------------------------------------------------
...
...
openair2/LAYER2/RLC/rlc.h
View file @
637f2106
...
...
@@ -682,14 +682,4 @@ int rlc_module_init(void);
#define RLC_REVERSE_VIDEO "\e[7m"
#define RLC_NORMAL_VIDEO "\e[27m"
// PROTO AGENT
pthread_t
async_server_thread
;
int
async_server_thread_finalize
(
void
);
void
async_server_thread_init
(
void
);
#endif
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