Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenXG
OpenXG UE
Commits
4fb2bf56
Commit
4fb2bf56
authored
Jun 14, 2020
by
MaheshK1995
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
resolved pack/unpack issue
parent
0a6bdb9f
Changes
5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
304 additions
and
23 deletions
+304
-23
nfapi/README.md
nfapi/README.md
+9
-9
nfapi/oai_integration/nfapi_pnf.c
nfapi/oai_integration/nfapi_pnf.c
+205
-8
nfapi/oai_integration/nfapi_vnf.c
nfapi/oai_integration/nfapi_vnf.c
+15
-2
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
+9
-4
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+66
-0
No files found.
nfapi/README.md
View file @
4fb2bf56
# Changelog
each change log shoudl contain the list of commit IDs, the id of issues fixed
### 14/06/20
*
we are not clear on how the parameters are extracted from the config file
*
in ssc struct
*
for some values it is okay and for others it is zero (in
`config_request`
)
*
This causes Assertion Failures leading to termination on PNF side.
| COMMIT ID: | changes |
|---------------|-----------|
| 6ba001ae9 | modified
`.gitignore file`
|
`.gitignore`
: N/A
```
+ .vscode/*
```
\ No newline at end of file
### 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
nfapi/oai_integration/nfapi_pnf.c
View file @
4fb2bf56
This diff is collapsed.
Click to expand it.
nfapi/oai_integration/nfapi_vnf.c
View file @
4fb2bf56
...
...
@@ -42,6 +42,9 @@
#include "openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h"
#include "common/ran_context.h"
#define TEST
extern
RAN_CONTEXT_t
RC
;
extern
UL_RCC_IND_t
UL_RCC_INFO
;
...
...
@@ -1013,6 +1016,15 @@ int pnf_start_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_pnf_start_re
extern
uint32_t
to_earfcn
(
int
eutra_bandP
,
uint32_t
dl_CarrierFreq
,
uint32_t
bw
);
int
param_resp_cb
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_nr_param_response_scf_t
*
resp
)
{
#ifdef TEST
if
(
resp
->
cell_param
.
phy_state
.
tl
.
tag
==
NFAPI_NR_PARAM_TLV_PHY_STATE_TAG
)
printf
(
"
\n\n
Matched
\n\n
"
);
// like this we can check for all the tags
#endif
printf
(
"[VNF] Received NFAPI_PARAM_RESP idx:%d phy_id:%d
\n
"
,
p5_idx
,
resp
->
header
.
phy_id
);
vnf_info
*
vnf
=
(
vnf_info
*
)(
config
->
user_data
);
vnf_p7_info
*
p7_vnf
=
vnf
->
p7_vnfs
;
...
...
@@ -1020,7 +1032,6 @@ int param_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_nr_param_respons
phy_info
*
phy
=
pnf
->
phys
;
struct
sockaddr_in
pnf_p7_sockaddr
;
nfapi_nr_config_request_scf_t
*
req
=
&
RC
.
nrmac
[
0
]
->
config
[
0
];
// check
phy
->
remote_port
=
resp
->
nfapi_config
.
p7_pnf_port
.
value
;
memcpy
(
&
pnf_p7_sockaddr
.
sin_addr
.
s_addr
,
&
(
resp
->
nfapi_config
.
p7_pnf_address_ipv4
.
address
[
0
]),
4
);
phy
->
remote_addr
=
inet_ntoa
(
pnf_p7_sockaddr
.
sin_addr
);
...
...
@@ -1030,6 +1041,8 @@ int param_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_nr_param_respons
req
->
header
.
message_id
=
NFAPI_CONFIG_REQUEST
;
req
->
header
.
phy_id
=
phy
->
id
;
printf
(
"[VNF] Send NFAPI_CONFIG_REQUEST
\n
"
);
printf
(
"
\n
NR bandP =%d
\n
"
,
req
->
nfapi_config
.
rf_bands
.
rf_band
[
0
]);
req
->
nfapi_config
.
p7_vnf_port
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_VNF_PORT_TAG
;
req
->
nfapi_config
.
p7_vnf_port
.
value
=
p7_vnf
->
local_port
;
req
->
num_tlv
++
;
...
...
@@ -1042,7 +1055,7 @@ int param_resp_cb(nfapi_vnf_config_t *config, int p5_idx, nfapi_nr_param_respons
printf
(
"[VNF] DJP local_addr:%s
\n
"
,
p7_vnf
->
local_addr
);
req
->
nfapi_config
.
timing_window
.
tl
.
tag
=
NFAPI_NR_NFAPI_TIMING_WINDOW_TAG
;
req
->
nfapi_config
.
timing_window
.
value
=
p7_vnf
->
timing_window
;
printf
(
"
[VNF] Timing window:%u
\n
"
,
p7_vnf
->
timing_window
);
printf
(
"
\n
[VNF]Timing window tag : %d Timing window:%u
\n
"
,
NFAPI_NR_NFAPI_TIMING_WINDOW_TAG
,
p7_vnf
->
timing_window
);
req
->
num_tlv
++
;
if
(
p7_vnf
->
periodic_timing_enabled
||
p7_vnf
->
aperiodic_timing_enabled
)
{
...
...
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
View file @
4fb2bf56
...
...
@@ -697,8 +697,8 @@ static uint8_t pack_config_request(void *msg, uint8_t **ppWritePackedMsg, uint8_
pack_tlv
(
NFAPI_NR_CONFIG_MIB_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
MIB
),
ppWritePackedMsg
,
end
,
&
pack_uint32_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_MULTIPLE_CELLS_SS_PBCH_IN_A_CARRIER_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
multiple_cells_ss_pbch_in_a_carrier
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_SS_PBCH_MULTIPLE_CARRIERS_IN_A_BAND_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ss_pbch_multiple_carriers_in_a_band
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
//
pack_tlv(NFAPI_NR_CONFIG_BEAM_ID_TAG, &(pNfapiMsg->ssb_table.ssb_beam_id_list->
beam_id), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
//pack_tlv(NFAPI_NR_CONFIG_SSB_MASK_TAG, &(pNfapiMsg->ssb_table.ssb_mask_list->
ssb_mask), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
//
pack_tlv(NFAPI_NR_CONFIG_BEAM_ID_TAG, &(pNfapiMsg->ssb_table.ssb_beam_id_list[0].
beam_id), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
pack_tlv
(
NFAPI_NR_CONFIG_SSB_MASK_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_mask_list
[
0
].
ssb_mask
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_SSB_OFFSET_POINT_A_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_offset_point_a
),
ppWritePackedMsg
,
end
,
&
pack_uint16_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_SSB_PERIOD_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_period
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
pack_tlv
(
NFAPI_NR_CONFIG_SSB_SUBCARRIER_OFFSET_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_subcarrier_offset
),
ppWritePackedMsg
,
end
,
&
pack_uint8_tlv_value
)
&&
...
...
@@ -1611,6 +1611,7 @@ static uint8_t unpack_config_request(uint8_t **ppReadPackedMsg, uint8_t *end, vo
unpack_tlv_t
unpack_fns
[]
=
{
{
NFAPI_NR_CONFIG_DL_BANDWIDTH_TAG
,
&
(
pNfapiMsg
->
carrier_config
.
dl_bandwidth
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_CONFIG_DL_FREQUENCY_TAG
,
&
(
pNfapiMsg
->
carrier_config
.
dl_frequency
),
&
unpack_uint32_tlv_value
},
{
NFAPI_NR_CONFIG_DL_GRID_SIZE_TAG
,
&
(
pNfapiMsg
->
carrier_config
.
dl_grid_size
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_CONFIG_DL_K0_TAG
,
&
(
pNfapiMsg
->
carrier_config
.
dl_k0
),
&
unpack_uint16_tlv_value
},
...
...
@@ -1637,6 +1638,8 @@ static uint8_t unpack_config_request(uint8_t **ppReadPackedMsg, uint8_t *end, vo
{
NFAPI_NR_CONFIG_MIB_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
MIB
),
&
unpack_uint32_tlv_value
},
{
NFAPI_NR_CONFIG_MULTIPLE_CELLS_SS_PBCH_IN_A_CARRIER_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
multiple_cells_ss_pbch_in_a_carrier
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_CONFIG_SS_PBCH_MULTIPLE_CARRIERS_IN_A_BAND_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ss_pbch_multiple_carriers_in_a_band
),
&
unpack_uint8_tlv_value
},
// { NFAPI_NR_CONFIG_BEAM_ID_TAG, &(pNfapiMsg->ssb_table.ssb_beam_id_list[0].beam_id), &unpack_uint16_tlv_value},
{
NFAPI_NR_CONFIG_SSB_MASK_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_mask_list
[
0
].
ssb_mask
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_CONFIG_SSB_OFFSET_POINT_A_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_offset_point_a
),
&
unpack_uint16_tlv_value
},
{
NFAPI_NR_CONFIG_SSB_PERIOD_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_period
),
&
unpack_uint8_tlv_value
},
{
NFAPI_NR_CONFIG_SSB_SUBCARRIER_OFFSET_TAG
,
&
(
pNfapiMsg
->
ssb_table
.
ssb_subcarrier_offset
),
&
unpack_uint8_tlv_value
},
...
...
@@ -1774,7 +1777,9 @@ static uint8_t unpack_config_request(uint8_t **ppReadPackedMsg, uint8_t *end, vo
};
#endif
return
(
pull8
(
ppReadPackedMsg
,
&
pNfapiMsg
->
num_tlv
,
end
)
&&
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
));
}
...
...
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
4fb2bf56
...
...
@@ -255,6 +255,7 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
cfg
->
num_tlv
++
;
cfg
->
num_tlv
++
;
// TDD Table Configuration
//cfg->tdd_table.tdd_period.value = scc->tdd_UL_DL_ConfigurationCommon->pattern1.dl_UL_TransmissionPeriodicity;
cfg
->
tdd_table
.
tdd_period
.
tl
.
tag
=
NFAPI_NR_CONFIG_TDD_PERIOD_TAG
;
...
...
@@ -306,6 +307,71 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
}*/
cfg
->
carrier_config
.
frequency_shift_7p5khz
.
tl
.
tag
=
NFAPI_NR_CONFIG_FREQUENCY_SHIFT_7P5KHZ_TAG
;
cfg
->
num_tlv
++
;
cfg
->
measurement_config
.
rssi_measurement
.
tl
.
tag
=
NFAPI_NR_CONFIG_RSSI_MEASUREMENT_TAG
;
cfg
->
num_tlv
++
;
cfg
->
prach_config
.
prach_multiple_carriers_in_a_band
.
tl
.
tag
=
NFAPI_NR_CONFIG_PRACH_MULTIPLE_CARRIERS_IN_A_BAND_TAG
;
cfg
->
num_tlv
++
;
cfg
->
ssb_config
.
bch_payload
.
tl
.
tag
=
NFAPI_NR_CONFIG_BCH_PAYLOAD_TAG
;
cfg
->
num_tlv
++
;
cfg
->
ssb_table
.
beta_pss
.
tl
.
tag
=
NFAPI_NR_CONFIG_BETA_PSS_TAG
;
cfg
->
num_tlv
++
;
cfg
->
ssb_table
.
MIB
.
tl
.
tag
=
NFAPI_NR_CONFIG_MIB_TAG
;
cfg
->
num_tlv
++
;
cfg
->
ssb_table
.
multiple_cells_ss_pbch_in_a_carrier
.
tl
.
tag
=
NFAPI_NR_CONFIG_MULTIPLE_CELLS_SS_PBCH_IN_A_CARRIER_TAG
;
cfg
->
num_tlv
++
;
cfg
->
ssb_table
.
ss_pbch_multiple_carriers_in_a_band
.
tl
.
tag
=
NFAPI_NR_CONFIG_SS_PBCH_MULTIPLE_CARRIERS_IN_A_BAND_TAG
;
cfg
->
num_tlv
++
;
if
(
cfg
->
ssb_table
.
ssb_beam_id_list
!=
NULL
)
{
cfg
->
ssb_table
.
ssb_beam_id_list
[
0
].
beam_id
->
tl
.
tag
=
NFAPI_NR_CONFIG_BEAM_ID_TAG
;
cfg
->
num_tlv
++
;
}
// TODO: assign values to nfapi_config struct
cfg
->
nfapi_config
.
dl_ue_per_sf
.
tl
.
tag
=
NFAPI_NR_NFAPI_DOWNLINK_UES_PER_SUBFRAME_TAG
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
max_transmit_power
.
tl
.
tag
=
NFAPI_NR_NFAPI_MAXIMUM_TRANSMIT_POWER_TAG
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
nrarfcn
.
tl
.
tag
=
NFAPI_NR_NFAPI_NRARFCN_TAG
;
cfg
->
nfapi_config
.
nrarfcn
.
value
=
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
absoluteFrequencyPointA
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
p7_pnf_address_ipv4
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_PNF_ADDRESS_IPV4_TAG
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
p7_pnf_address_ipv6
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_PNF_ADDRESS_IPV6_TAG
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
p7_pnf_port
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_PNF_PORT_TAG
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
p7_vnf_address_ipv6
.
tl
.
tag
=
NFAPI_NR_NFAPI_P7_VNF_ADDRESS_IPV6_TAG
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
rf_bands
.
tl
.
tag
=
NFAPI_NR_NFAPI_RF_BANDS_TAG
;
cfg
->
num_tlv
++
;
cfg
->
nfapi_config
.
rf_bands
.
rf_band
[
0
]
=
*
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
];
cfg
->
nfapi_config
.
ul_ue_per_sf
.
tl
.
tag
=
NFAPI_NR_NFAPI_UPLINK_UES_PER_SUBFRAME_TAG
;
cfg
->
num_tlv
++
;
}
...
...
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