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
190fe543
Commit
190fe543
authored
4 years ago
by
Mahesh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Warnings in gNB build resolved
parent
bec8fad1
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
186 additions
and
408 deletions
+186
-408
executables/nr-gnb.c
executables/nr-gnb.c
+1
-0
nfapi/oai_integration/nfapi_pnf.c
nfapi/oai_integration/nfapi_pnf.c
+54
-45
nfapi/oai_integration/nfapi_vnf.c
nfapi/oai_integration/nfapi_vnf.c
+0
-3
nfapi/oai_integration/nfapi_vnf.h
nfapi/oai_integration/nfapi_vnf.h
+1
-1
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
+1
-225
nfapi/open-nFAPI/nfapi/src/nfapi_p7.c
nfapi/open-nFAPI/nfapi/src/nfapi_p7.c
+80
-76
nfapi/open-nFAPI/pnf/src/pnf.c
nfapi/open-nFAPI/pnf/src/pnf.c
+2
-45
nfapi/open-nFAPI/vnf/inc/vnf_p7.h
nfapi/open-nFAPI/vnf/inc/vnf_p7.h
+1
-0
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.c
nfapi/open-nFAPI/vnf/src/vnf.c
+4
-3
openair1/SCHED/nfapi_lte_dummy.c
openair1/SCHED/nfapi_lte_dummy.c
+16
-0
openair1/SCHED/nfapi_nr_dummy.c
openair1/SCHED/nfapi_nr_dummy.c
+16
-0
openair1/SCHED_NR/fapi_nr_l1.c
openair1/SCHED_NR/fapi_nr_l1.c
+8
-8
No files found.
executables/nr-gnb.c
View file @
190fe543
...
...
@@ -48,6 +48,7 @@
#include "SCHED_NR/sched_nr.h"
#include "SCHED_NR/fapi_nr_l1.h"
#include "PHY/NR_TRANSPORT/nr_transport_proto.h"
#include "PHY/MODULATION/nr_modulation.h"
#undef MALLOC //there are two conflicting definitions, so we better make sure we don't use it at all
//#undef FRAME_LENGTH_COMPLEX_SAMPLES //there are two conflicting definitions, so we better make sure we don't use it at all
...
...
This diff is collapsed.
Click to expand it.
nfapi/oai_integration/nfapi_pnf.c
View file @
190fe543
...
...
@@ -94,6 +94,24 @@ extern void handle_nr_nfapi_pdsch_pdu(PHY_VARS_gNB *gNB,int frame,int slot,
uint8_t
*
sdu
);
extern
void
handle_nr_nfapi_ssb_pdu
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_pdu
);
extern
void
nr_fill_ulsch
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_pusch_pdu_t
*
ulsch_pdu
);
extern
void
nr_fill_pucch
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_pucch_pdu_t
*
pucch_pdu
);
extern
void
nr_fill_prach
(
PHY_VARS_gNB
*
gNB
,
int
SFN
,
int
Slot
,
nfapi_nr_prach_pdu_t
*
prach_pdu
);
extern
void
nr_fill_prach_ru
(
RU_t
*
ru
,
int
SFN
,
int
Slot
,
nfapi_nr_prach_pdu_t
*
prach_pdu
);
nfapi_tx_request_pdu_t
*
tx_request_pdu
[
1023
][
10
][
10
];
// [frame][subframe][max_num_pdus]
...
...
@@ -1242,7 +1260,7 @@ void pnf_phy_deallocate_p7_vendor_ext(nfapi_p7_message_header_t *header) {
int
pnf_phy_ul_dci_req
(
gNB_L1_rxtx_proc_t
*
proc
,
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_nr_ul_dci_request_t
*
req
)
{
// if (req-> hi_dci0_request_body.number_of_dci == 0 && req->hi_dci0_request_body.number_of_hi == 0)
// LOG_D(PHY,"[PNF] HI_DCI0_REQUEST SFN/SF:%05d dci:%d hi:%d\n", NFAPI_SFNSF2DEC(req->sfn_sf), req->hi_dci0_request_body.number_of_dci, req->hi_dci0_request_body.number_of_hi);
//phy_info* phy = (phy_info*)(pnf_p7->user_data);
...
...
@@ -1254,20 +1272,9 @@ int pnf_phy_ul_dci_req(gNB_L1_rxtx_proc_t *proc, nfapi_pnf_p7_config_t *pnf_p7,
//LOG_D(PHY,"[PNF] HI_DCI0_REQ sfn_sf:%d PDU[%d]\n", NFAPI_SFNSF2DEC(req->sfn_sf), i);
if
(
req
->
ul_dci_pdu_list
[
i
].
PDUType
==
0
)
{
//LOG_D(PHY,"[PNF] HI_DCI0_REQ sfn_sf:%d PDU[%d] - NFAPI_HI_DCI0_DCI_PDU_TYPE\n", NFAPI_SFNSF2DEC(req->sfn_sf), i);
//nfapi_hi_dci0_request_pdu_t *hi_dci0_req_pdu = &req->hi_dci0_request_body.hi_dci0_pdu_list[i];
nfapi_nr_ul_dci_request_pdus_t
*
ul_dci_req_pdu
=
&
req
->
ul_dci_pdu_list
[
i
];
//handle_nfapi_hi_dci0_dci_pdu(eNB,NFAPI_SFNSF2SFN(req->sfn_sf),NFAPI_SFNSF2SF(req->sfn_sf),proc,hi_dci0_req_pdu);
handle_nfapi_nr_ul_dci_pdu
(
gNB
,
req
->
SFN
,
req
->
Slot
,
&
ul_dci_req_pdu
);
// eNB->pdcch_vars[NFAPI_SFNSF2SF(req->sfn_sf)&1].num_dci++;
// TODO: find pdcch_vars for gNB
nfapi_nr_ul_dci_request_pdus_t
*
ul_dci_req_pdu
=
&
req
->
ul_dci_pdu_list
[
i
];
handle_nfapi_nr_ul_dci_pdu
(
gNB
,
req
->
SFN
,
req
->
Slot
,
ul_dci_req_pdu
);
}
// else if (req->hi_dci0_request_body.hi_dci0_pdu_list[i].pdu_type == NFAPI_HI_DCI0_HI_PDU_TYPE) {
// LOG_D(PHY,"[PNF] HI_DCI0_REQ sfn_sf:%d PDU[%d] - NFAPI_HI_DCI0_HI_PDU_TYPE\n", NFAPI_SFNSF2DEC(req->sfn_sf), i);
// nfapi_hi_dci0_request_pdu_t *hi_dci0_req_pdu = &req->hi_dci0_request_body.hi_dci0_pdu_list[i];
// handle_nfapi_hi_dci0_hi_pdu(eNB, NFAPI_SFNSF2SFN(req->sfn_sf),NFAPI_SFNSF2SF(req->sfn_sf), proc, hi_dci0_req_pdu);
// }
else
{
LOG_E
(
PHY
,
"[PNF] UL_DCI_REQ sfn_slot:%d PDU[%d] - unknown pdu type:%d
\n
"
,
NFAPI_SFNSLOT2DEC
(
req
->
SFN
,
req
->
Slot
),
i
,
req
->
ul_dci_pdu_list
[
i
].
PDUType
);
}
...
...
@@ -1324,9 +1331,6 @@ int pnf_phy_dl_tti_req(gNB_L1_rxtx_proc_t *proc, nfapi_pnf_p7_config_t *pnf_p7,
return
-
4
;
}
// int sfn = NFAPI_SFNSF2SFN(req->sfn_sf);
// int sf = NFAPI_SFNSF2SF(req->sfn_sf);
int
sfn
=
req
->
SFN
;
int
slot
=
req
->
Slot
;
...
...
@@ -1335,13 +1339,6 @@ int pnf_phy_dl_tti_req(gNB_L1_rxtx_proc_t *proc, nfapi_pnf_p7_config_t *pnf_p7,
proc
=
&
gNB
->
proc
.
L1_proc
;
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_pdu_list
=
req
->
dl_tti_request_body
.
dl_tti_pdu_list
;
// TODO: NR_gNB_PDCCH not defined yet (check later)
#if 0
LTE_eNB_PDCCH *pdcch_vars = &eNB->pdcch_vars[sf&1];
pdcch_vars->num_pdcch_symbols = req->dl_config_request_body.number_pdcch_ofdm_symbols;
pdcch_vars->num_dci = 0;
#endif
if
(
req
->
dl_tti_request_body
.
nPDUs
)
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"%s() TX:%d/%d RX:%d/%d; sfn:%d, slot:%d, nGroup:%u, nPDUs: %u, nUE: %u, PduIdx: %u,
\n
"
,
__FUNCTION__
,
proc
->
frame_tx
,
proc
->
slot_tx
,
proc
->
frame_rx
,
proc
->
slot_rx
,
// TODO: change subframes to slot
...
...
@@ -1364,15 +1361,9 @@ int pnf_phy_dl_tti_req(gNB_L1_rxtx_proc_t *proc, nfapi_pnf_p7_config_t *pnf_p7,
//dl_tti_pdu_list[i].pdcch_pdu.pdcch_pdu_rel15.numDlDci++; // ?
// NFAPI_TRACE(NFAPI_TRACE_INFO, "%s() pdcch_vars->num_dci:%d\n", __FUNCTION__, pdcch_vars->num_dci);
}
else
if
(
dl_tti_pdu_list
[
i
].
PDUType
==
NFAPI_NR_DL_TTI_SSB_PDU_TYPE
)
{
// nfapi_dl_config_bch_pdu *bch_pdu = &dl_config_pdu_list[i].bch_pdu;
nfapi_nr_dl_tti_ssb_pdu
*
ssb_pdu
=
&
dl_tti_pdu_list
[
i
].
ssb_pdu
;
// uint16_t pdu_index = bch_pdu->bch_pdu_rel8.pdu_index;
uint16_t
pdu_index
=
ssb_pdu
->
ssb_pdu_rel15
.
SsbBlockIndex
;
// if (tx_data_request[sfn][slot][pdu_index] != NULL) {
//NFAPI_TRACE(NFAPI_TRACE_INFO, "%s() PDU:%d BCH: pdu_index:%u pdu_length:%d sdu_length:%d BCH_SDU:%x,%x,%x\n", __FUNCTION__, i, pdu_index, bch_pdu->bch_pdu_rel8.length, tx_request_pdu[sfn][sf][pdu_index]->segments[0].segment_length, sdu[0], sdu[1], sdu[2]);
handle_nr_nfapi_ssb_pdu
(
gNB
,
sfn
,
slot
,
&
dl_tti_pdu_list
[
i
]);
gNB
->
pbch_configured
=
1
;
\
gNB
->
pbch_configured
=
1
;
//} else {
// NFAPI_TRACE(NFAPI_TRACE_ERROR, "%s() BCH NULL TX PDU SFN/SF:%d PDU_INDEX:%d\n", __FUNCTION__, NFAPI_SFNSF2DEC(req->sfn_sf), pdu_index);
//}
...
...
@@ -1584,7 +1575,6 @@ int pnf_phy_ul_tti_req(gNB_L1_rxtx_proc_t *proc, nfapi_pnf_p7_config_t *pnf_p7,
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"%s() Main system not up - is this a dummy slot?
\n
"
,
__FUNCTION__
);
return
-
4
;
}
uint16_t
curr_sfn
=
req
->
SFN
;
uint16_t
curr_slot
=
req
->
Slot
;
struct
PHY_VARS_gNB_s
*
gNB
=
RC
.
gNB
[
0
];
...
...
@@ -1595,21 +1585,40 @@ int pnf_phy_ul_tti_req(gNB_L1_rxtx_proc_t *proc, nfapi_pnf_p7_config_t *pnf_p7,
nfapi_nr_ul_tti_request_number_of_pdus_t
*
ul_tti_pdu_list
=
req
->
pdus_list
;
for
(
int
i
=
0
;
i
<
req
->
n_pdus
;
i
++
)
{
//LOG_D(PHY, "%s() sfn/sf:%d PDU[%d] size:%d\n", __FUNCTION__, NFAPI_SFNSF2DEC(req->sfn_sf), i, ul_config_pdu_list[i].pdu_size);
if
(
ul_tti_pdu_list
[
i
].
pdu_type
==
NFAPI_NR_UL_CONFIG_PRACH_PDU_TYPE
||
ul_tti_pdu_list
[
i
].
pdu_type
==
NFAPI_NR_UL_CONFIG_PUSCH_PDU_TYPE
||
ul_tti_pdu_list
[
i
].
pdu_type
==
NFAPI_NR_UL_CONFIG_PUCCH_PDU_TYPE
||
ul_tti_pdu_list
[
i
].
pdu_type
==
NFAPI_NR_UL_CONFIG_SRS_PDU_TYPE
)
{
//LOG_D(PHY, "%s() handle_nfapi_ul_pdu() for PDU:%d\n", __FUNCTION__, i);
// handle_nfapi_ul_pdu(eNB,proc,&ul_config_pdu_list[i],curr_sfn,curr_sf,req->ul_config_request_body.srs_present);
// TODO: dont have an NR function for this, also srs_present flag not there
}
else
{
switch
(
ul_tti_pdu_list
[
i
].
pdu_type
)
{
case
NFAPI_NR_UL_CONFIG_PUSCH_PDU_TYPE
:
//LOG_D(PHY,"frame %d, slot %d, Got NFAPI_NR_UL_TTI_PUSCH_PDU_TYPE for %d.%d\n", frame, slot, UL_tti_req->SFN, UL_tti_req->Slot);
nr_fill_ulsch
(
gNB
,
curr_sfn
,
curr_slot
,
&
ul_tti_pdu_list
[
i
].
pusch_pdu
);
break
;
case
NFAPI_NR_UL_CONFIG_PUCCH_PDU_TYPE
:
//LOG_D(PHY,"frame %d, slot %d, Got NFAPI_NR_UL_TTI_PUCCH_PDU_TYPE for %d.%d\n", frame, slot, UL_tti_req->SFN, UL_tti_req->Slot);
nr_fill_pucch
(
gNB
,
curr_sfn
,
curr_slot
,
&
ul_tti_pdu_list
[
i
].
pucch_pdu
);
break
;
case
NFAPI_NR_UL_CONFIG_PRACH_PDU_TYPE
:
//LOG_D(PHY,"frame %d, slot %d, Got NFAPI_NR_UL_TTI_PRACH_PDU_TYPE for %d.%d\n", frame, slot, UL_tti_req->SFN, UL_tti_req->Slot);
nr_fill_prach
(
gNB
,
curr_sfn
,
curr_slot
,
&
ul_tti_pdu_list
[
i
].
prach_pdu
);
if
(
gNB
->
RU_list
[
0
]
->
if_south
==
LOCAL_RF
)
nr_fill_prach_ru
(
gNB
->
RU_list
[
0
],
curr_sfn
,
curr_slot
,
&
ul_tti_pdu_list
[
i
].
prach_pdu
);
break
;
default:
NFAPI_TRACE
(
NFAPI_TRACE_ERROR
,
"%s() PDU:%i UNKNOWN type :%d
\n
"
,
__FUNCTION__
,
i
,
ul_tti_pdu_list
[
i
].
pdu_type
);
break
;
}
// //LOG_D(PHY, "%s() sfn/sf:%d PDU[%d] size:%d\n", __FUNCTION__, NFAPI_SFNSF2DEC(req->sfn_sf), i, ul_config_pdu_list[i].pdu_size);
// if (
// ul_tti_pdu_list[i].pdu_type == NFAPI_NR_UL_CONFIG_PRACH_PDU_TYPE ||
// ul_tti_pdu_list[i].pdu_type == NFAPI_NR_UL_CONFIG_PUSCH_PDU_TYPE ||
// ul_tti_pdu_list[i].pdu_type == NFAPI_NR_UL_CONFIG_PUCCH_PDU_TYPE ||
// ul_tti_pdu_list[i].pdu_type == NFAPI_NR_UL_CONFIG_SRS_PDU_TYPE
// ) {
// //LOG_D(PHY, "%s() handle_nfapi_ul_pdu() for PDU:%d\n", __FUNCTION__, i);
// // handle_nfapi_ul_pdu(eNB,proc,&ul_config_pdu_list[i],curr_sfn,curr_sf,req->ul_config_request_body.srs_present);
// // TODO: dont have an NR function for this, also srs_present flag not there
// } else {
// NFAPI_TRACE(NFAPI_TRACE_ERROR, "%s() PDU:%i UNKNOWN type :%d\n", __FUNCTION__, i, ul_tti_pdu_list[i].pdu_type);
// }
}
return
0
;
...
...
This diff is collapsed.
Click to expand it.
nfapi/oai_integration/nfapi_vnf.c
View file @
190fe543
...
...
@@ -242,9 +242,6 @@ void oai_create_gnb(void) {
PHY_VARS_gNB
*
gNB
=
RC
.
gNB
[
0
];
RC
.
nb_nr_CC
=
(
int
*
)
malloc
(
sizeof
(
int
));
// TODO: find a better function to place this in
printf
(
"[VNF] RC.gNB[0][0]. Mod_id:%d CC_id:%d nb_CC[0]:%d abstraction_flag:%d single_thread_flag:%d if_inst:%p
\n
"
,
gNB
->
Mod_id
,
gNB
->
CC_id
,
RC
.
nb_nr_CC
,
gNB
->
abstraction_flag
,
gNB
->
single_thread_flag
,
gNB
->
if_inst
);
gNB
->
Mod_id
=
bodge_counter
;
gNB
->
CC_id
=
bodge_counter
;
gNB
->
abstraction_flag
=
0
;
...
...
This diff is collapsed.
Click to expand it.
nfapi/oai_integration/nfapi_vnf.h
View file @
190fe543
...
...
@@ -23,5 +23,5 @@
#define NFAPI_VNF_H__
void
configure_nfapi_vnf
(
char
*
vnf_addr
,
int
vnf_p5_port
);
void
configure_nr_nfapi_vnf
(
char
*
vnf_addr
,
int
vnf_p5_port
);
#endif
This diff is collapsed.
Click to expand it.
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
View file @
190fe543
...
...
@@ -2146,101 +2146,7 @@ static uint8_t unpack_nr_param_response(uint8_t **ppReadPackedMsg, uint8_t *end,
{
NFAPI_NR_NFAPI_TIMING_WINDOW_TAG
,
&
pNfapiMsg
->
nfapi_config
.
timing_window
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_NFAPI_TIMING_INFO_MODE_TAG
,
&
pNfapiMsg
->
nfapi_config
.
timing_info_mode
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_NFAPI_TIMING_INFO_PERIOD_TAG
,
&
pNfapiMsg
->
nfapi_config
.
timing_info_period
,
&
unpack_uint8_tlv_value
},
/*
{ NFAPI_NR_NFAPI_DOWNLINK_UES_PER_SUBFRAME_TAG, &pNfapiMsg->nfapi_config.dl_ue_per_sf, &unpack_uint8_tlv_value},
{ NFAPI_NR_NFAPI_UPLINK_UES_PER_SUBFRAME_TAG, &pNfapiMsg->nfapi_config.ul_ue_per_sf, &unpack_uint8_tlv_value},
{ NFAPI_NR_NFAPI_RF_BANDS_TAG, &pNfapiMsg->nfapi_config.rf_bands, &unpack_rf_bands_value},
{ NFAPI_NR_NFAPI_MAXIMUM_TRANSMIT_POWER_TAG, &pNfapiMsg->nfapi_config.max_transmit_power, &unpack_uint16_tlv_value}
*/
};
#if LTE
{
NFAPI_L1_STATUS_PHY_STATE_TAG
,
&
pNfapiMsg
->
l1_status
.
phy_state
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PHY_CAPABILITIES_DL_BANDWIDTH_SUPPORT_TAG
,
&
pNfapiMsg
->
phy_capabilities
.
dl_bandwidth_support
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PHY_CAPABILITIES_UL_BANDWIDTH_SUPPORT_TAG
,
&
pNfapiMsg
->
phy_capabilities
.
ul_bandwidth_support
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PHY_CAPABILITIES_DL_MODULATION_SUPPORT_TAG
,
&
pNfapiMsg
->
phy_capabilities
.
dl_modulation_support
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PHY_CAPABILITIES_UL_MODULATION_SUPPORT_TAG
,
&
pNfapiMsg
->
phy_capabilities
.
ul_modulation_support
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PHY_CAPABILITIES_PHY_ANTENNA_CAPABILITY_TAG
,
&
pNfapiMsg
->
phy_capabilities
.
phy_antenna_capability
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PHY_CAPABILITIES_RELEASE_CAPABILITY_TAG
,
&
pNfapiMsg
->
phy_capabilities
.
release_capability
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PHY_CAPABILITIES_MBSFN_CAPABILITY_TAG
,
&
pNfapiMsg
->
phy_capabilities
.
mbsfn_capability
,
&
unpack_uint16_tlv_value
},
{
NFAPI_LAA_CAPABILITY_LAA_SUPPORT_TAG
,
&
pNfapiMsg
->
laa_capability
.
laa_support
,
&
unpack_uint16_tlv_value
},
{
NFAPI_LAA_CAPABILITY_PD_SENSING_LBT_SUPPORT_TAG
,
&
pNfapiMsg
->
laa_capability
.
pd_sensing_lbt_support
,
&
unpack_uint16_tlv_value
},
{
NFAPI_LAA_CAPABILITY_MULTI_CARRIER_LBT_SUPPORT_TAG
,
&
pNfapiMsg
->
laa_capability
.
multi_carrier_lbt_support
,
&
unpack_uint16_tlv_value
},
{
NFAPI_LAA_CAPABILITY_PARTIAL_SF_SUPPORT_TAG
,
&
pNfapiMsg
->
laa_capability
.
partial_sf_support
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SUBFRAME_CONFIG_DUPLEX_MODE_TAG
,
&
pNfapiMsg
->
subframe_config
.
duplex_mode
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SUBFRAME_CONFIG_PCFICH_POWER_OFFSET_TAG
,
&
pNfapiMsg
->
subframe_config
.
pcfich_power_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SUBFRAME_CONFIG_PB_TAG
,
&
pNfapiMsg
->
subframe_config
.
pb
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SUBFRAME_CONFIG_DL_CYCLIC_PREFIX_TYPE_TAG
,
&
pNfapiMsg
->
subframe_config
.
dl_cyclic_prefix_type
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SUBFRAME_CONFIG_UL_CYCLIC_PREFIX_TYPE_TAG
,
&
pNfapiMsg
->
subframe_config
.
ul_cyclic_prefix_type
,
&
unpack_uint16_tlv_value
},
{
NFAPI_RF_CONFIG_DL_CHANNEL_BANDWIDTH_TAG
,
&
pNfapiMsg
->
rf_config
.
dl_channel_bandwidth
,
&
unpack_uint16_tlv_value
},
{
NFAPI_RF_CONFIG_UL_CHANNEL_BANDWIDTH_TAG
,
&
pNfapiMsg
->
rf_config
.
ul_channel_bandwidth
,
&
unpack_uint16_tlv_value
},
{
NFAPI_RF_CONFIG_REFERENCE_SIGNAL_POWER_TAG
,
&
pNfapiMsg
->
rf_config
.
reference_signal_power
,
&
unpack_uint16_tlv_value
},
{
NFAPI_RF_CONFIG_TX_ANTENNA_PORTS_TAG
,
&
pNfapiMsg
->
rf_config
.
tx_antenna_ports
,
&
unpack_uint16_tlv_value
},
{
NFAPI_RF_CONFIG_RX_ANTENNA_PORTS_TAG
,
&
pNfapiMsg
->
rf_config
.
rx_antenna_ports
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PHICH_CONFIG_PHICH_RESOURCE_TAG
,
&
pNfapiMsg
->
phich_config
.
phich_resource
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PHICH_CONFIG_PHICH_DURATION_TAG
,
&
pNfapiMsg
->
phich_config
.
phich_duration
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PHICH_CONFIG_PHICH_POWER_OFFSET_TAG
,
&
pNfapiMsg
->
phich_config
.
phich_power_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SCH_CONFIG_PRIMARY_SYNCHRONIZATION_SIGNAL_EPRE_EPRERS_TAG
,
&
pNfapiMsg
->
sch_config
.
primary_synchronization_signal_epre_eprers
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SCH_CONFIG_SECONDARY_SYNCHRONIZATION_SIGNAL_EPRE_EPRERS_TAG
,
&
pNfapiMsg
->
sch_config
.
secondary_synchronization_signal_epre_eprers
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SCH_CONFIG_PHYSICAL_CELL_ID_TAG
,
&
pNfapiMsg
->
sch_config
.
physical_cell_id
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PRACH_CONFIG_CONFIGURATION_INDEX_TAG
,
&
pNfapiMsg
->
prach_config
.
configuration_index
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PRACH_CONFIG_ROOT_SEQUENCE_INDEX_TAG
,
&
pNfapiMsg
->
prach_config
.
root_sequence_index
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PRACH_CONFIG_ZERO_CORRELATION_ZONE_CONFIGURATION_TAG
,
&
pNfapiMsg
->
prach_config
.
zero_correlation_zone_configuration
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PRACH_CONFIG_HIGH_SPEED_FLAG_TAG
,
&
pNfapiMsg
->
prach_config
.
high_speed_flag
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PRACH_CONFIG_FREQUENCY_OFFSET_TAG
,
&
pNfapiMsg
->
prach_config
.
frequency_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PUSCH_CONFIG_HOPPING_MODE_TAG
,
&
pNfapiMsg
->
pusch_config
.
hopping_mode
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PUSCH_CONFIG_HOPPING_OFFSET_TAG
,
&
pNfapiMsg
->
pusch_config
.
hopping_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PUSCH_CONFIG_NUMBER_OF_SUBBANDS_TAG
,
&
pNfapiMsg
->
pusch_config
.
number_of_subbands
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PUCCH_CONFIG_DELTA_PUCCH_SHIFT_TAG
,
&
pNfapiMsg
->
pucch_config
.
delta_pucch_shift
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PUCCH_CONFIG_N_CQI_RB_TAG
,
&
pNfapiMsg
->
pucch_config
.
n_cqi_rb
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PUCCH_CONFIG_N_AN_CS_TAG
,
&
pNfapiMsg
->
pucch_config
.
n_an_cs
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PUCCH_CONFIG_N1_PUCCH_AN_TAG
,
&
pNfapiMsg
->
pucch_config
.
n1_pucch_an
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SRS_CONFIG_BANDWIDTH_CONFIGURATION_TAG
,
&
pNfapiMsg
->
srs_config
.
bandwidth_configuration
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SRS_CONFIG_MAX_UP_PTS_TAG
,
&
pNfapiMsg
->
srs_config
.
max_up_pts
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SRS_CONFIG_SRS_SUBFRAME_CONFIGURATION_TAG
,
&
pNfapiMsg
->
srs_config
.
srs_subframe_configuration
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SRS_CONFIG_SRS_ACKNACK_SRS_SIMULTANEOUS_TRANSMISSION_TAG
,
&
pNfapiMsg
->
srs_config
.
srs_acknack_srs_simultaneous_transmission
,
&
unpack_uint16_tlv_value
},
{
NFAPI_UPLINK_REFERENCE_SIGNAL_CONFIG_UPLINK_RS_HOPPING_TAG
,
&
pNfapiMsg
->
uplink_reference_signal_config
.
uplink_rs_hopping
,
&
unpack_uint16_tlv_value
},
{
NFAPI_UPLINK_REFERENCE_SIGNAL_CONFIG_GROUP_ASSIGNMENT_TAG
,
&
pNfapiMsg
->
uplink_reference_signal_config
.
group_assignment
,
&
unpack_uint16_tlv_value
},
{
NFAPI_UPLINK_REFERENCE_SIGNAL_CONFIG_CYCLIC_SHIFT_1_FOR_DRMS_TAG
,
&
pNfapiMsg
->
uplink_reference_signal_config
.
cyclic_shift_1_for_drms
,
&
unpack_uint16_tlv_value
},
{
NFAPI_TDD_FRAME_STRUCTURE_SUBFRAME_ASSIGNMENT_TAG
,
&
pNfapiMsg
->
tdd_frame_structure_config
.
subframe_assignment
,
&
unpack_uint16_tlv_value
},
{
NFAPI_TDD_FRAME_STRUCTURE_SPECIAL_SUBFRAME_PATTERNS_TAG
,
&
pNfapiMsg
->
tdd_frame_structure_config
.
special_subframe_patterns
,
&
unpack_uint16_tlv_value
},
{
NFAPI_L23_CONFIG_DATA_REPORT_MODE_TAG
,
&
pNfapiMsg
->
l23_config
.
data_report_mode
,
&
unpack_uint16_tlv_value
},
{
NFAPI_L23_CONFIG_SFNSF_TAG
,
&
pNfapiMsg
->
l23_config
.
sfnsf
,
&
unpack_uint16_tlv_value
},
{
NFAPI_NFAPI_P7_VNF_ADDRESS_IPV4_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_vnf_address_ipv4
,
&
unpack_ipv4_address_value
},
{
NFAPI_NFAPI_P7_VNF_ADDRESS_IPV6_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_vnf_address_ipv6
,
&
unpack_ipv6_address_value
},
{
NFAPI_NFAPI_P7_VNF_PORT_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_vnf_port
,
&
unpack_uint16_tlv_value
},
{
NFAPI_NFAPI_P7_PNF_ADDRESS_IPV4_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_pnf_address_ipv4
,
&
unpack_ipv4_address_value
},
{
NFAPI_NFAPI_P7_PNF_ADDRESS_IPV6_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_pnf_address_ipv6
,
&
unpack_ipv6_address_value
},
{
NFAPI_NFAPI_P7_PNF_PORT_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_pnf_port
,
&
unpack_uint16_tlv_value
},
{
NFAPI_NFAPI_DOWNLINK_UES_PER_SUBFRAME_TAG
,
&
pNfapiMsg
->
nfapi_config
.
dl_ue_per_sf
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NFAPI_UPLINK_UES_PER_SUBFRAME_TAG
,
&
pNfapiMsg
->
nfapi_config
.
ul_ue_per_sf
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NFAPI_RF_BANDS_TAG
,
&
pNfapiMsg
->
nfapi_config
.
rf_bands
,
&
unpack_rf_bands_value
},
{
NFAPI_NFAPI_TIMING_WINDOW_TAG
,
&
pNfapiMsg
->
nfapi_config
.
timing_window
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NFAPI_TIMING_INFO_MODE_TAG
,
&
pNfapiMsg
->
nfapi_config
.
timing_info_mode
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NFAPI_TIMING_INFO_PERIOD_TAG
,
&
pNfapiMsg
->
nfapi_config
.
timing_info_period
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NFAPI_MAXIMUM_TRANSMIT_POWER_TAG
,
&
pNfapiMsg
->
nfapi_config
.
max_transmit_power
,
&
unpack_uint16_tlv_value
},
{
NFAPI_NFAPI_EARFCN_TAG
,
&
pNfapiMsg
->
nfapi_config
.
earfcn
,
&
unpack_uint16_tlv_value
},
{
NFAPI_NFAPI_NMM_GSM_FREQUENCY_BANDS_TAG
,
&
pNfapiMsg
->
nfapi_config
.
nmm_gsm_frequency_bands
,
&
unpack_nmm_frequency_bands_value
},
{
NFAPI_NFAPI_NMM_UMTS_FREQUENCY_BANDS_TAG
,
&
pNfapiMsg
->
nfapi_config
.
nmm_umts_frequency_bands
,
&
unpack_nmm_frequency_bands_value
},
{
NFAPI_NFAPI_NMM_LTE_FREQUENCY_BANDS_TAG
,
&
pNfapiMsg
->
nfapi_config
.
nmm_lte_frequency_bands
,
&
unpack_nmm_frequency_bands_value
},
{
NFAPI_NFAPI_NMM_UPLINK_RSSI_SUPPORTED_TAG
,
&
pNfapiMsg
->
nfapi_config
.
nmm_uplink_rssi_supported
,
&
unpack_uint8_tlv_value
},
};
#endif
// print ppReadPackedMsg
uint8_t
*
ptr
=
*
ppReadPackedMsg
;
printf
(
"
\n
Read message unpack_param_response: "
);
...
...
@@ -2444,125 +2350,6 @@ static uint8_t unpack_nr_config_request(uint8_t **ppReadPackedMsg, uint8_t *end,
{
NFAPI_NR_NFAPI_TIMING_WINDOW_TAG
,
&
(
pNfapiMsg
->
nfapi_config
.
timing_window
),
&
unpack_uint8_tlv_value
},
//{ NFAPI_NR_NFAPI_UPLINK_UES_PER_SUBFRAME_TAG, &(pNfapiMsg->nfapi_config.ul_ue_per_sf), &unpack_uint8_tlv_value},
};
#if LTE
{
{
NFAPI_SUBFRAME_CONFIG_DUPLEX_MODE_TAG
,
&
pNfapiMsg
->
subframe_config
.
duplex_mode
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SUBFRAME_CONFIG_PCFICH_POWER_OFFSET_TAG
,
&
pNfapiMsg
->
subframe_config
.
pcfich_power_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SUBFRAME_CONFIG_PB_TAG
,
&
pNfapiMsg
->
subframe_config
.
pb
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SUBFRAME_CONFIG_DL_CYCLIC_PREFIX_TYPE_TAG
,
&
pNfapiMsg
->
subframe_config
.
dl_cyclic_prefix_type
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SUBFRAME_CONFIG_UL_CYCLIC_PREFIX_TYPE_TAG
,
&
pNfapiMsg
->
subframe_config
.
ul_cyclic_prefix_type
,
&
unpack_uint16_tlv_value
},
{
NFAPI_RF_CONFIG_DL_CHANNEL_BANDWIDTH_TAG
,
&
pNfapiMsg
->
rf_config
.
dl_channel_bandwidth
,
&
unpack_uint16_tlv_value
},
{
NFAPI_RF_CONFIG_UL_CHANNEL_BANDWIDTH_TAG
,
&
pNfapiMsg
->
rf_config
.
ul_channel_bandwidth
,
&
unpack_uint16_tlv_value
},
{
NFAPI_RF_CONFIG_REFERENCE_SIGNAL_POWER_TAG
,
&
pNfapiMsg
->
rf_config
.
reference_signal_power
,
&
unpack_uint16_tlv_value
},
{
NFAPI_RF_CONFIG_TX_ANTENNA_PORTS_TAG
,
&
pNfapiMsg
->
rf_config
.
tx_antenna_ports
,
&
unpack_uint16_tlv_value
},
{
NFAPI_RF_CONFIG_RX_ANTENNA_PORTS_TAG
,
&
pNfapiMsg
->
rf_config
.
rx_antenna_ports
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PHICH_CONFIG_PHICH_RESOURCE_TAG
,
&
pNfapiMsg
->
phich_config
.
phich_resource
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PHICH_CONFIG_PHICH_DURATION_TAG
,
&
pNfapiMsg
->
phich_config
.
phich_duration
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PHICH_CONFIG_PHICH_POWER_OFFSET_TAG
,
&
pNfapiMsg
->
phich_config
.
phich_power_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SCH_CONFIG_PRIMARY_SYNCHRONIZATION_SIGNAL_EPRE_EPRERS_TAG
,
&
pNfapiMsg
->
sch_config
.
primary_synchronization_signal_epre_eprers
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SCH_CONFIG_SECONDARY_SYNCHRONIZATION_SIGNAL_EPRE_EPRERS_TAG
,
&
pNfapiMsg
->
sch_config
.
secondary_synchronization_signal_epre_eprers
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SCH_CONFIG_PHYSICAL_CELL_ID_TAG
,
&
pNfapiMsg
->
sch_config
.
physical_cell_id
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PRACH_CONFIG_CONFIGURATION_INDEX_TAG
,
&
pNfapiMsg
->
prach_config
.
configuration_index
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PRACH_CONFIG_ROOT_SEQUENCE_INDEX_TAG
,
&
pNfapiMsg
->
prach_config
.
root_sequence_index
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PRACH_CONFIG_ZERO_CORRELATION_ZONE_CONFIGURATION_TAG
,
&
pNfapiMsg
->
prach_config
.
zero_correlation_zone_configuration
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PRACH_CONFIG_HIGH_SPEED_FLAG_TAG
,
&
pNfapiMsg
->
prach_config
.
high_speed_flag
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PRACH_CONFIG_FREQUENCY_OFFSET_TAG
,
&
pNfapiMsg
->
prach_config
.
frequency_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PUSCH_CONFIG_HOPPING_MODE_TAG
,
&
pNfapiMsg
->
pusch_config
.
hopping_mode
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PUSCH_CONFIG_HOPPING_OFFSET_TAG
,
&
pNfapiMsg
->
pusch_config
.
hopping_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PUSCH_CONFIG_NUMBER_OF_SUBBANDS_TAG
,
&
pNfapiMsg
->
pusch_config
.
number_of_subbands
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PUCCH_CONFIG_DELTA_PUCCH_SHIFT_TAG
,
&
pNfapiMsg
->
pucch_config
.
delta_pucch_shift
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PUCCH_CONFIG_N_CQI_RB_TAG
,
&
pNfapiMsg
->
pucch_config
.
n_cqi_rb
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PUCCH_CONFIG_N_AN_CS_TAG
,
&
pNfapiMsg
->
pucch_config
.
n_an_cs
,
&
unpack_uint16_tlv_value
},
{
NFAPI_PUCCH_CONFIG_N1_PUCCH_AN_TAG
,
&
pNfapiMsg
->
pucch_config
.
n1_pucch_an
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SRS_CONFIG_BANDWIDTH_CONFIGURATION_TAG
,
&
pNfapiMsg
->
srs_config
.
bandwidth_configuration
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SRS_CONFIG_MAX_UP_PTS_TAG
,
&
pNfapiMsg
->
srs_config
.
max_up_pts
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SRS_CONFIG_SRS_SUBFRAME_CONFIGURATION_TAG
,
&
pNfapiMsg
->
srs_config
.
srs_subframe_configuration
,
&
unpack_uint16_tlv_value
},
{
NFAPI_SRS_CONFIG_SRS_ACKNACK_SRS_SIMULTANEOUS_TRANSMISSION_TAG
,
&
pNfapiMsg
->
srs_config
.
srs_acknack_srs_simultaneous_transmission
,
&
unpack_uint16_tlv_value
},
{
NFAPI_UPLINK_REFERENCE_SIGNAL_CONFIG_UPLINK_RS_HOPPING_TAG
,
&
pNfapiMsg
->
uplink_reference_signal_config
.
uplink_rs_hopping
,
&
unpack_uint16_tlv_value
},
{
NFAPI_UPLINK_REFERENCE_SIGNAL_CONFIG_GROUP_ASSIGNMENT_TAG
,
&
pNfapiMsg
->
uplink_reference_signal_config
.
group_assignment
,
&
unpack_uint16_tlv_value
},
{
NFAPI_UPLINK_REFERENCE_SIGNAL_CONFIG_CYCLIC_SHIFT_1_FOR_DRMS_TAG
,
&
pNfapiMsg
->
uplink_reference_signal_config
.
cyclic_shift_1_for_drms
,
&
unpack_uint16_tlv_value
},
{
NFAPI_LAA_CONFIG_ED_THRESHOLD_FOR_LBT_FOR_PDSCH_TAG
,
&
pNfapiMsg
->
laa_config
.
ed_threshold_lbt_pdsch
,
&
unpack_uint16_tlv_value
},
{
NFAPI_LAA_CONFIG_ED_THRESHOLD_FOR_LBT_FOR_DRS_TAG
,
&
pNfapiMsg
->
laa_config
.
ed_threshold_lbt_drs
,
&
unpack_uint16_tlv_value
},
{
NFAPI_LAA_CONFIG_PD_THRESHOLD_TAG
,
&
pNfapiMsg
->
laa_config
.
pd_threshold
,
&
unpack_uint16_tlv_value
},
{
NFAPI_LAA_CONFIG_MULTI_CARRIER_TYPE_TAG
,
&
pNfapiMsg
->
laa_config
.
multi_carrier_type
,
&
unpack_uint16_tlv_value
},
{
NFAPI_LAA_CONFIG_MULTI_CARRIER_TX_TAG
,
&
pNfapiMsg
->
laa_config
.
multi_carrier_tx
,
&
unpack_uint16_tlv_value
},
{
NFAPI_LAA_CONFIG_MULTI_CARRIER_FREEZE_TAG
,
&
pNfapiMsg
->
laa_config
.
multi_carrier_freeze
,
&
unpack_uint16_tlv_value
},
{
NFAPI_LAA_CONFIG_TX_ANTENNA_PORTS_FOR_DRS_TAG
,
&
pNfapiMsg
->
laa_config
.
tx_antenna_ports_drs
,
&
unpack_uint16_tlv_value
},
{
NFAPI_LAA_CONFIG_TRANSMISSION_POWER_FOR_DRS_TAG
,
&
pNfapiMsg
->
laa_config
.
tx_power_drs
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PBCH_REPETITIONS_ENABLE_R13_TAG
,
&
pNfapiMsg
->
emtc_config
.
pbch_repetitions_enable_r13
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CATM_ROOT_SEQUENCE_INDEX_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_catm_root_sequence_index
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CATM_ZERO_CORRELATION_ZONE_CONFIGURATION_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_catm_zero_correlation_zone_configuration
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CATM_HIGH_SPEED_FLAG
,
&
pNfapiMsg
->
emtc_config
.
prach_catm_high_speed_flag
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_0_ENABLE_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_0_enable
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_0_CONFIGURATION_INDEX_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_0_configuration_index
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_0_FREQUENCY_OFFSET_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_0_frequency_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_0_NUMBER_OF_REPETITIONS_PER_ATTEMPT_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_0_number_of_repetitions_per_attempt
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_0_STARTING_SUBFRAME_PERIODICITY_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_0_starting_subframe_periodicity
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_0_HOPPING_ENABLE_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_0_hopping_enable
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_0_HOPPING_OFFSET_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_0_hopping_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_1_ENABLE_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_1_enable
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_1_CONFIGURATION_INDEX_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_1_configuration_index
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_1_FREQUENCY_OFFSET_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_1_frequency_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_1_NUMBER_OF_REPETITIONS_PER_ATTEMPT_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_1_number_of_repetitions_per_attempt
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_1_STARTING_SUBFRAME_PERIODICITY_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_1_starting_subframe_periodicity
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_1_HOPPING_ENABLE_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_1_hopping_enable
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_1_HOPPING_OFFSET_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_1_hopping_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_2_ENABLE_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_2_enable
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_2_CONFIGURATION_INDEX_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_2_configuration_index
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_2_FREQUENCY_OFFSET_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_2_frequency_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_2_NUMBER_OF_REPETITIONS_PER_ATTEMPT_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_2_number_of_repetitions_per_attempt
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_2_STARTING_SUBFRAME_PERIODICITY_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_2_starting_subframe_periodicity
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_2_HOPPING_ENABLE_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_2_hopping_enable
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_2_HOPPING_OFFSET_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_2_hopping_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_3_ENABLE_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_3_enable
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_3_CONFIGURATION_INDEX_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_3_configuration_index
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_3_FREQUENCY_OFFSET_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_3_frequency_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_3_NUMBER_OF_REPETITIONS_PER_ATTEMPT_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_3_number_of_repetitions_per_attempt
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_3_STARTING_SUBFRAME_PERIODICITY_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_3_starting_subframe_periodicity
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_3_HOPPING_ENABLE_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_3_hopping_enable
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PRACH_CE_LEVEL_3_HOPPING_OFFSET_TAG
,
&
pNfapiMsg
->
emtc_config
.
prach_ce_level_3_hopping_offset
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PUCCH_INTERVAL_ULHOPPINGCONFIGCOMMONMODEA_TAG
,
&
pNfapiMsg
->
emtc_config
.
pucch_interval_ulhoppingconfigcommonmodea
,
&
unpack_uint16_tlv_value
},
{
NFAPI_EMTC_CONFIG_PUCCH_INTERVAL_ULHOPPINGCONFIGCOMMONMODEB_TAG
,
&
pNfapiMsg
->
emtc_config
.
pucch_interval_ulhoppingconfigcommonmodeb
,
&
unpack_uint16_tlv_value
},
{
NFAPI_TDD_FRAME_STRUCTURE_SUBFRAME_ASSIGNMENT_TAG
,
&
pNfapiMsg
->
tdd_frame_structure_config
.
subframe_assignment
,
&
unpack_uint16_tlv_value
},
{
NFAPI_TDD_FRAME_STRUCTURE_SPECIAL_SUBFRAME_PATTERNS_TAG
,
&
pNfapiMsg
->
tdd_frame_structure_config
.
special_subframe_patterns
,
&
unpack_uint16_tlv_value
},
{
NFAPI_L23_CONFIG_DATA_REPORT_MODE_TAG
,
&
pNfapiMsg
->
l23_config
.
data_report_mode
,
&
unpack_uint16_tlv_value
},
{
NFAPI_L23_CONFIG_SFNSF_TAG
,
&
pNfapiMsg
->
l23_config
.
sfnsf
,
&
unpack_uint16_tlv_value
},
{
NFAPI_NFAPI_P7_VNF_ADDRESS_IPV4_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_vnf_address_ipv4
,
&
unpack_ipv4_address_value
},
{
NFAPI_NFAPI_P7_VNF_ADDRESS_IPV6_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_vnf_address_ipv6
,
&
unpack_ipv6_address_value
},
{
NFAPI_NFAPI_P7_VNF_PORT_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_vnf_port
,
&
unpack_uint16_tlv_value
},
{
NFAPI_NFAPI_P7_PNF_ADDRESS_IPV4_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_pnf_address_ipv4
,
&
unpack_ipv4_address_value
},
{
NFAPI_NFAPI_P7_PNF_ADDRESS_IPV6_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_pnf_address_ipv6
,
&
unpack_ipv6_address_value
},
{
NFAPI_NFAPI_P7_PNF_PORT_TAG
,
&
pNfapiMsg
->
nfapi_config
.
p7_pnf_port
,
&
unpack_uint16_tlv_value
},
{
NFAPI_NFAPI_DOWNLINK_UES_PER_SUBFRAME_TAG
,
&
pNfapiMsg
->
nfapi_config
.
dl_ue_per_sf
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NFAPI_UPLINK_UES_PER_SUBFRAME_TAG
,
&
pNfapiMsg
->
nfapi_config
.
ul_ue_per_sf
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NFAPI_RF_BANDS_TAG
,
&
pNfapiMsg
->
nfapi_config
.
rf_bands
,
&
unpack_rf_bands_value
},
{
NFAPI_NFAPI_TIMING_WINDOW_TAG
,
&
pNfapiMsg
->
nfapi_config
.
timing_window
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NFAPI_TIMING_INFO_MODE_TAG
,
&
pNfapiMsg
->
nfapi_config
.
timing_info_mode
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NFAPI_TIMING_INFO_PERIOD_TAG
,
&
pNfapiMsg
->
nfapi_config
.
timing_info_period
,
&
unpack_uint8_tlv_value
},
{
NFAPI_NFAPI_MAXIMUM_TRANSMIT_POWER_TAG
,
&
pNfapiMsg
->
nfapi_config
.
max_transmit_power
,
&
unpack_uint16_tlv_value
},
{
NFAPI_NFAPI_EARFCN_TAG
,
&
pNfapiMsg
->
nfapi_config
.
earfcn
,
&
unpack_uint16_tlv_value
},
{
NFAPI_NFAPI_NMM_GSM_FREQUENCY_BANDS_TAG
,
&
pNfapiMsg
->
nfapi_config
.
nmm_gsm_frequency_bands
,
&
unpack_nmm_frequency_bands_value
},
{
NFAPI_NFAPI_NMM_UMTS_FREQUENCY_BANDS_TAG
,
&
pNfapiMsg
->
nfapi_config
.
nmm_umts_frequency_bands
,
&
unpack_nmm_frequency_bands_value
},
{
NFAPI_NFAPI_NMM_LTE_FREQUENCY_BANDS_TAG
,
&
pNfapiMsg
->
nfapi_config
.
nmm_lte_frequency_bands
,
&
unpack_nmm_frequency_bands_value
},
{
NFAPI_NFAPI_NMM_UPLINK_RSSI_SUPPORTED_TAG
,
&
pNfapiMsg
->
nfapi_config
.
nmm_uplink_rssi_supported
,
&
unpack_uint8_tlv_value
},
};
#endif
return
(
pull8
(
ppReadPackedMsg
,
&
pNfapiMsg
->
error_code
,
end
)
&&
pull8
(
ppReadPackedMsg
,
&
pNfapiMsg
->
num_tlv
,
end
)
&&
unpack_tlv_list
(
unpack_fns
,
sizeof
(
unpack_fns
)
/
sizeof
(
unpack_tlv_t
),
ppReadPackedMsg
,
end
,
config
,
&
pNfapiMsg
->
vendor_extension
));
...
...
@@ -2706,7 +2493,7 @@ static uint8_t unpack_measurement_response(uint8_t **ppReadPackedMsg, uint8_t *e
// unpack length check
static
int
check_nr_unpack_length
(
nfapi_
message_id
_e
msgId
,
uint32_t
unpackedBufLen
)
static
int
check_nr_unpack_length
(
nfapi_
nr_phy_msg_type
_e
msgId
,
uint32_t
unpackedBufLen
)
{
int
retLen
=
0
;
...
...
@@ -2791,17 +2578,6 @@ static int check_nr_unpack_length(nfapi_message_id_e msgId, uint32_t unpackedBuf
if
(
unpackedBufLen
>=
sizeof
(
nfapi_stop_response_t
))
retLen
=
sizeof
(
nfapi_stop_response_t
);
break
;
case
NFAPI_MEASUREMENT_REQUEST
:
if
(
unpackedBufLen
>=
sizeof
(
nfapi_measurement_request_t
))
retLen
=
sizeof
(
nfapi_measurement_request_t
);
break
;
case
NFAPI_MEASUREMENT_RESPONSE
:
if
(
unpackedBufLen
>=
sizeof
(
nfapi_measurement_response_t
))
retLen
=
sizeof
(
nfapi_measurement_response_t
);
break
;
default:
NFAPI_TRACE
(
NFAPI_TRACE_ERROR
,
"%s Unknown message ID %d
\n
"
,
__FUNCTION__
,
msgId
);
break
;
...
...
This diff is collapsed.
Click to expand it.
nfapi/open-nFAPI/nfapi/src/nfapi_p7.c
View file @
190fe543
...
...
@@ -274,7 +274,7 @@ static uint8_t pack_dl_tti_pdcch_pdu_rel15_value(void* tlv, uint8_t **ppWritePac
push8(value->StartSymbolIndex, ppWritePackedMsg, end) &&
push8(value->DurationSymbols, ppWritePackedMsg, end) &&
pusharray
16
(
value
->
FreqDomainResource
,
6
,
1
,
ppWritePackedMsg
,
end
)
&&
pusharray
8(value->FreqDomainResource, 6, 6
, ppWritePackedMsg, end) &&
push8(value->CceRegMappingType, ppWritePackedMsg, end) &&
push8(value->RegBundleSize, ppWritePackedMsg, end) &&
...
...
@@ -294,7 +294,7 @@ static uint8_t pack_dl_tti_pdcch_pdu_rel15_value(void* tlv, uint8_t **ppWritePac
pusharray8(value->dci_pdu.powerControlOffsetSS, MAX_DCI_CORESET, value->numDlDci, ppWritePackedMsg, end) &&
pusharray16(value->dci_pdu.PayloadSizeBits, MAX_DCI_CORESET, value->numDlDci, ppWritePackedMsg, end) &&
pusharray8
(
value
->
dci_pdu
.
Payload
[
0
],
MAX_DCI_CORESET
*
DCI_PAYLOAD_BYTE_LEN
,
value
->
numDlDci
,
ppWritePackedMsg
,
end
)
pusharray8(value->dci_pdu.Payload[0], MAX_DCI_CORESET*DCI_PAYLOAD_BYTE_LEN, value->
dci_pdu.PayloadSizeBits[0]
, ppWritePackedMsg, end)
);
}
...
...
@@ -337,7 +337,6 @@ static uint8_t pack_dl_tti_pdsch_pdu_rel15_value(void* tlv, uint8_t **ppWritePac
push16(value->dmrsPorts, ppWritePackedMsg, end) &&
push8(value->resourceAlloc, ppWritePackedMsg, end) &&
pusharray8
(
value
->
rbBitmap
,
36
,
1
,
ppWritePackedMsg
,
end
)
&&
push16(value->rbStart, ppWritePackedMsg, end) &&
push16(value->rbSize, ppWritePackedMsg, end) &&
...
...
@@ -703,8 +702,8 @@ static uint8_t pack_dl_tti_request_body_value(void* tlv, uint8_t **ppWritePacked
{
nfapi_nr_dl_tti_request_pdu_t* value = (nfapi_nr_dl_tti_request_pdu_t*)tlv;
if
(
!
(
push
8
(
value
->
PDUSize
,
ppWritePackedMsg
,
end
)
&&
push
8
(
value
->
PDUType
,
ppWritePackedMsg
,
end
)
))
if(!(push
16
(value->PDUSize, ppWritePackedMsg, end) &&
push
16
(value->PDUType, ppWritePackedMsg, end) ))
return 0;
...
...
@@ -913,7 +912,7 @@ static uint8_t pack_dl_tti_request(void *msg, uint8_t **ppWritePackedMsg, uint8_
{
arr[j] = pNfapiMsg->dl_tti_request_body.PduIdx[i][j];
}
if
(
!
(
pusharray
8
(
arr
,
12
,
pNfapiMsg
->
dl_tti_request_body
.
nUe
[
i
],
ppWritePackedMsg
,
end
)))
if(!(pusharray
s32
(arr,12,pNfapiMsg->dl_tti_request_body.nUe[i],ppWritePackedMsg, end)))
return 0;
}
...
...
@@ -1133,10 +1132,9 @@ static uint8_t pack_ul_tti_request_pusch_pdu(nfapi_nr_pusch_pdu_t* pusch_pdu, ui
{
return(
push8(pusch_pdu->pusch_ptrs.num_ptrs_ports, ppWritePackedMsg, end) &&
pusharray32
(
pusch_pdu
->
pusch_ptrs
.
ptrs_ports_list
,
pusch_pdu
->
pusch_ptrs
.
num_ptrs_ports
,
pusch_pdu
->
pusch_ptrs
.
num_ptrs_ports
,
ppWritePackedMsg
,
end
)
&&
push8(pusch_pdu->pusch_ptrs.ptrs_ports_list->ptrs_dmrs_port, ppWritePackedMsg, end) &&
push16(pusch_pdu->pusch_ptrs.ptrs_ports_list->ptrs_port_index, ppWritePackedMsg, end) &&
push8(pusch_pdu->pusch_ptrs.ptrs_ports_list->ptrs_re_offset, ppWritePackedMsg, end) &&
push8(pusch_pdu->pusch_ptrs.ptrs_time_density, ppWritePackedMsg, end) &&
push8(pusch_pdu->pusch_ptrs.ptrs_freq_density, ppWritePackedMsg, end) &&
push8(pusch_pdu->pusch_ptrs.ul_ptrs_power, ppWritePackedMsg, end)
...
...
@@ -1554,8 +1552,8 @@ static uint8_t pack_ul_tti_pdu_list_value(void* tlv, uint8_t **ppWritePackedMsg,
{
nfapi_nr_ul_tti_request_number_of_pdus_t* value = (nfapi_nr_ul_tti_request_number_of_pdus_t*)tlv;
if
(
!
(
push
8
(
value
->
pdu_size
,
ppWritePackedMsg
,
end
)
&&
push
8
(
value
->
pdu_type
,
ppWritePackedMsg
,
end
)
))
if(!(push
16
(value->pdu_size, ppWritePackedMsg, end) &&
push
16
(value->pdu_type, ppWritePackedMsg, end) ))
return 0;
...
...
@@ -1602,9 +1600,14 @@ static uint8_t pack_ul_tti_groups_list_value(void* tlv, uint8_t **ppWritePackedM
{
nfapi_nr_ul_tti_request_number_of_groups_t* value = (nfapi_nr_ul_tti_request_number_of_groups_t*)tlv;
return
(
push8
(
value
->
n_ue
,
ppWritePackedMsg
,
end
)
&&
pusharray8
(
value
->
ue_list
,
NFAPI_MAX_NUM_UL_UE_PER_GROUP
,
value
->
n_ue
,
ppWritePackedMsg
,
end
)
);
if(!push8(value->n_ue, ppWritePackedMsg, end))
return 0;
for(int i=0; i<value->n_ue;i++)
{
if(!push8(value->ue_list[i].pdu_idx, ppWritePackedMsg, end))
return 0;
}
return 1;
}
static uint8_t pack_ul_config_request_body_value(void* tlv, uint8_t **ppWritePackedMsg, uint8_t *end)
...
...
@@ -2035,7 +2038,7 @@ static uint8_t pack_ul_dci_pdu_list_value(void* tlv, uint8_t **ppWritePackedMsg,
{
nfapi_nr_ul_dci_request_pdus_t* value = (nfapi_nr_ul_dci_request_pdus_t*)tlv;
return
(
push
32
(
value
->
PDUType
,
ppWritePackedMsg
,
end
)
&&
return (push
16
(value->PDUType, ppWritePackedMsg, end) &&
push16(value->PDUSize, ppWritePackedMsg, end) &&
push16(value->pdcch_pdu.pdcch_pdu_rel15.BWPSize, ppWritePackedMsg, end) &&
push16(value->pdcch_pdu.pdcch_pdu_rel15.BWPStart, ppWritePackedMsg, end) &&
...
...
@@ -2044,7 +2047,7 @@ static uint8_t pack_ul_dci_pdu_list_value(void* tlv, uint8_t **ppWritePackedMsg,
push8(value->pdcch_pdu.pdcch_pdu_rel15.StartSymbolIndex, ppWritePackedMsg, end) &&
push8(value->pdcch_pdu.pdcch_pdu_rel15.DurationSymbols, ppWritePackedMsg, end) &&
pusharray
16
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
FreqDomainResource
,
6
,
1
,
ppWritePackedMsg
,
end
)
&&
pusharray
8(value->pdcch_pdu.pdcch_pdu_rel15.FreqDomainResource, 6, 6
, ppWritePackedMsg, end) &&
push8(value->pdcch_pdu.pdcch_pdu_rel15.CceRegMappingType, ppWritePackedMsg, end) &&
push8(value->pdcch_pdu.pdcch_pdu_rel15.RegBundleSize, ppWritePackedMsg, end) &&
...
...
@@ -2054,17 +2057,17 @@ static uint8_t pack_ul_dci_pdu_list_value(void* tlv, uint8_t **ppWritePackedMsg,
push8(value->pdcch_pdu.pdcch_pdu_rel15.precoderGranularity, ppWritePackedMsg, end) &&
push16(value->pdcch_pdu.pdcch_pdu_rel15.numDlDci, ppWritePackedMsg, end) &&
pusharray16
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
RNTI
,
MAX_DCI_CORESET
,
1
,
ppWritePackedMsg
,
end
)
&&
pusharray16
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
ScramblingId
,
MAX_DCI_CORESET
,
1
,
ppWritePackedMsg
,
end
)
&&
pusharray16(value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.RNTI, MAX_DCI_CORESET,
value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, ppWritePackedMsg, end) &&
pusharray16(value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.ScramblingId, MAX_DCI_CORESET,
value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, ppWritePackedMsg, end) &&
pusharray16
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
ScramblingRNTI
,
MAX_DCI_CORESET
,
1
,
ppWritePackedMsg
,
end
)
&&
pusharray8
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
CceIndex
,
MAX_DCI_CORESET
,
1
,
ppWritePackedMsg
,
end
)
&&
pusharray8
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
AggregationLevel
,
MAX_DCI_CORESET
,
1
,
ppWritePackedMsg
,
end
)
&&
pusharray8
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
beta_PDCCH_1_0
,
MAX_DCI_CORESET
,
1
,
ppWritePackedMsg
,
end
)
&&
pusharray16(value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.ScramblingRNTI, MAX_DCI_CORESET,
value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, ppWritePackedMsg, end) &&
pusharray8(value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.CceIndex, MAX_DCI_CORESET,
value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, ppWritePackedMsg, end) &&
pusharray8(value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.AggregationLevel, MAX_DCI_CORESET,
value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, ppWritePackedMsg, end) &&
pusharray8(value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.beta_PDCCH_1_0, MAX_DCI_CORESET,
value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, ppWritePackedMsg, end) &&
pusharray8
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
powerControlOffsetSS
,
MAX_DCI_CORESET
,
1
,
ppWritePackedMsg
,
end
)
&&
pusharray16
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
PayloadSizeBits
,
MAX_DCI_CORESET
,
1
,
ppWritePackedMsg
,
end
)
&&
pusharray8
(
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
Payload
[
0
],
MAX_DCI_CORESET
*
DCI_PAYLOAD_BYTE_LEN
,
1
,
ppWritePackedMsg
,
end
)
pusharray8(value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.powerControlOffsetSS, MAX_DCI_CORESET,
value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, ppWritePackedMsg, end) &&
pusharray16(value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.PayloadSizeBits, MAX_DCI_CORESET,
value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, ppWritePackedMsg, end) &&
pusharray8(value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.Payload[0], MAX_DCI_CORESET*DCI_PAYLOAD_BYTE_LEN,
value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.PayloadSizeBits[0]
, ppWritePackedMsg, end)
);
...
...
@@ -2078,7 +2081,7 @@ static uint8_t pack_ul_dci_request(void *msg, uint8_t **ppWritePackedMsg, uint8_
if (!(push16(pNfapiMsg->SFN, ppWritePackedMsg, end) &&
push16(pNfapiMsg->Slot, ppWritePackedMsg, end) &&
push
16
(
pNfapiMsg
->
numPdus
,
ppWritePackedMsg
,
end
)
push
8
(pNfapiMsg->numPdus, ppWritePackedMsg, end)
))
return 0;
...
...
@@ -3727,7 +3730,7 @@ static uint8_t unpack_dl_tti_csi_rs_pdu_rel15_value(void* tlv, uint8_t **ppReadP
pull16(ppReadPackedMsg, &value->freq_domain, end) &&
pull8(ppReadPackedMsg, &value->symb_l0, end) &&
pu
sh
8
(
ppReadPackedMsg
,
&
value
->
symb_l1
,
end
)
&&
pu
ll
8(ppReadPackedMsg, &value->symb_l1, end) &&
pull8(ppReadPackedMsg, &value->cdm_type, end) &&
pull8(ppReadPackedMsg, &value->freq_density, end) &&
...
...
@@ -3753,7 +3756,7 @@ static uint8_t unpack_dl_tti_pdcch_pdu_rel15_value(void* tlv, uint8_t **ppReadPa
pull8(ppReadPackedMsg, &value->StartSymbolIndex, end) &&
pull8(ppReadPackedMsg, &value->DurationSymbols, end) &&
pullarray
16
(
ppReadPackedMsg
,
&
value
->
FreqDomainResource
,
6
,
1
,
end
)
&&
pullarray
8(ppReadPackedMsg, value->FreqDomainResource, 6, 6
, end) &&
pull8(ppReadPackedMsg, &value->CceRegMappingType, end) &&
pull8(ppReadPackedMsg, &value->RegBundleSize, end) &&
...
...
@@ -3763,17 +3766,17 @@ static uint8_t unpack_dl_tti_pdcch_pdu_rel15_value(void* tlv, uint8_t **ppReadPa
pull8(ppReadPackedMsg, &value->precoderGranularity, end) &&
pull16(ppReadPackedMsg, &value->numDlDci, end) &&
pullarray16
(
ppReadPackedMsg
,
&
value
->
dci_pdu
.
RNTI
,
MAX_DCI_CORESET
,
value
->
numDlDci
,
end
)
&&
pullarray16
(
ppReadPackedMsg
,
&
value
->
dci_pdu
.
ScramblingId
,
MAX_DCI_CORESET
,
value
->
numDlDci
,
end
)
&&
pullarray16(ppReadPackedMsg, value->dci_pdu.RNTI, MAX_DCI_CORESET, value->numDlDci, end) &&
pullarray16(ppReadPackedMsg, value->dci_pdu.ScramblingId, MAX_DCI_CORESET, value->numDlDci, end) &&
pullarray16
(
ppReadPackedMsg
,
&
value
->
dci_pdu
.
ScramblingRNTI
,
MAX_DCI_CORESET
,
value
->
numDlDci
,
end
)
&&
pullarray8
(
ppReadPackedMsg
,
&
value
->
dci_pdu
.
CceIndex
,
MAX_DCI_CORESET
,
value
->
numDlDci
,
end
)
&&
pullarray8
(
ppReadPackedMsg
,
&
value
->
dci_pdu
.
AggregationLevel
,
MAX_DCI_CORESET
,
value
->
numDlDci
,
end
)
&&
pullarray8
(
ppReadPackedMsg
,
&
value
->
dci_pdu
.
beta_PDCCH_1_0
,
MAX_DCI_CORESET
,
value
->
numDlDci
,
end
)
&&
pullarray16(ppReadPackedMsg, value->dci_pdu.ScramblingRNTI, MAX_DCI_CORESET, value->numDlDci, end) &&
pullarray8(ppReadPackedMsg, value->dci_pdu.CceIndex, MAX_DCI_CORESET, value->numDlDci, end) &&
pullarray8(ppReadPackedMsg, value->dci_pdu.AggregationLevel, MAX_DCI_CORESET,value->numDlDci, end) &&
pullarray8(ppReadPackedMsg, value->dci_pdu.beta_PDCCH_1_0, MAX_DCI_CORESET, value->numDlDci, end) &&
pullarray8
(
ppReadPackedMsg
,
&
value
->
dci_pdu
.
powerControlOffsetSS
,
MAX_DCI_CORESET
,
value
->
numDlDci
,
end
)
&&
pullarray16
(
ppReadPackedMsg
,
&
value
->
dci_pdu
.
PayloadSizeBits
,
MAX_DCI_CORESET
,
value
->
numDlDci
,
end
)
&&
pullarray8
(
ppReadPackedMsg
,
&
value
->
dci_pdu
.
Payload
[
0
],
MAX_DCI_CORESET
*
DCI_PAYLOAD_BYTE_LEN
,
value
->
numDlDci
,
end
)
pullarray8(ppReadPackedMsg, value->dci_pdu.powerControlOffsetSS, MAX_DCI_CORESET, value->numDlDci, end) &&
pullarray16(ppReadPackedMsg, value->dci_pdu.PayloadSizeBits, MAX_DCI_CORESET, value->numDlDci, end) &&
pullarray8(ppReadPackedMsg,
value->dci_pdu.Payload[0], MAX_DCI_CORESET*DCI_PAYLOAD_BYTE_LEN,value->dci_pdu.PayloadSizeBits[0]
, end)
);
}
...
...
@@ -3795,13 +3798,13 @@ static uint8_t unpack_dl_tti_pdsch_pdu_rel15_value(void* tlv, uint8_t **ppReadPa
pull8(ppReadPackedMsg, &value->CyclicPrefix, end) &&
pull8(ppReadPackedMsg, &value->NrOfCodewords, end) &&
pullarray16
(
ppReadPackedMsg
,
&
value
->
targetCodeRate
,
2
,
1
,
end
)
&&
pullarray8
(
ppReadPackedMsg
,
&
value
->
qamModOrder
,
2
,
1
,
end
)
&&
pullarray8
(
ppReadPackedMsg
,
&
value
->
mcsIndex
,
2
,
1
,
end
)
&&
pullarray8
(
ppReadPackedMsg
,
&
value
->
mcsTable
,
2
,
1
,
end
)
&&
pullarray16(ppReadPackedMsg, value->targetCodeRate, 2, 1, end) &&
pullarray8(ppReadPackedMsg, value->qamModOrder, 2, 1, end) &&
pullarray8(ppReadPackedMsg, value->mcsIndex, 2, 1, end) &&
pullarray8(ppReadPackedMsg, value->mcsTable, 2, 1, end) &&
pullarray8
(
ppReadPackedMsg
,
&
value
->
rvIndex
,
2
,
1
,
end
)
&&
pullarray32
(
ppReadPackedMsg
,
&
value
->
TBSize
,
2
,
1
,
end
)
&&
pullarray8(ppReadPackedMsg, value->rvIndex, 2, 1, end) &&
pullarray32(ppReadPackedMsg, value->TBSize, 2, 1, end) &&
pull16(ppReadPackedMsg, &value->dataScramblingId, end) &&
pull8(ppReadPackedMsg, &value->nrOfLayers, end) &&
...
...
@@ -3816,7 +3819,6 @@ static uint8_t unpack_dl_tti_pdsch_pdu_rel15_value(void* tlv, uint8_t **ppReadPa
pull16(ppReadPackedMsg, &value->dmrsPorts, end) &&
pull8(ppReadPackedMsg, &value->resourceAlloc, end) &&
pullarray8
(
ppReadPackedMsg
,
&
value
->
rbBitmap
,
36
,
1
,
end
)
&&
pull16(ppReadPackedMsg, &value->rbStart, end) &&
pull16(ppReadPackedMsg, &value->rbSize, end) &&
...
...
@@ -4300,8 +4302,8 @@ static uint8_t unpack_dl_tti_request_body_value(uint8_t **ppReadPackedMsg, uint8
{
nfapi_nr_dl_tti_request_pdu_t* value = (nfapi_nr_dl_tti_request_pdu_t*)msg;
if
(
!
(
pull
8
(
ppReadPackedMsg
,
&
value
->
PDUSize
,
end
)
&&
pull
8
(
ppReadPackedMsg
,
&
value
->
PDUType
,
end
)
))
if(!(pull
16
(ppReadPackedMsg, &value->PDUSize, end) &&
pull
16
(ppReadPackedMsg, &value->PDUType, end) ))
return 0;
...
...
@@ -4557,14 +4559,11 @@ static uint8_t unpack_dl_tti_request(uint8_t **ppReadPackedMsg, uint8_t *end, vo
pull16(ppReadPackedMsg, &pNfapiMsg->Slot, end) &&
pull8(ppReadPackedMsg, &pNfapiMsg->dl_tti_request_body.nGroup, end) &&
pull8(ppReadPackedMsg, &pNfapiMsg->dl_tti_request_body.nPDUs, end) &&
pullarray8
(
ppReadPackedMsg
,
&
pNfapiMsg
->
dl_tti_request_body
.
nUe
,
256
,
pNfapiMsg
->
dl_tti_request_body
.
nGroup
,
end
)
pullarray8(ppReadPackedMsg,pNfapiMsg->dl_tti_request_body.nUe ,256,pNfapiMsg->dl_tti_request_body.nGroup, end)
//pusharray8(pNfapiMsg->PduIdx[0] ,256,256, ppWritePackedMsg, end)
))
return 0;
// if(pNfapiMsg->Slot % 2 != 0){
// printf("\nEntering unpack_dl_tti_request Odd sfn=%d,slot=%d\n",pNfapiMsg->SFN,pNfapiMsg->Slot);
// }
int arr[12];
for(int i=0;i<pNfapiMsg->dl_tti_request_body.nGroup;i++)
{
...
...
@@ -4572,7 +4571,7 @@ static uint8_t unpack_dl_tti_request(uint8_t **ppReadPackedMsg, uint8_t *end, vo
{
arr[j] = pNfapiMsg->dl_tti_request_body.PduIdx[i][j];
}
if
(
!
(
pullarray
8
(
ppReadPackedMsg
,
arr
,
12
,
pNfapiMsg
->
dl_tti_request_body
.
nUe
[
i
],
end
)))
if(!(pullarray
s32
(ppReadPackedMsg,arr,12,pNfapiMsg->dl_tti_request_body.nUe[i], end)))
return 0;
}
...
...
@@ -4692,7 +4691,7 @@ static uint8_t unpack_ul_tti_request_pusch_pdu(void *tlv, uint8_t **ppReadPacked
pull8(ppReadPackedMsg, &pusch_pdu->pusch_data.harq_process_id, end) &&
pull32(ppReadPackedMsg, &pusch_pdu->pusch_data.tb_size, end) &&
pull16(ppReadPackedMsg, &pusch_pdu->pusch_data.num_cb, end) &&
pullarray8
(
ppReadPackedMsg
,
&
pusch_pdu
->
pusch_data
.
cb_present_and_position
,
1
,
1
,
end
)
pullarray8(ppReadPackedMsg, pusch_pdu->pusch_data.cb_present_and_position,1,1,end)
);
}
break;
...
...
@@ -4715,10 +4714,9 @@ static uint8_t unpack_ul_tti_request_pusch_pdu(void *tlv, uint8_t **ppReadPacked
{
return(
pull8(ppReadPackedMsg, &pusch_pdu->pusch_ptrs.num_ptrs_ports, end) &&
pullarray32
(
ppReadPackedMsg
,
&
pusch_pdu
->
pusch_ptrs
.
ptrs_ports_list
,
pusch_pdu
->
pusch_ptrs
.
num_ptrs_ports
,
pusch_pdu
->
pusch_ptrs
.
num_ptrs_ports
,
end
)
&&
pull8(ppReadPackedMsg, &pusch_pdu->pusch_ptrs.ptrs_ports_list->ptrs_dmrs_port, end) &&
+ pull16(ppReadPackedMsg, &pusch_pdu->pusch_ptrs.ptrs_ports_list->ptrs_port_index, end) &&
+ pull8(ppReadPackedMsg, &pusch_pdu->pusch_ptrs.ptrs_ports_list->ptrs_re_offset, end) &&
pull8(ppReadPackedMsg, &pusch_pdu->pusch_ptrs.ptrs_time_density, end) &&
pull8(ppReadPackedMsg, &pusch_pdu->pusch_ptrs.ptrs_freq_density, end) &&
pull8(ppReadPackedMsg, &pusch_pdu->pusch_ptrs.ul_ptrs_power, end)
...
...
@@ -4784,8 +4782,8 @@ static uint8_t unpack_ul_tti_pdu_list_value(uint8_t **ppReadPackedMsg, uint8_t *
{
nfapi_nr_ul_tti_request_number_of_pdus_t* pNfapiMsg = (nfapi_nr_ul_tti_request_number_of_pdus_t*)msg;
if
(
!
(
pull
8
(
ppReadPackedMsg
,
&
pNfapiMsg
->
pdu_size
,
end
)
&&
pull
8
(
ppReadPackedMsg
,
&
pNfapiMsg
->
pdu_type
,
end
)
))
if(!(pull
16
(ppReadPackedMsg, &pNfapiMsg->pdu_size, end) &&
pull
16
(ppReadPackedMsg, &pNfapiMsg->pdu_type, end) ))
return 0;
...
...
@@ -4838,8 +4836,14 @@ static uint8_t unpack_ul_tti_groups_list_value(uint8_t **ppReadPackedMsg, uint8_
{
nfapi_nr_ul_tti_request_number_of_groups_t* pNfapiMsg = (nfapi_nr_ul_tti_request_number_of_groups_t*)msg;
return
(
pull8
(
ppReadPackedMsg
,
&
pNfapiMsg
->
n_ue
,
end
)
&&
pullarray8
(
ppReadPackedMsg
,
&
pNfapiMsg
->
ue_list
,
NFAPI_MAX_NUM_UL_UE_PER_GROUP
,
pNfapiMsg
->
n_ue
,
end
)
);
if(!pull8(ppReadPackedMsg, &pNfapiMsg->n_ue, end))
return 0;
for (int i = 0; i < pNfapiMsg->n_ue; i++)
{
if(!pull8(ppReadPackedMsg, &pNfapiMsg->ue_list[i].pdu_idx ,end) )
return 0;
}
return 1;
}
...
...
@@ -5816,7 +5820,7 @@ static uint8_t unpack_ul_dci_pdu_list_value(uint8_t **ppReadPackedMsg, uint8_t *
{
nfapi_nr_ul_dci_request_pdus_t* value = (nfapi_nr_ul_dci_request_pdus_t*)msg;
return
(
pull
32
(
ppReadPackedMsg
,
&
value
->
PDUType
,
end
)
&&
return (pull
16
(ppReadPackedMsg, &value->PDUType, end) &&
pull16(ppReadPackedMsg, &value->PDUSize, end) &&
pull16(ppReadPackedMsg, &value->pdcch_pdu.pdcch_pdu_rel15.BWPSize, end) &&
pull16(ppReadPackedMsg, &value->pdcch_pdu.pdcch_pdu_rel15.BWPStart, end) &&
...
...
@@ -5825,7 +5829,7 @@ static uint8_t unpack_ul_dci_pdu_list_value(uint8_t **ppReadPackedMsg, uint8_t *
pull8(ppReadPackedMsg, &value->pdcch_pdu.pdcch_pdu_rel15.StartSymbolIndex, end) &&
pull8(ppReadPackedMsg, &value->pdcch_pdu.pdcch_pdu_rel15.DurationSymbols, end) &&
pullarray
16
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
FreqDomainResource
,
6
,
1
,
end
)
&&
pullarray
8(ppReadPackedMsg, value->pdcch_pdu.pdcch_pdu_rel15.FreqDomainResource, 6, 6
, end) &&
pull8(ppReadPackedMsg, &value->pdcch_pdu.pdcch_pdu_rel15.CceRegMappingType, end) &&
pull8(ppReadPackedMsg, &value->pdcch_pdu.pdcch_pdu_rel15.RegBundleSize, end) &&
...
...
@@ -5835,17 +5839,17 @@ static uint8_t unpack_ul_dci_pdu_list_value(uint8_t **ppReadPackedMsg, uint8_t *
pull8(ppReadPackedMsg, &value->pdcch_pdu.pdcch_pdu_rel15.precoderGranularity, end) &&
pull16(ppReadPackedMsg, &value->pdcch_pdu.pdcch_pdu_rel15.numDlDci, end) &&
pullarray16
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
RNTI
,
MAX_DCI_CORESET
,
1
,
end
)
&&
pullarray16
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
ScramblingId
,
MAX_DCI_CORESET
,
1
,
end
)
&&
pullarray16(ppReadPackedMsg,
value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.RNTI, MAX_DCI_CORESET, value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, end) &&
pullarray16(ppReadPackedMsg,
value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.ScramblingId, MAX_DCI_CORESET, value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, end) &&
pullarray16
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
ScramblingRNTI
,
MAX_DCI_CORESET
,
1
,
end
)
&&
pullarray8
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
CceIndex
,
MAX_DCI_CORESET
,
1
,
end
)
&&
pullarray8
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
AggregationLevel
,
MAX_DCI_CORESET
,
1
,
end
)
&&
pullarray8
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
beta_PDCCH_1_0
,
MAX_DCI_CORESET
,
1
,
end
)
&&
pullarray16(ppReadPackedMsg,
value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.ScramblingRNTI, MAX_DCI_CORESET, value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, end) &&
pullarray8(ppReadPackedMsg,
value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.CceIndex, MAX_DCI_CORESET, value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, end) &&
pullarray8(ppReadPackedMsg,
value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.AggregationLevel, MAX_DCI_CORESET, value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, end) &&
pullarray8(ppReadPackedMsg,
value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.beta_PDCCH_1_0, MAX_DCI_CORESET, value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, end) &&
pullarray8
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
powerControlOffsetSS
,
MAX_DCI_CORESET
,
1
,
end
)
&&
pullarray16
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
PayloadSizeBits
,
MAX_DCI_CORESET
,
1
,
end
)
&&
pullarray8
(
ppReadPackedMsg
,
&
value
->
pdcch_pdu
.
pdcch_pdu_rel15
.
dci_pdu
.
Payload
[
0
],
MAX_DCI_CORESET
*
DCI_PAYLOAD_BYTE_LEN
,
1
,
end
)
pullarray8(ppReadPackedMsg,
value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.powerControlOffsetSS, MAX_DCI_CORESET, value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, end) &&
pullarray16(ppReadPackedMsg,
value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.PayloadSizeBits, MAX_DCI_CORESET, value->pdcch_pdu.pdcch_pdu_rel15.numDlDci
, end) &&
pullarray8(ppReadPackedMsg,
value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.Payload[0], MAX_DCI_CORESET*DCI_PAYLOAD_BYTE_LEN, value->pdcch_pdu.pdcch_pdu_rel15.dci_pdu.PayloadSizeBits[0]
, end)
);
}
...
...
@@ -5856,7 +5860,7 @@ nfapi_nr_ul_dci_request_t *pNfapiMsg = (nfapi_nr_ul_dci_request_t*)msg;
if (!(pull16(ppReadPackedMsg, &pNfapiMsg->SFN, end) &&
pull16(ppReadPackedMsg, &pNfapiMsg->Slot, end) &&
pull
16
(
ppReadPackedMsg
,
&
pNfapiMsg
->
numPdus
,
end
)
pull
8
(ppReadPackedMsg, &pNfapiMsg->numPdus, end)
))
return 0;
for(int i=0; i< pNfapiMsg->numPdus; i++)
...
...
@@ -5904,7 +5908,7 @@ static uint8_t unpack_tx_data_pdu_list_value(uint8_t **ppReadPackedMsg, uint8_t
switch(pNfapiMsg->TLVs[i].tag){
case 0:
{
if
(
!
pullarray32
(
ppReadPackedMsg
,
&
pNfapiMsg
->
TLVs
[
i
].
value
.
direct
,
16384
,
pNfapiMsg
->
TLVs
[
i
].
length
,
end
))
if(!pullarray32(ppReadPackedMsg, pNfapiMsg->TLVs[i].value.direct, 16384, pNfapiMsg->TLVs[i].length, end))
return 0;
break;
...
...
@@ -5912,7 +5916,7 @@ static uint8_t unpack_tx_data_pdu_list_value(uint8_t **ppReadPackedMsg, uint8_t
case 1:
{
if
(
!
pullarray32
(
ppReadPackedMsg
,
&
pNfapiMsg
->
TLVs
[
i
].
value
.
ptr
,
pNfapiMsg
->
TLVs
[
i
].
length
,
pNfapiMsg
->
TLVs
[
i
].
length
,
end
))
if(!pullarray32(ppReadPackedMsg, pNfapiMsg->TLVs[i].value.ptr, pNfapiMsg->TLVs[i].length , pNfapiMsg->TLVs[i].length, end))
return 0;
break;
...
...
This diff is collapsed.
Click to expand it.
nfapi/open-nFAPI/pnf/src/pnf.c
View file @
190fe543
...
...
@@ -430,49 +430,6 @@ void pnf_handle_pnf_stop_request(pnf_t* pnf, void *pRecvMsg, int recvMsgLen)
}
}
void
pnf_nr_handle_pnf_stop_request
(
pnf_t
*
pnf
,
void
*
pRecvMsg
,
int
recvMsgLen
)
{
// ensure it's valid
if
(
pRecvMsg
==
NULL
||
pnf
==
NULL
)
{
NFAPI_TRACE
(
NFAPI_TRACE_ERROR
,
"%s: NULL parameters
\n
"
,
__FUNCTION__
);
}
else
{
nfapi_nr_pnf_stop_request_t
req
;
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"PNF_STOP.request Received
\n
"
);
// unpack the message
if
(
nfapi_nr_p5_message_unpack
(
pRecvMsg
,
recvMsgLen
,
&
req
,
sizeof
(
req
),
&
pnf
->
_public
.
codec_config
)
>=
0
)
{
if
(
pnf
->
_public
.
state
==
NFAPI_PNF_RUNNING
)
{
if
(
pnf
->
_public
.
pnf_stop_req
)
{
(
pnf
->
_public
.
pnf_stop_req
)(
&
(
pnf
->
_public
),
&
req
);
}
}
else
{
nfapi_pnf_stop_response_t
resp
;
memset
(
&
resp
,
0
,
sizeof
(
resp
));
resp
.
header
.
message_id
=
NFAPI_PNF_STOP_RESPONSE
;
resp
.
error_code
=
NFAPI_MSG_INVALID_STATE
;
nfapi_pnf_pnf_stop_resp
(
&
(
pnf
->
_public
),
&
resp
);
}
}
else
{
NFAPI_TRACE
(
NFAPI_TRACE_ERROR
,
"%s: Unpack message failed, ignoring
\n
"
,
__FUNCTION__
);
}
if
(
req
.
vendor_extension
)
pnf
->
_public
.
codec_config
.
deallocate
(
req
.
vendor_extension
);
}
}
void
pnf_handle_param_request
(
pnf_t
*
pnf
,
void
*
pRecvMsg
,
int
recvMsgLen
)
{
// ensure it's valid
...
...
@@ -1611,8 +1568,8 @@ void pnf_nr_handle_p5_message(pnf_t* pnf, void *pRecvMsg, int recvMsgLen)
pnf_nr_handle_pnf_start_request
(
pnf
,
pRecvMsg
,
recvMsgLen
);
break
;
case
NFAPI_
NR_PHY_MSG_TYPE_
PNF_STOP_REQUEST
:
pnf_
nr_
handle_pnf_stop_request
(
pnf
,
pRecvMsg
,
recvMsgLen
);
case
NFAPI_PNF_STOP_REQUEST
:
pnf_handle_pnf_stop_request
(
pnf
,
pRecvMsg
,
recvMsgLen
);
break
;
case
NFAPI_NR_PHY_MSG_TYPE_PARAM_REQUEST
:
...
...
This diff is collapsed.
Click to expand it.
nfapi/open-nFAPI/vnf/inc/vnf_p7.h
View file @
190fe543
...
...
@@ -138,6 +138,7 @@ nfapi_vnf_p7_connection_info_t* vnf_p7_connection_info_list_find(vnf_p7_t* vnf_p
nfapi_vnf_p7_connection_info_t
*
vnf_p7_connection_info_list_delete
(
vnf_p7_t
*
vnf_p7
,
uint16_t
phy_id
);
int
vnf_p7_pack_and_send_p7_msg
(
vnf_p7_t
*
vnf_p7
,
nfapi_p7_message_header_t
*
header
);
int
vnf_nr_p7_pack_and_send_p7_msg
(
vnf_p7_t
*
vnf_p7
,
nfapi_p7_message_header_t
*
header
);
void
vnf_p7_release_msg
(
vnf_p7_t
*
vnf_p7
,
nfapi_p7_message_header_t
*
header
);
void
vnf_p7_release_pdu
(
vnf_p7_t
*
vnf_p7
,
void
*
pdu
);
...
...
This diff is collapsed.
Click to expand it.
nfapi/open-nFAPI/vnf/public_inc/nfapi_vnf_interface.h
View file @
190fe543
...
...
@@ -253,7 +253,7 @@ typedef struct nfapi_vnf_config
* then the substructure pointers should be set to 0 and then the client should
* use the codec_config.deallocate function to release it at a future point
*/
int
(
*
param_resp
)(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_
nr_param_response_scf
_t
*
resp
);
int
(
*
param_resp
)(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_
param_response
_t
*
resp
);
int
(
*
nr_param_resp
)(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_nr_param_response_scf_t
*
resp
);
/*! A callback for the CONFIG.response
...
...
@@ -477,7 +477,7 @@ void nfapi_vnf_config_destory(nfapi_vnf_config_t* config);
*
* This function will not return untill nfapi_vnf_stop is called
*/
//
int nfapi_nr_vnf_start(nfapi_vnf_config_t* config);
int
nfapi_nr_vnf_start
(
nfapi_vnf_config_t
*
config
);
int
nfapi_vnf_start
(
nfapi_vnf_config_t
*
config
);
...
...
This diff is collapsed.
Click to expand it.
nfapi/open-nFAPI/vnf/src/vnf.c
View file @
190fe543
...
...
@@ -21,6 +21,7 @@
#include <arpa/inet.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include "vnf.h"
...
...
@@ -417,7 +418,7 @@ void vnf_nr_handle_param_response(void *pRecvMsg, int recvMsgLen, nfapi_vnf_conf
if
(
nfapi_nr_p5_message_unpack
(
pRecvMsg
,
recvMsgLen
,
&
msg
,
sizeof
(
msg
),
&
config
->
codec_config
)
>=
0
)
{
if
(
msg
.
error_code
==
NFAPI_MSG_OK
)
if
(
msg
.
error_code
==
NFAPI_
NR_PARAM_
MSG_OK
)
{
nfapi_vnf_phy_info_t
*
phy_info
=
nfapi_vnf_phy_info_list_find
(
config
,
msg
.
header
.
phy_id
);
...
...
@@ -485,7 +486,7 @@ void vnf_nr_handle_config_response(void *pRecvMsg, int recvMsgLen, nfapi_vnf_con
{
// check the error code:
if
(
msg
.
error_code
==
NFAPI_MSG_OK
){
if
(
msg
.
error_code
==
NFAPI_
NR_CONFIG_
MSG_OK
){
if
(
config
->
nr_config_resp
)
{
(
config
->
nr_config_resp
)(
config
,
p5_idx
,
&
msg
);
...
...
@@ -588,7 +589,7 @@ void vnf_nr_handle_start_response(void *pRecvMsg, int recvMsgLen, nfapi_vnf_conf
// unpack the message
if
(
nfapi_nr_p5_message_unpack
(
pRecvMsg
,
recvMsgLen
,
&
msg
,
sizeof
(
msg
),
&
config
->
codec_config
)
>=
0
)
{
// check the error code
if
(
msg
.
error_code
==
NFAPI_MSG_OK
){
if
(
msg
.
error_code
==
NFAPI_
NR_START_
MSG_OK
){
if
(
config
->
nr_start_resp
)
{
(
config
->
nr_start_resp
)(
config
,
p5_idx
,
&
msg
);
...
...
This diff is collapsed.
Click to expand it.
openair1/SCHED/nfapi_lte_dummy.c
View file @
190fe543
...
...
@@ -26,6 +26,22 @@ NR_IF_Module_t *NR_IF_Module_init(int Mod_id) {}
void
handle_nfapi_nr_ul_dci_pdu
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_ul_dci_request_pdus_t
*
ul_dci_request_pdu
){}
void
nr_fill_ulsch
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_pusch_pdu_t
*
ulsch_pdu
){}
void
nr_fill_pucch
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_pucch_pdu_t
*
pucch_pdu
){}
void
nr_fill_prach
(
PHY_VARS_gNB
*
gNB
,
int
SFN
,
int
Slot
,
nfapi_nr_prach_pdu_t
*
prach_pdu
){}
void
nr_fill_prach_ru
(
RU_t
*
ru
,
int
SFN
,
int
Slot
,
nfapi_nr_prach_pdu_t
*
prach_pdu
){}
void
nr_phy_config_request
(
NR_PHY_Config_t
*
gNB
){}
...
...
This diff is collapsed.
Click to expand it.
openair1/SCHED/nfapi_nr_dummy.c
View file @
190fe543
...
...
@@ -26,6 +26,22 @@ NR_IF_Module_t *NR_IF_Module_init(int Mod_id) {}
void
handle_nfapi_nr_ul_dci_pdu
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_ul_dci_request_pdus_t
*
ul_dci_request_pdu
){}
void
nr_fill_ulsch
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_pusch_pdu_t
*
ulsch_pdu
){}
void
nr_fill_pucch
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_pucch_pdu_t
*
pucch_pdu
){}
void
nr_fill_prach
(
PHY_VARS_gNB
*
gNB
,
int
SFN
,
int
Slot
,
nfapi_nr_prach_pdu_t
*
prach_pdu
){}
void
nr_fill_prach_ru
(
RU_t
*
ru
,
int
SFN
,
int
Slot
,
nfapi_nr_prach_pdu_t
*
prach_pdu
){}
void
nr_phy_config_request
(
NR_PHY_Config_t
*
gNB
){}
...
...
This diff is collapsed.
Click to expand it.
openair1/SCHED_NR/fapi_nr_l1.c
View file @
190fe543
...
...
@@ -234,11 +234,15 @@ if(nfapi_mode != 2)
}
}
//
if(nfapi_mode != 0 && number_ul_tti_pdu>0)
//
{
//
oai_nfapi_ul_tti_req(UL_tti_req);
// } Test only DL
if
(
nfapi_mode
!=
0
&&
number_ul_tti_pdu
>
0
)
{
oai_nfapi_ul_tti_req
(
UL_tti_req
);
}
if
(
nfapi_mode
!=
0
&&
Sched_INFO
->
UL_dci_req
->
numPdus
!=
0
)
{
oai_nfapi_ul_dci_req
(
Sched_INFO
->
UL_dci_req
);
}
//Only DL
if
(
nfapi_mode
!=
0
)
{
if
(
Sched_INFO
->
DL_req
->
dl_tti_request_body
.
nPDUs
>
0
)
...
...
@@ -254,8 +258,4 @@ if(nfapi_mode != 2)
}
// if (nfapi_mode != 0 && Sched_INFO->UL_dci_req->numPdus!=0)
// {
// oai_nfapi_ul_dci_req(Sched_INFO->UL_dci_req);
// }//Only DL
}
This diff is collapsed.
Click to expand it.
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