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
Michael Black
OpenXG-RAN
Commits
a6d105d2
Commit
a6d105d2
authored
Jun 18, 2020
by
MaheshK1995
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
P5 messages DONE [bypassed a bug]
parent
164397b0
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
51 additions
and
31 deletions
+51
-31
executables/nr-ru.c
executables/nr-ru.c
+1
-1
nfapi/README.md
nfapi/README.md
+18
-1
nfapi/oai_integration/nfapi_pnf.c
nfapi/oai_integration/nfapi_pnf.c
+8
-5
nfapi/oai_integration/nfapi_vnf.c
nfapi/oai_integration/nfapi_vnf.c
+3
-3
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
+2
-2
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
+10
-10
nfapi/open-nFAPI/pnf/public_inc/nfapi_pnf_interface.h
nfapi/open-nFAPI/pnf/public_inc/nfapi_pnf_interface.h
+2
-2
nfapi/open-nFAPI/pnf/src/pnf.c
nfapi/open-nFAPI/pnf/src/pnf.c
+1
-1
nfapi/open-nFAPI/pnf/src/pnf_interface.c
nfapi/open-nFAPI/pnf/src/pnf_interface.c
+2
-2
nfapi/open-nFAPI/vnf/public_inc/nfapi_vnf_interface.h
nfapi/open-nFAPI/vnf/public_inc/nfapi_vnf_interface.h
+2
-2
nfapi/open-nFAPI/vnf/src/vnf_interface.c
nfapi/open-nFAPI/vnf/src/vnf_interface.c
+2
-2
No files found.
executables/nr-ru.c
View file @
a6d105d2
...
...
@@ -1038,7 +1038,7 @@ void fill_rf_config(RU_t *ru, char *rf_config_file) {
openair0_config_t
*
cfg
=
&
ru
->
openair0_cfg
;
int
mu
=
gNB_config
->
ssb_config
.
scs_common
.
value
;
int
N_RB
=
gNB_config
->
carrier_config
.
dl_grid_size
[
gNB_config
->
ssb_config
.
scs_common
.
value
].
value
;
N_RB
=
106
;
// TODO: hard coding (change later)
if
(
mu
==
NR_MU_0
)
{
//or if LTE
if
(
N_RB
==
100
)
{
if
(
fp
->
threequarter_fs
)
{
...
...
nfapi/README.md
View file @
a6d105d2
...
...
@@ -9,4 +9,21 @@
### 15/06/20
*
The values to config request are assigned in:
`config_common()`
in
`config.c`
*
need to add lines for
`cfg->nfapi_config`
*
the config request unpacked on pnf side still has some zero values, which causes assertional failure in from_nrarfcn()
\ No newline at end of file
*
the config request unpacked on pnf side still has some zero values, which causes assertional failure in from_nrarfcn()
### 16/06/20
*
Config request is recived and unpacked correctly
*
Regarding config response
*
we are confused about its' struct definition
*
it says list of TLVs in its entirety
*
and we need to dyanmically insert the invalid TLVs after checking in a categorical fashion
*
Need to think of a data structure to enable this feature.
```
struct{
list of uint8_t tlvs
list of uint16_t tlvs
list of uint32_t tlvs
}list of tlvs
```
*
Need the
`N_RB`
value to be non-zero and obtained from the config file. (carrier config grid size)
`int N_RB = gNB_config->carrier_config.dl_grid_size[gNB_config->ssb_config.scs_common.value].value;`
*
how is this
`gNB_config`
assigned its values?
\ No newline at end of file
nfapi/oai_integration/nfapi_pnf.c
View file @
a6d105d2
...
...
@@ -669,7 +669,7 @@ int param_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfapi
memcpy
(
nfapi_resp
.
nfapi_config
.
p7_pnf_address_ipv4
.
address
,
&
pnf_p7_sockaddr
.
sin_addr
.
s_addr
,
4
);
nfapi_resp
.
num_tlv
++
;
// P7 PNF Port
printf
(
"TAG value :%d"
,
nfapi_resp
.
cell_param
.
phy_state
.
tl
.
tag
);
printf
(
"TAG value :%d"
,
nfapi_resp
.
cell_param
.
phy_state
.
tl
.
tag
);
nfapi_pnf_param_resp
(
config
,
&
nfapi_resp
);
printf
(
"[PNF] Sent NFAPI_PNF_PARAM_RESPONSE phy_id:%d number_of_tlvs:%u
\n
"
,
req
->
header
.
phy_id
,
nfapi_resp
.
num_tlv
);
...
...
@@ -742,8 +742,11 @@ int config_request(nfapi_pnf_config_t *config, nfapi_pnf_phy_config_t *phy, nfap
}
if
(
req
->
nfapi_config
.
nrarfcn
.
tl
.
tag
==
NFAPI_NR_NFAPI_NRARFCN_TAG
)
{
fp
->
dl_CarrierFreq
=
from_nrarfcn
(
78
,
req
->
ssb_config
.
scs_common
.
value
,
req
->
nfapi_config
.
nrarfcn
.
value
);
fp
->
ul_CarrierFreq
=
fp
->
dl_CarrierFreq
-
(
get_nr_uldl_offset
(
fp
->
nr_band
)
*
1e5
);
// TODO: why 1e5 ?
// fp->dl_CarrierFreq = from_nrarfcn(78, req->ssb_config.scs_common.value , req->nfapi_config.nrarfcn.value);// TODO: get value nr_bandP
// fp->dl_CarrierFreq = req->carrier_config.dl_frequency.value;
// fp->ul_CarrierFreq = req->carrier_config.uplink_frequency.value;
//fp->ul_CarrierFreq = fp->dl_CarrierFreq - (get_nr_uldl_offset(fp->nr_band) * 1e5); // TODO: why 1e5 ?
num_tlv
++
;
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"%s() nrarfcn:%u dl_carrierFreq:%u ul_CarrierFreq:%u band:%u N_RB_DL:%u
\n
"
,
__FUNCTION__
,
req
->
nfapi_config
.
nrarfcn
.
value
,
fp
->
dl_CarrierFreq
,
fp
->
ul_CarrierFreq
,
pnf
->
rfs
[
0
].
band
,
fp
->
N_RB_DL
);
...
...
@@ -868,7 +871,7 @@ req->tdd_table.
phy_info
->
remote_addr
=
inet_ntoa
(
vnf_p7_sockaddr
.
sin_addr
);
printf
(
"[PNF] %d vnf p7 %s:%d timing %d %d %d
\n
"
,
phy_info
->
id
,
phy_info
->
remote_addr
,
phy_info
->
remote_port
,
phy_info
->
timing_window
,
phy_info
->
timing_info_mode
,
phy_info
->
timing_info_period
);
nfapi_
config_response
_t
nfapi_resp
;
nfapi_
nr_config_response_scf
_t
nfapi_resp
;
memset
(
&
nfapi_resp
,
0
,
sizeof
(
nfapi_resp
));
nfapi_resp
.
header
.
message_id
=
NFAPI_CONFIG_RESPONSE
;
nfapi_resp
.
header
.
phy_id
=
phy_info
->
id
;
...
...
@@ -1202,7 +1205,7 @@ nfapi_tx_request_t dummy_tx_req;
nfapi_pnf_p7_subframe_buffer_t
dummy_subframe
;
int
start_request
(
nfapi_pnf_config_t
*
config
,
nfapi_pnf_phy_config_t
*
phy
,
nfapi_start_request
_t
*
req
)
{
int
start_request
(
nfapi_pnf_config_t
*
config
,
nfapi_pnf_phy_config_t
*
phy
,
nfapi_nr_start_request_scf
_t
*
req
)
{
printf
(
"[PNF] Received NFAPI_START_REQ phy_id:%d
\n
"
,
req
->
header
.
phy_id
);
nfapi_set_trace_level
(
NFAPI_TRACE_INFO
);
pnf_info
*
pnf
=
(
pnf_info
*
)(
config
->
user_data
);
...
...
nfapi/oai_integration/nfapi_vnf.c
View file @
a6d105d2
...
...
@@ -1080,11 +1080,11 @@ int param_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_nr_param_respons
return
0
;
}
int
config_resp_cb
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_
config_response
_t
*
resp
)
{
nfapi_
start_request
_t
req
;
int
config_resp_cb
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_
nr_config_response_scf
_t
*
resp
)
{
nfapi_
nr_start_request_scf
_t
req
;
printf
(
"[VNF] Received NFAPI_CONFIG_RESP idx:%d phy_id:%d
\n
"
,
p5_idx
,
resp
->
header
.
phy_id
);
printf
(
"[VNF] Calling oai_enb_init()
\n
"
);
oai_enb_init
();
oai_enb_init
();
// TODO: change to gnb
memset
(
&
req
,
0
,
sizeof
(
req
));
req
.
header
.
message_id
=
NFAPI_START_REQUEST
;
req
.
header
.
phy_id
=
resp
->
header
.
phy_id
;
...
...
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
View file @
a6d105d2
...
...
@@ -501,7 +501,7 @@ typedef struct {
nfapi_p4_p5_message_header_t
header
;
nfapi_nr_param_errors_e
error_code
;
uint8_t
num_invalid_tlvs
;
// TODO: add list of invalid/unsupported TLVs (see Table 3.18)
nfapi_vendor_extension_tlv_t
vendor_extension
;
}
nfapi_nr_config_response_scf_t
;
...
...
@@ -511,7 +511,7 @@ typedef struct {
typedef
struct
{
nfapi_p4_p5_message_header_t
header
;
nfapi_vendor_extension_tlv_t
vendor_extension
;
}
nfapi_nr_start_request_t
;
}
nfapi_nr_start_request_
scf_
t
;
typedef
enum
{
NFAPI_NR_START_MSG_INVALID_STATE
...
...
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
View file @
a6d105d2
...
...
@@ -857,15 +857,15 @@ static uint8_t pack_config_request(void *msg, uint8_t **ppWritePackedMsg, uint8_
static
uint8_t
pack_config_response
(
void
*
msg
,
uint8_t
**
ppWritePackedMsg
,
uint8_t
*
end
,
nfapi_p4_p5_codec_config_t
*
config
)
{
nfapi_
config_response_t
*
pNfapiMsg
=
(
nfapi_config_response
_t
*
)
msg
;
nfapi_
nr_config_response_scf_t
*
pNfapiMsg
=
(
nfapi_nr_config_response_scf
_t
*
)
msg
;
return
(
push
32
(
pNfapiMsg
->
error_code
,
ppWritePackedMsg
,
end
)
&&
return
(
push
8
(
pNfapiMsg
->
error_code
,
ppWritePackedMsg
,
end
)
&&
pack_vendor_extension_tlv
(
pNfapiMsg
->
vendor_extension
,
ppWritePackedMsg
,
end
,
config
)
);
}
static
uint8_t
pack_start_request
(
void
*
msg
,
uint8_t
**
ppWritePackedMsg
,
uint8_t
*
end
,
nfapi_p4_p5_codec_config_t
*
config
)
{
nfapi_
start_request_t
*
pNfapiMsg
=
(
nfapi_start_request
_t
*
)
msg
;
nfapi_
nr_start_request_scf_t
*
pNfapiMsg
=
(
nfapi_nr_start_request_scf
_t
*
)
msg
;
return
pack_vendor_extension_tlv
(
pNfapiMsg
->
vendor_extension
,
ppWritePackedMsg
,
end
,
config
);
}
...
...
@@ -1591,7 +1591,7 @@ static uint8_t unpack_param_response(uint8_t **ppReadPackedMsg, uint8_t *end, vo
// print ppReadPackedMsg
uint8_t
*
ptr
=
*
ppReadPackedMsg
;
printf
(
"
\n
Read message: "
);
printf
(
"
\n
Read message
unpack_param_response
: "
);
while
(
ptr
<
end
){
printf
(
" %d "
,
*
ptr
);
ptr
++
;
...
...
@@ -1786,19 +1786,19 @@ static uint8_t unpack_config_request(uint8_t **ppReadPackedMsg, uint8_t *end, vo
static
uint8_t
unpack_config_response
(
uint8_t
**
ppReadPackedMsg
,
uint8_t
*
end
,
void
*
msg
,
nfapi_p4_p5_codec_config_t
*
config
)
{
nfapi_
config_response_t
*
pNfapiMsg
=
(
nfapi_config_response
_t
*
)
msg
;
nfapi_
nr_config_response_scf_t
*
pNfapiMsg
=
(
nfapi_nr_config_response_scf
_t
*
)
msg
;
unpack_tlv_t
unpack_fns
[]
=
{
};
return
(
pull
32
(
ppReadPackedMsg
,
&
pNfapiMsg
->
error_code
,
end
)
&&
return
(
pull
8
(
ppReadPackedMsg
,
&
pNfapiMsg
->
error_code
,
end
)
&&
unpack_tlv_list
(
unpack_fns
,
sizeof
(
unpack_fns
)
/
sizeof
(
unpack_tlv_t
),
ppReadPackedMsg
,
end
,
config
,
&
(
pNfapiMsg
->
vendor_extension
)));
}
static
uint8_t
unpack_start_request
(
uint8_t
**
ppReadPackedMsg
,
uint8_t
*
end
,
void
*
msg
,
nfapi_p4_p5_codec_config_t
*
config
)
{
nfapi_start_request_t
*
pNfapiMsg
=
(
nfapi_start_request
_t
*
)
msg
;
nfapi_nr_start_request_scf_t
*
pNfapiMsg
=
(
nfapi_nr_start_request_scf
_t
*
)
msg
;
unpack_tlv_t
unpack_fns
[]
=
{
...
...
@@ -1952,8 +1952,8 @@ static int check_unpack_length(nfapi_message_id_e msgId, uint32_t unpackedBufLen
break
;
case
NFAPI_START_REQUEST
:
if
(
unpackedBufLen
>=
sizeof
(
nfapi_start_request
_t
))
retLen
=
sizeof
(
nfapi_start_request
_t
);
if
(
unpackedBufLen
>=
sizeof
(
nfapi_nr_start_request_scf
_t
))
retLen
=
sizeof
(
nfapi_nr_start_request_scf
_t
);
break
;
case
NFAPI_START_RESPONSE
:
...
...
@@ -2037,7 +2037,7 @@ int nfapi_p5_message_unpack(void *pMessageBuf, uint32_t messageBufLen, void *pUn
}
uint8_t
*
ptr
=
pReadPackedMessage
;
printf
(
"
\n
Read message: "
);
printf
(
"
\n
Read message
unpack
: "
);
while
(
ptr
<
end
){
printf
(
" %d "
,
*
ptr
);
ptr
++
;
...
...
nfapi/open-nFAPI/pnf/public_inc/nfapi_pnf_interface.h
View file @
a6d105d2
...
...
@@ -193,7 +193,7 @@ typedef struct nfapi_pnf_config
* The client is expected to send the START.response after the client has received the
* first subframe indication from FAPI.
*/
int
(
*
start_req
)(
nfapi_pnf_config_t
*
config
,
nfapi_pnf_phy_config_t
*
phy
,
nfapi_start_request
_t
*
req
);
int
(
*
start_req
)(
nfapi_pnf_config_t
*
config
,
nfapi_pnf_phy_config_t
*
phy
,
nfapi_nr_start_request_scf
_t
*
req
);
/*! A callback for the STOP.request
* \param config A pointer to the pnf configuration
...
...
@@ -413,7 +413,7 @@ int nfapi_pnf_param_resp(nfapi_pnf_config_t* config, nfapi_nr_param_response_scf
* \return 0 for success, -1 for failure
*
*/
int
nfapi_pnf_config_resp
(
nfapi_pnf_config_t
*
config
,
nfapi_
config_response
_t
*
resp
);
int
nfapi_pnf_config_resp
(
nfapi_pnf_config_t
*
config
,
nfapi_
nr_config_response_scf
_t
*
resp
);
/*! Send the START.response
* \param config A pointer to a pnf configuraiton
...
...
nfapi/open-nFAPI/pnf/src/pnf.c
View file @
a6d105d2
...
...
@@ -411,7 +411,7 @@ void pnf_handle_start_request(pnf_t* pnf, void *pRecvMsg, int recvMsgLen)
}
else
{
nfapi_start_request
_t
req
;
nfapi_nr_start_request_scf
_t
req
;
nfapi_pnf_config_t
*
config
=
&
(
pnf
->
_public
);
...
...
nfapi/open-nFAPI/pnf/src/pnf_interface.c
View file @
a6d105d2
...
...
@@ -182,7 +182,7 @@ int nfapi_pnf_param_resp(nfapi_pnf_config_t* config, nfapi_nr_param_response_scf
return
pnf_pack_and_send_p5_message
(
_this
,
&
(
resp
->
header
),
sizeof
(
nfapi_nr_param_response_scf_t
));
}
int
nfapi_pnf_config_resp
(
nfapi_pnf_config_t
*
config
,
nfapi_
config_response
_t
*
resp
)
int
nfapi_pnf_config_resp
(
nfapi_pnf_config_t
*
config
,
nfapi_
nr_config_response_scf
_t
*
resp
)
{
if
(
config
==
NULL
||
resp
==
NULL
)
{
...
...
@@ -207,7 +207,7 @@ int nfapi_pnf_config_resp(nfapi_pnf_config_t* config, nfapi_config_response_t* r
return
-
1
;
}
return
pnf_pack_and_send_p5_message
(
_this
,
&
(
resp
->
header
),
sizeof
(
nfapi_
config_response
_t
));
return
pnf_pack_and_send_p5_message
(
_this
,
&
(
resp
->
header
),
sizeof
(
nfapi_
nr_config_response_scf
_t
));
}
int
nfapi_pnf_start_resp
(
nfapi_pnf_config_t
*
config
,
nfapi_start_response_t
*
resp
)
...
...
nfapi/open-nFAPI/vnf/public_inc/nfapi_vnf_interface.h
View file @
a6d105d2
...
...
@@ -19,7 +19,7 @@
#include "nfapi_interface.h"
#include "nfapi_nr_interface_scf.h"
#include "nfapi_nr_interface.h"
#include "nfapi_nr_interface.h"
#include "debug.h"
...
...
@@ -549,7 +549,7 @@ int nfapi_vnf_config_req(nfapi_vnf_config_t* config, int p5_idx, nfapi_nr_config
* \param req A pointer to a START.request message structure
* \return 0 means success, -1 failure
*/
int
nfapi_vnf_start_req
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_
start_request
_t
*
req
);
int
nfapi_vnf_start_req
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_
nr_start_request_scf
_t
*
req
);
/*! Send the STOP.request
* \param config A pointer to a vnf config
...
...
nfapi/open-nFAPI/vnf/src/vnf_interface.c
View file @
a6d105d2
...
...
@@ -565,14 +565,14 @@ int nfapi_vnf_config_req(nfapi_vnf_config_t* config, int p5_idx, nfapi_nr_config
return
vnf_pack_and_send_p5_message
(
_this
,
p5_idx
,
&
req
->
header
,
sizeof
(
nfapi_nr_config_request_scf_t
));
}
int
nfapi_vnf_start_req
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_
start_request_t
*
req
)
int
nfapi_vnf_start_req
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_
nr_start_request_scf_t
*
req
)
{
if
(
config
==
0
||
req
==
0
)
return
-
1
;
vnf_t
*
_this
=
(
vnf_t
*
)(
config
);
return
vnf_pack_and_send_p5_message
(
_this
,
p5_idx
,
&
req
->
header
,
sizeof
(
nfapi_
start_request
_t
));
return
vnf_pack_and_send_p5_message
(
_this
,
p5_idx
,
&
req
->
header
,
sizeof
(
nfapi_
nr_start_request_scf
_t
));
}
int
nfapi_vnf_stop_req
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_stop_request_t
*
req
)
{
...
...
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