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
ddca335b
Commit
ddca335b
authored
Jul 07, 2020
by
Andrew Burger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
New address port setup
parent
3936ceaa
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
103 additions
and
45 deletions
+103
-45
ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf
ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf
+2
-2
ci-scripts/conf_files/ue.nfapi.conf
ci-scripts/conf_files/ue.nfapi.conf
+2
-2
nfapi/oai_integration/nfapi_vnf.c
nfapi/oai_integration/nfapi_vnf.c
+21
-3
openair2/PHY_INTERFACE/phy_stub_UE.c
openair2/PHY_INTERFACE/phy_stub_UE.c
+73
-34
openair2/PHY_INTERFACE/phy_stub_UE.h
openair2/PHY_INTERFACE/phy_stub_UE.h
+1
-1
targets/RT/USER/lte-ue.c
targets/RT/USER/lte-ue.c
+4
-3
No files found.
ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf
View file @
ddca335b
...
...
@@ -230,9 +230,9 @@ log_config =
global_log_verbosity
=
"medium"
;
hw_log_level
=
"info"
;
hw_log_verbosity
=
"medium"
;
phy_log_level
=
"
debug
"
;
phy_log_level
=
"
info
"
;
phy_log_verbosity
=
"medium"
;
mac_log_level
=
"
debug
"
;
mac_log_level
=
"
info
"
;
mac_log_verbosity
=
"high"
;
rlc_log_level
=
"info"
;
rlc_log_verbosity
=
"medium"
;
...
...
ci-scripts/conf_files/ue.nfapi.conf
View file @
ddca335b
...
...
@@ -3,9 +3,9 @@ log_config = {
global_log_verbosity
=
"medium"
;
hw_log_level
=
"info"
;
hw_log_verbosity
=
"medium"
;
phy_log_level
=
"
debug
"
;
phy_log_level
=
"
info
"
;
phy_log_verbosity
=
"medium"
;
mac_log_level
=
"
debug
"
;
mac_log_level
=
"
info
"
;
mac_log_verbosity
=
"medium"
;
rlc_log_level
=
"info"
;
rlc_log_verbosity
=
"medium"
;
...
...
nfapi/oai_integration/nfapi_vnf.c
View file @
ddca335b
...
...
@@ -166,6 +166,9 @@ typedef struct {
}
vnf_info
;
bool
is_rx
=
false
;
bool
is_crc
=
false
;
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
;
...
...
@@ -406,10 +409,21 @@ int phy_subframe_indication(struct nfapi_vnf_p7_config *config, uint16_t phy_id,
first_time
=
0
;
}
if
(
UL_RCC_INFO
.
rx_ind
->
sfn_sf
!=
0
&&
!
is_rx
)
{
LOG_E
(
MAC
,
"Test1 phy_subframe_ind sfn_sf: %u rx_ind sfn_sf: %u
\n
"
,
sfn_sf
,
UL_RCC_INFO
.
rx_ind
->
sfn_sf
);
is_rx
=
true
;
}
if
(
UL_RCC_INFO
.
crc_ind
->
sfn_sf
!=
0
&&
!
is_crc
)
{
LOG_E
(
MAC
,
"Test1 phy_subframe_ind sfn_sf: %u crc_ind sfn_sf: %u
\n
"
,
sfn_sf
,
UL_RCC_INFO
.
crc_ind
->
sfn_sf
);
is_crc
=
true
;
}
if
(
RC
.
eNB
&&
RC
.
eNB
[
0
][
0
]
->
configured
)
{
uint16_t
sfn
=
NFAPI_SFNSF2SFN
(
sfn_sf
);
uint16_t
sf
=
NFAPI_SFNSF2SF
(
sfn_sf
);
//
LOG_D(PHY,"[VNF] subframe indication sfn_sf:%d sfn:%d sf:%d\n", sfn_sf, sfn, sf);
LOG_D
(
PHY
,
"[VNF] subframe indication sfn_sf:%d sfn:%d sf:%d
\n
"
,
sfn_sf
,
sfn
,
sf
);
wake_eNB_rxtx
(
RC
.
eNB
[
0
][
0
],
sfn
,
sf
);
}
else
{
printf
(
"[VNF] %s() RC.eNB:%p
\n
"
,
__FUNCTION__
,
RC
.
eNB
);
...
...
@@ -491,6 +505,7 @@ int phy_rach_indication(struct nfapi_vnf_p7_config *config, nfapi_rach_indicatio
int
phy_harq_indication
(
struct
nfapi_vnf_p7_config
*
config
,
nfapi_harq_indication_t
*
ind
)
{
struct
PHY_VARS_eNB_s
*
eNB
=
RC
.
eNB
[
0
][
0
];
LOG_D
(
MAC
,
"%s() NFAPI SFN/SF:%d number_of_harqs:%u
\n
"
,
__FUNCTION__
,
NFAPI_SFNSF2DEC
(
ind
->
sfn_sf
),
ind
->
harq_indication_body
.
number_of_harqs
);
LOG_E
(
MAC
,
"%s entered
\n
"
,
__func__
);
pthread_mutex_lock
(
&
eNB
->
UL_INFO_mutex
);
if
(
NFAPI_MODE
==
NFAPI_MODE_VNF
){
int8_t
index
=
-
1
;
...
...
@@ -529,7 +544,8 @@ int phy_crc_indication(struct nfapi_vnf_p7_config *config, nfapi_crc_indication_
struct
PHY_VARS_eNB_s
*
eNB
=
RC
.
eNB
[
0
][
0
];
pthread_mutex_lock
(
&
eNB
->
UL_INFO_mutex
);
LOG_E
(
MAC
,
"%s entered
\n
"
,
__func__
);
LOG_E
(
MAC
,
"%s entered sfn: %u sf: %u
\n
"
,
__func__
,
NFAPI_SFNSF2SFN
(
ind
->
sfn_sf
),
NFAPI_SFNSF2SF
(
ind
->
sfn_sf
));
if
(
NFAPI_MODE
==
NFAPI_MODE_VNF
){
int8_t
index
=
-
1
;
...
...
@@ -595,7 +611,8 @@ int phy_rx_indication(struct nfapi_vnf_p7_config *config, nfapi_rx_indication_t
LOG_D
(
MAC
,
"%s() NFAPI SFN/SF:%d number_of_pdus:%u
\n
"
,
__FUNCTION__
,
NFAPI_SFNSF2DEC
(
ind
->
sfn_sf
),
ind
->
rx_indication_body
.
number_of_pdus
);
}
LOG_E
(
MAC
,
"%s entered
\n
"
,
__func__
);
LOG_E
(
MAC
,
"%s entered sfn: %u sf: %u
\n
"
,
__func__
,
NFAPI_SFNSF2SFN
(
ind
->
sfn_sf
),
NFAPI_SFNSF2SF
(
ind
->
sfn_sf
));
pthread_mutex_lock
(
&
eNB
->
UL_INFO_mutex
);
if
(
NFAPI_MODE
==
NFAPI_MODE_VNF
){
int8_t
index
=
-
1
;
...
...
@@ -733,6 +750,7 @@ int phy_cqi_indication(struct nfapi_vnf_p7_config *config, nfapi_cqi_indication_
//mac_cqi_ind(p7_vnf->mac, ind);
struct
PHY_VARS_eNB_s
*
eNB
=
RC
.
eNB
[
0
][
0
];
LOG_D
(
MAC
,
"%s() NFAPI SFN/SF:%d number_of_cqis:%u
\n
"
,
__FUNCTION__
,
NFAPI_SFNSF2DEC
(
ind
->
sfn_sf
),
ind
->
cqi_indication_body
.
number_of_cqis
);
LOG_E
(
MAC
,
"%s entered
\n
"
,
__func__
);
pthread_mutex_lock
(
&
eNB
->
UL_INFO_mutex
);
if
(
NFAPI_MODE
==
NFAPI_MODE_VNF
){
int8_t
index
=
-
1
;
...
...
openair2/PHY_INTERFACE/phy_stub_UE.c
View file @
ddca335b
...
...
@@ -50,8 +50,8 @@ queue_t hi_dci0_req_queue;
int
current_sfn_sf
;
static
int
ue_sock_descriptor
=
-
1
;
st
ruct
sockaddr_in
server_address
;
static
int
ue_
tx_
sock_descriptor
=
-
1
;
st
atic
int
ue_rx_sock_descriptor
=
-
1
;
extern
nfapi_tx_request_pdu_t
*
tx_request_pdu
[
1023
][
10
][
10
];
//extern int timer_subframe;
...
...
@@ -1115,42 +1115,81 @@ void UE_config_stub_pnf(void) {
}
}
void
ue_init_standalone_socket
(
const
char
*
addr
,
int
port
)
void
ue_init_standalone_socket
(
const
char
*
addr
,
int
tx_port
,
int
rx_
port
)
{
int
addr_len
=
sizeof
(
server_address
);
memset
(
&
server_address
,
0
,
addr_len
);
server_address
.
sin_family
=
AF_INET
;
server_address
.
sin_port
=
htons
(
port
);
{
struct
sockaddr_in
server_address
;
int
addr_len
=
sizeof
(
server_address
);
memset
(
&
server_address
,
0
,
addr_len
);
server_address
.
sin_family
=
AF_INET
;
server_address
.
sin_port
=
htons
(
tx_port
);
int
sd
=
socket
(
server_address
.
sin_family
,
SOCK_DGRAM
,
0
);
if
(
sd
<
0
)
{
LOG_E
(
MAC
,
"Socket creation error standalone PNF
\n
"
);
return
;
}
int
sd
=
socket
(
server_address
.
sin_family
,
SOCK_DGRAM
,
0
);
if
(
sd
<
0
)
{
LOG_E
(
MAC
,
"Socket creation error standalone PNF
\n
"
);
return
;
}
if
(
inet_pton
(
server_address
.
sin_family
,
addr
,
&
server_address
.
sin_addr
)
<=
0
)
{
LOG_E
(
MAC
,
"Invalid standalone PNF Address
\n
"
);
close
(
sd
);
return
;
}
if
(
inet_pton
(
server_address
.
sin_family
,
addr
,
&
server_address
.
sin_addr
)
<=
0
)
{
LOG_E
(
MAC
,
"Invalid standalone PNF Address
\n
"
);
close
(
sd
);
return
;
// Using connect to use send() instead of sendto()
if
(
connect
(
sd
,
(
struct
sockaddr
*
)
&
server_address
,
addr_len
)
<
0
)
{
LOG_E
(
MAC
,
"Connection to standalone PNF failed: %s
\n
"
,
strerror
(
errno
));
close
(
sd
);
return
;
}
LOG_I
(
MAC
,
"Succeeded Now
\n
"
);
assert
(
ue_tx_sock_descriptor
==
-
1
);
ue_tx_sock_descriptor
=
sd
;
}
// Using connect to use send() instead of sendto()
while
(
connect
(
sd
,
(
struct
sockaddr
*
)
&
server_address
,
addr_len
)
<
0
)
{
LOG_E
(
MAC
,
"Connection to standalone PNF failed: %s
\n
"
,
strerror
(
errno
));
sleep
(
1
);
{
struct
sockaddr_in
server_address
;
int
addr_len
=
sizeof
(
server_address
);
memset
(
&
server_address
,
0
,
addr_len
);
server_address
.
sin_family
=
AF_INET
;
server_address
.
sin_port
=
htons
(
rx_port
);
int
sd
=
socket
(
server_address
.
sin_family
,
SOCK_DGRAM
,
0
);
if
(
sd
<
0
)
{
LOG_E
(
MAC
,
"Socket creation error standalone PNF
\n
"
);
return
;
}
if
(
inet_pton
(
server_address
.
sin_family
,
addr
,
&
server_address
.
sin_addr
)
<=
0
)
{
LOG_E
(
MAC
,
"Invalid standalone PNF Address
\n
"
);
close
(
sd
);
return
;
}
if
(
connect
(
sd
,
(
struct
sockaddr
*
)
&
server_address
,
addr_len
)
<
0
)
{
LOG_E
(
MAC
,
"Connection to standalone PNF failed: %s
\n
"
,
strerror
(
errno
));
close
(
sd
);
return
;
}
LOG_I
(
MAC
,
"Succeeded Now
\n
"
);
assert
(
ue_rx_sock_descriptor
==
-
1
);
ue_rx_sock_descriptor
=
sd
;
}
LOG_I
(
MAC
,
"Succeeded Now
\n
"
);
assert
(
ue_sock_descriptor
==
-
1
);
ue_sock_descriptor
=
sd
;
}
void
*
ue_standalone_pnf_task
(
void
*
context
)
{
struct
sockaddr_in
server_address
;
int
addr_len
=
sizeof
(
server_address
);
char
buffer
[
1024
];
int
sd
=
ue_sock_descriptor
;
int
sd
=
ue_
rx_
sock_descriptor
;
assert
(
sd
>
0
);
while
(
true
)
{
...
...
@@ -1282,27 +1321,27 @@ const char *hexdump(const void *data, size_t data_len, char *out, size_t out_len
{
case
NFAPI_RACH_INDICATION
:
encoded_size
=
nfapi_p7_message_pack
(
&
UL
->
rach_ind
,
buffer
,
sizeof
(
buffer
),
NULL
);
LOG_
D
(
MAC
,
"RACH_IND sent to Proxy, Size: %d
\n
"
,
encoded_size
);
LOG_
E
(
MAC
,
"RACH_IND sent to Proxy, Size: %d
\n
"
,
encoded_size
);
break
;
case
NFAPI_CRC_INDICATION
:
encoded_size
=
nfapi_p7_message_pack
(
&
UL
->
crc_ind
,
buffer
,
sizeof
(
buffer
),
NULL
);
LOG_
D
(
MAC
,
"CRC_IND sent to Proxy, Size: %d
\n
"
,
encoded_size
);
LOG_
E
(
MAC
,
"CRC_IND sent to Proxy, Size: %d
\n
"
,
encoded_size
);
break
;
case
NFAPI_RX_ULSCH_INDICATION
:
// is this the right nfapi message_id? Ask Raymond
encoded_size
=
nfapi_p7_message_pack
(
&
UL
->
rx_ind
,
buffer
,
sizeof
(
buffer
),
NULL
);
LOG_
D
(
MAC
,
"RX_IND sent to Proxy, Size: %d
\n
"
,
encoded_size
);
LOG_
E
(
MAC
,
"RX_IND sent to Proxy, Size: %d
\n
"
,
encoded_size
);
break
;
case
NFAPI_RX_CQI_INDICATION
:
// is this the right nfapi message_id? Ask Raymond
encoded_size
=
nfapi_p7_message_pack
(
&
UL
->
cqi_ind
,
buffer
,
sizeof
(
buffer
),
NULL
);
LOG_
D
(
MAC
,
"CQI_IND sent to Proxy, Size: %d
\n
"
,
encoded_size
);
LOG_
E
(
MAC
,
"CQI_IND sent to Proxy, Size: %d
\n
"
,
encoded_size
);
break
;
case
NFAPI_HARQ_INDICATION
:
LOG_
D
(
MAC
,
"HARQ_IND sent to Proxy, Size: %d
\n
"
,
encoded_size
);
LOG_
E
(
MAC
,
"HARQ_IND sent to Proxy, Size: %d
\n
"
,
encoded_size
);
encoded_size
=
nfapi_p7_message_pack
(
&
UL
->
harq_ind
,
buffer
,
sizeof
(
buffer
),
NULL
);
break
;
case
NFAPI_RX_SR_INDICATION
:
// is this the right nfapi message_id? Ask Raymond
encoded_size
=
nfapi_p7_message_pack
(
&
UL
->
sr_ind
,
buffer
,
sizeof
(
buffer
),
NULL
);
LOG_
D
(
MAC
,
"SR_IND sent to Proxy, Size: %d
\n
"
,
encoded_size
);
LOG_
E
(
MAC
,
"SR_IND sent to Proxy, Size: %d
\n
"
,
encoded_size
);
break
;
default:
LOG_E
(
MAC
,
"%s Unknown Message msg_type :: %u
\n
"
,
__func__
,
msg_type
);
...
...
@@ -1313,7 +1352,7 @@ const char *hexdump(const void *data, size_t data_len, char *out, size_t out_len
LOG_E
(
MAC
,
"standalone pack failed
\n
"
);
return
;
}
if
(
send
(
ue_sock_descriptor
,
buffer
,
encoded_size
,
0
)
<
0
)
if
(
send
(
ue_
tx_
sock_descriptor
,
buffer
,
encoded_size
,
0
)
<
0
)
{
LOG_E
(
MAC
,
"Send Proxy UE failed
\n
"
);
return
;
...
...
@@ -1323,8 +1362,8 @@ const char *hexdump(const void *data, size_t data_len, char *out, size_t out_len
void
send_standalone_dummy
()
{
static
const
uint16_t
dummy
[]
=
{
0
,
0
};
LOG_
D
(
MAC
,
"Dummy sent to Proxy, Size: %zu
\n
"
,
sizeof
(
dummy
));
if
(
send
(
ue_sock_descriptor
,
dummy
,
sizeof
(
dummy
),
0
)
<
0
)
LOG_
E
(
MAC
,
"Dummy sent to Proxy, Size: %zu
\n
"
,
sizeof
(
dummy
));
if
(
send
(
ue_
tx_
sock_descriptor
,
dummy
,
sizeof
(
dummy
),
0
)
<
0
)
{
LOG_E
(
MAC
,
"send dummy to OAI UE failed: %s
\n
"
,
strerror
(
errno
));
return
;
...
...
openair2/PHY_INTERFACE/phy_stub_UE.h
View file @
ddca335b
...
...
@@ -139,7 +139,7 @@ int memcpy_hi_dci0_req (L1_rxtx_proc_t *proc, nfapi_pnf_p7_config_t* pnf_p7, nfa
void
UE_config_stub_pnf
(
void
);
// open an SCTP socket with a standalone PNF module
void
ue_init_standalone_socket
(
const
char
*
addr
,
int
port
);
void
ue_init_standalone_socket
(
const
char
*
addr
,
int
tx_port
,
int
rx_
port
);
// read from standalone pnf socket call corresponding memcpy functions
void
*
ue_standalone_pnf_task
(
void
*
context
);
...
...
targets/RT/USER/lte-ue.c
View file @
ddca335b
...
...
@@ -428,8 +428,9 @@ void init_UE_stub_single_thread(int nb_inst,
void
init_UE_standalone_thread
()
{
const
char
*
standalone_addr
=
"127.0.0.1"
;
// these two lines go into init
int
standalone_port
=
3289
;
ue_init_standalone_socket
(
standalone_addr
,
standalone_port
);
int
standalone_tx_port
=
3211
;
int
standalone_rx_port
=
3212
;
ue_init_standalone_socket
(
standalone_addr
,
standalone_tx_port
,
standalone_rx_port
);
pthread_t
thread
;
if
(
pthread_create
(
&
thread
,
NULL
,
ue_standalone_pnf_task
,
NULL
)
!=
0
)
{
...
...
@@ -442,7 +443,7 @@ void init_UE_stub(int nb_inst,
int
uecap_xer_in
,
char
*
emul_iface
)
{
int
inst
;
int
inst
;
LOG_I
(
PHY
,
"UE : Calling Layer 2 for initialization
\n
"
);
l2_init_ue
(
eMBMS_active
,(
uecap_xer_in
==
1
)
?
uecap_xer
:
NULL
,
0
,
// cba_group_active
...
...
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