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
spbro
OpenXG-RAN
Commits
dbe23abc
Commit
dbe23abc
authored
Oct 13, 2021
by
Melissa Elkadi
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/episys/master-nsa' into eurecom-episys-merge-nsa
parents
966a4d1d
2800fbe0
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
121 additions
and
92 deletions
+121
-92
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+12
-3
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.c
+0
-1
nfapi/oai_integration/gnb_ind_vars.c
nfapi/oai_integration/gnb_ind_vars.c
+7
-0
nfapi/oai_integration/gnb_ind_vars.h
nfapi/oai_integration/gnb_ind_vars.h
+9
-0
nfapi/oai_integration/nfapi_vnf.c
nfapi/oai_integration/nfapi_vnf.c
+1
-6
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
+1
-5
openair2/PHY_INTERFACE/queue.c
openair2/PHY_INTERFACE/queue.c
+1
-1
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+1
-76
openair2/RRC/NR_UE/rrc_nsa.c
openair2/RRC/NR_UE/rrc_nsa.c
+85
-0
openair2/RRC/NR_UE/rrc_proto.h
openair2/RRC/NR_UE/rrc_proto.h
+4
-0
No files found.
cmake_targets/CMakeLists.txt
View file @
dbe23abc
...
...
@@ -1539,6 +1539,7 @@ set(NFAPI_USER_SRC
${
NFAPI_USER_DIR
}
/nfapi.c
${
NFAPI_USER_DIR
}
/nfapi_pnf.c
${
NFAPI_USER_DIR
}
/nfapi_vnf.c
${
NFAPI_USER_DIR
}
/gnb_ind_vars.c
)
add_library
(
NFAPI_USER_LIB
${
NFAPI_USER_SRC
}
)
add_dependencies
(
NFAPI_USER_LIB rrc_flag
)
...
...
@@ -2068,6 +2069,7 @@ set(NR_L2_SRC_UE
${
NR_UE_RRC_DIR
}
/L2_interface_ue.c
${
NR_UE_RRC_DIR
}
/main_ue.c
${
NR_UE_RRC_DIR
}
/rrc_UE.c
${
NR_UE_RRC_DIR
}
/rrc_nsa.c
)
set
(
MAC_SRC
...
...
@@ -3282,14 +3284,16 @@ add_executable(nr_dlsim
${
OPENAIR_DIR
}
/executables/softmodem-common.c
${
OPENAIR2_DIR
}
/RRC/NAS/nas_config.c
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/netlink_init.c
${
NR_UE_RRC_DIR
}
/rrc_nsa.c
${
NFAPI_USER_DIR
}
/nfapi.c
${
OPENAIR_DIR
}
/common/utils/threadPool/thread-pool.c
${
PHY_INTERFACE_DIR
}
/queue.c
${
UTIL_SRC
}
${
T_SOURCE
}
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
nr_dlsim
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON RRC_LIB NR_RRC_LIB CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE X2AP_ENB X2AP_LIB SECU_CN NGAP_GNB -Wl,--end-group
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON RRC_LIB NR_RRC_LIB CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE X2AP_ENB X2AP_LIB SECU_CN NGAP_GNB
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -lz
-Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
${
T_LIB
}
ITTI
${
OPENSSL_LIBRARIES
}
dl
)
target_compile_definitions
(
nr_dlsim PUBLIC -DPHYSICAL_SIMULATOR
)
...
...
@@ -3302,13 +3306,15 @@ add_executable(nr_prachsim
${
OPENAIR1_DIR
}
/SCHED_NR/phy_procedures_nr_common.c
${
OPENAIR2_DIR
}
/RRC/NAS/nas_config.c
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/netlink_init.c
${
NR_UE_RRC_DIR
}
/rrc_nsa.c
${
NFAPI_USER_DIR
}
/nfapi.c
${
OPENAIR_DIR
}
/common/utils/threadPool/thread-pool.c
${
PHY_INTERFACE_DIR
}
/queue.c
${
UTIL_SRC
}
${
T_SOURCE
}
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
nr_prachsim
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_RU PHY_NR_UE MAC_NR_COMMON SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON RRC_LIB NR_RRC_LIB CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE X2AP_ENB X2AP_LIB SECU_CN NGAP_GNB -Wl,--end-group
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_RU PHY_NR_UE MAC_NR_COMMON SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON RRC_LIB NR_RRC_LIB CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE X2AP_ENB X2AP_LIB SECU_CN NGAP_GNB
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -lz
-Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
${
T_LIB
}
ITTI
${
OPENSSL_LIBRARIES
}
dl
)
add_executable
(
nr_ulschsim
...
...
@@ -3317,6 +3323,7 @@ add_executable(nr_ulschsim
${
OPENAIR_DIR
}
/common/utils/utils.c
${
OPENAIR_DIR
}
/common/utils/system.c
${
OPENAIR_DIR
}
/common/utils/nr/nr_common.c
${
PHY_INTERFACE_DIR
}
/queue.c
${
UTIL_SRC
}
${
T_SOURCE
}
${
SHLIB_LOADER_SOURCES
}
...
...
@@ -3335,13 +3342,15 @@ add_executable(nr_ulsim
${
OPENAIR_DIR
}
/executables/softmodem-common.c
${
OPENAIR2_DIR
}
/RRC/NAS/nas_config.c
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/netlink_init.c
${
NR_UE_RRC_DIR
}
/rrc_nsa.c
${
NFAPI_USER_DIR
}
/nfapi.c
${
PHY_INTERFACE_DIR
}
/queue.c
${
UTIL_SRC
}
${
T_SOURCE
}
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
nr_ulsim
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON RRC_LIB NR_RRC_LIB CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE X2AP_ENB X2AP_LIB SECU_CN NGAP_GNB -Wl,--end-group
-Wl,--start-group UTIL SIMU_COMMON SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON RRC_LIB NR_RRC_LIB CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE X2AP_ENB X2AP_LIB SECU_CN NGAP_GNB
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -lz
-Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
${
T_LIB
}
ITTI
${
OPENSSL_LIBRARIES
}
dl
)
target_compile_definitions
(
nr_ulsim PUBLIC -DPHYSICAL_SIMULATOR
)
...
...
executables/nr-uesoftmodem.c
View file @
dbe23abc
...
...
@@ -159,7 +159,6 @@ char uecap_xer[1024];
*/
uint8_t
abstraction_flag
=
0
;
uint16_t
ue_id_g
;
uint16_t
ue_idx_standalone
=
0xFFFF
;
/*---------------------BMC: timespec helpers -----------------------------*/
...
...
nfapi/oai_integration/gnb_ind_vars.c
0 → 100644
View file @
dbe23abc
#include "gnb_ind_vars.h"
queue_t
gnb_rach_ind_queue
;
queue_t
gnb_rx_ind_queue
;
queue_t
gnb_crc_ind_queue
;
queue_t
gnb_uci_ind_queue
;
queue_t
gnb_slot_ind_queue
;
nfapi/oai_integration/gnb_ind_vars.h
0 → 100644
View file @
dbe23abc
#pragma once
#include "openair2/PHY_INTERFACE/queue.h"
extern
queue_t
gnb_rach_ind_queue
;
extern
queue_t
gnb_rx_ind_queue
;
extern
queue_t
gnb_crc_ind_queue
;
extern
queue_t
gnb_uci_ind_queue
;
extern
queue_t
gnb_slot_ind_queue
;
nfapi/oai_integration/nfapi_vnf.c
View file @
dbe23abc
...
...
@@ -44,6 +44,7 @@
#include "common/ran_context.h"
#include "openair2/PHY_INTERFACE/queue.h"
#include "gnb_ind_vars.h"
#define TEST
...
...
@@ -172,12 +173,6 @@ typedef struct {
}
vnf_info
;
queue_t
gnb_rach_ind_queue
;
queue_t
gnb_rx_ind_queue
;
queue_t
gnb_crc_ind_queue
;
queue_t
gnb_uci_ind_queue
;
queue_t
gnb_slot_ind_queue
;
int
vnf_pack_vendor_extension_tlv
(
void
*
ve
,
uint8_t
**
ppWritePackedMsg
,
uint8_t
*
end
,
nfapi_p4_p5_codec_config_t
*
codec
)
{
//NFAPI_TRACE(NFAPI_TRACE_INFO, "vnf_pack_vendor_extension_tlv\n");
nfapi_tl_t
*
tlv
=
(
nfapi_tl_t
*
)
ve
;
...
...
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
View file @
dbe23abc
...
...
@@ -37,6 +37,7 @@
#include "common/ran_context.h"
#include "executables/softmodem-common.h"
#include "nfapi/oai_integration/vendor_ext.h"
#include "nfapi/oai_integration/gnb_ind_vars.h"
#include "openair2/PHY_INTERFACE/queue.h"
#define MAX_IF_MODULES 100
...
...
@@ -59,11 +60,6 @@ extern uint8_t nfapi_mode;
extern
uint16_t
sf_ahead
;
extern
uint16_t
sl_ahead
;
extern
queue_t
gnb_rach_ind_queue
;
extern
queue_t
gnb_rx_ind_queue
;
extern
queue_t
gnb_crc_ind_queue
;
extern
queue_t
gnb_uci_ind_queue
;
void
handle_nr_rach
(
NR_UL_IND_t
*
UL_info
)
{
...
...
openair2/PHY_INTERFACE/queue.c
View file @
dbe23abc
...
...
@@ -165,4 +165,4 @@ void *unqueue_matching(queue_t *q, size_t max_depth, queue_matcher_t *matcher, v
pthread_mutex_unlock
(
&
q
->
mutex
);
return
item
;
}
\ No newline at end of file
}
openair2/RRC/NR_UE/rrc_UE.c
View file @
dbe23abc
...
...
@@ -129,10 +129,6 @@ nr_rrc_ue_generate_rrcReestablishmentComplete(
mui_t
nr_rrc_mui
=
0
;
static
const
char
nsa_ipaddr
[]
=
"127.0.0.1"
;
static
int
from_lte_ue_fd
=
-
1
;
static
int
to_lte_ue_fd
=
-
1
;
static
Rrc_State_NR_t
nr_rrc_get_state
(
module_id_t
ue_mod_idP
)
{
return
NR_UE_rrc_inst
[
ue_mod_idP
].
nrRrcState
;
}
...
...
@@ -205,7 +201,6 @@ extern rlc_op_status_t nr_rrc_rlc_config_asn1_req (const protocol_ctxt_t * con
const
LTE_PMCH_InfoList_r9_t
*
const
pmch_InfoList_r9_pP
,
struct
NR_CellGroupConfig__rlc_BearerToAddModList
*
rlc_bearer2add_list
);
static
void
process_lte_nsa_msg
(
nsa_msg_t
*
msg
,
int
msg_len
);
static
void
start_oai_nrue_threads
(
void
);
// from LTE-RRC DL-DCCH RRCConnectionReconfiguration nr-secondary-cell-group-config (encoded)
...
...
@@ -2722,6 +2717,7 @@ nr_rrc_ue_generate_rrcReestablishmentComplete(
void
*
recv_msgs_from_lte_ue
(
void
*
args_p
)
{
itti_mark_task_ready
(
TASK_RRC_NSA_NRUE
);
int
from_lte_ue_fd
=
get_from_lte_ue_fd
();
for
(;;)
{
nsa_msg_t
msg
;
...
...
@@ -2741,77 +2737,6 @@ void *recv_msgs_from_lte_ue(void *args_p)
}
return
NULL
;
}
void
nsa_sendmsg_to_lte_ue
(
const
void
*
message
,
size_t
msg_len
,
MessagesIds
msg_type
)
{
LOG_I
(
NR_RRC
,
"Entered %s
\n
"
,
__FUNCTION__
);
nsa_msg_t
n_msg
;
if
(
msg_len
>
sizeof
(
n_msg
.
msg_buffer
))
{
LOG_E
(
NR_RRC
,
"%s: message too big: %zu
\n
"
,
__func__
,
msg_len
);
abort
();
}
n_msg
.
msg_type
=
msg_type
;
memcpy
(
n_msg
.
msg_buffer
,
message
,
msg_len
);
size_t
to_send
=
sizeof
(
n_msg
.
msg_type
)
+
msg_len
;
struct
sockaddr_in
sa
=
{
.
sin_family
=
AF_INET
,
.
sin_port
=
htons
(
6007
+
ue_id_g
*
2
),
};
int
sent
=
sendto
(
from_lte_ue_fd
,
&
n_msg
,
to_send
,
0
,
(
struct
sockaddr
*
)
&
sa
,
sizeof
(
sa
));
if
(
sent
==
-
1
)
{
LOG_E
(
NR_RRC
,
"%s: sendto: %s
\n
"
,
__func__
,
strerror
(
errno
));
return
;
}
if
(
sent
!=
to_send
)
{
LOG_E
(
RRC
,
"%s: Short send %d != %zu
\n
"
,
__func__
,
sent
,
to_send
);
return
;
}
LOG_D
(
NR_RRC
,
"Sent a %d message to the LTE UE (%d bytes)
\n
"
,
msg_type
,
sent
);
}
void
init_connections_with_lte_ue
(
void
)
{
struct
sockaddr_in
sa
=
{
.
sin_family
=
AF_INET
,
.
sin_port
=
htons
(
6008
+
ue_id_g
*
2
),
};
AssertFatal
(
from_lte_ue_fd
==
-
1
,
"from_lte_ue_fd %d was assigned already"
,
from_lte_ue_fd
);
from_lte_ue_fd
=
socket
(
AF_INET
,
SOCK_DGRAM
,
0
);
if
(
from_lte_ue_fd
==
-
1
)
{
LOG_E
(
NR_RRC
,
"%s: Error opening socket %d (%d:%s)
\n
"
,
__FUNCTION__
,
from_lte_ue_fd
,
errno
,
strerror
(
errno
));
abort
();
}
if
(
inet_aton
(
nsa_ipaddr
,
&
sa
.
sin_addr
)
==
0
)
{
LOG_E
(
NR_RRC
,
"Bad nsa_ipaddr '%s'
\n
"
,
nsa_ipaddr
);
abort
();
}
if
(
bind
(
from_lte_ue_fd
,
(
struct
sockaddr
*
)
&
sa
,
sizeof
(
sa
))
==
-
1
)
{
LOG_E
(
NR_RRC
,
"%s: Failed to bind the socket
\n
"
,
__FUNCTION__
);
abort
();
}
AssertFatal
(
to_lte_ue_fd
==
-
1
,
"to_lte_ue_fd was assigned already"
);
to_lte_ue_fd
=
socket
(
AF_INET
,
SOCK_DGRAM
,
0
);
if
(
to_lte_ue_fd
==
-
1
)
{
LOG_E
(
NR_RRC
,
"%s: Error opening socket %d (%d:%s)
\n
"
,
__FUNCTION__
,
to_lte_ue_fd
,
errno
,
strerror
(
errno
));
abort
();
}
LOG_I
(
NR_RRC
,
"Started LTE-NR link in the nr-UE
\n
"
);
}
static
void
start_oai_nrue_threads
()
{
init_queue
(
&
nr_rach_ind_queue
);
...
...
openair2/RRC/NR_UE/rrc_nsa.c
0 → 100644
View file @
dbe23abc
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include "common/utils/LOG/log.h"
#include "openair2/RRC/NR_UE/rrc_proto.h"
static
const
char
nsa_ipaddr
[]
=
"127.0.0.1"
;
static
int
from_lte_ue_fd
=
-
1
;
static
int
to_lte_ue_fd
=
-
1
;
uint16_t
ue_id_g
;
int
get_from_lte_ue_fd
()
{
return
from_lte_ue_fd
;
}
void
nsa_sendmsg_to_lte_ue
(
const
void
*
message
,
size_t
msg_len
,
MessagesIds
msg_type
)
{
LOG_I
(
NR_RRC
,
"Entered %s
\n
"
,
__FUNCTION__
);
nsa_msg_t
n_msg
;
if
(
msg_len
>
sizeof
(
n_msg
.
msg_buffer
))
{
LOG_E
(
NR_RRC
,
"%s: message too big: %zu
\n
"
,
__func__
,
msg_len
);
abort
();
}
n_msg
.
msg_type
=
msg_type
;
memcpy
(
n_msg
.
msg_buffer
,
message
,
msg_len
);
size_t
to_send
=
sizeof
(
n_msg
.
msg_type
)
+
msg_len
;
struct
sockaddr_in
sa
=
{
.
sin_family
=
AF_INET
,
.
sin_port
=
htons
(
6007
+
ue_id_g
*
2
),
};
int
sent
=
sendto
(
from_lte_ue_fd
,
&
n_msg
,
to_send
,
0
,
(
struct
sockaddr
*
)
&
sa
,
sizeof
(
sa
));
if
(
sent
==
-
1
)
{
LOG_E
(
NR_RRC
,
"%s: sendto: %s
\n
"
,
__func__
,
strerror
(
errno
));
return
;
}
if
(
sent
!=
to_send
)
{
LOG_E
(
NR_RRC
,
"%s: Short send %d != %zu
\n
"
,
__func__
,
sent
,
to_send
);
return
;
}
LOG_D
(
NR_RRC
,
"Sent a %d message to the LTE UE (%d bytes)
\n
"
,
msg_type
,
sent
);
}
void
init_connections_with_lte_ue
(
void
)
{
struct
sockaddr_in
sa
=
{
.
sin_family
=
AF_INET
,
.
sin_port
=
htons
(
6008
+
ue_id_g
*
2
),
};
AssertFatal
(
from_lte_ue_fd
==
-
1
,
"from_lte_ue_fd %d was assigned already"
,
from_lte_ue_fd
);
from_lte_ue_fd
=
socket
(
AF_INET
,
SOCK_DGRAM
,
0
);
if
(
from_lte_ue_fd
==
-
1
)
{
LOG_E
(
NR_RRC
,
"%s: Error opening socket %d (%d:%s)
\n
"
,
__FUNCTION__
,
from_lte_ue_fd
,
errno
,
strerror
(
errno
));
abort
();
}
if
(
inet_aton
(
nsa_ipaddr
,
&
sa
.
sin_addr
)
==
0
)
{
LOG_E
(
NR_RRC
,
"Bad nsa_ipaddr '%s'
\n
"
,
nsa_ipaddr
);
abort
();
}
if
(
bind
(
from_lte_ue_fd
,
(
struct
sockaddr
*
)
&
sa
,
sizeof
(
sa
))
==
-
1
)
{
LOG_E
(
NR_RRC
,
"%s: Failed to bind the socket
\n
"
,
__FUNCTION__
);
abort
();
}
AssertFatal
(
to_lte_ue_fd
==
-
1
,
"to_lte_ue_fd was assigned already"
);
to_lte_ue_fd
=
socket
(
AF_INET
,
SOCK_DGRAM
,
0
);
if
(
to_lte_ue_fd
==
-
1
)
{
LOG_E
(
NR_RRC
,
"%s: Error opening socket %d (%d:%s)
\n
"
,
__FUNCTION__
,
to_lte_ue_fd
,
errno
,
strerror
(
errno
));
abort
();
}
LOG_I
(
NR_RRC
,
"Started LTE-NR link in the nr-UE
\n
"
);
}
openair2/RRC/NR_UE/rrc_proto.h
View file @
dbe23abc
...
...
@@ -168,6 +168,10 @@ void nsa_sendmsg_to_lte_ue(const void *message, size_t msg_len, MessagesIds msg_
\param gNB_index gNB index */
void
nr_rrc_ue_generate_RRCSetupRequest
(
module_id_t
module_id
,
const
uint8_t
gNB_index
);
void
process_lte_nsa_msg
(
nsa_msg_t
*
msg
,
int
msg_len
);
int
get_from_lte_ue_fd
();
/** @}*/
#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