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
Michael Black
OpenXG UE
Commits
35453457
Commit
35453457
authored
Jan 31, 2021
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
F1_SETUP tested
parent
7aed885d
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
42 additions
and
37 deletions
+42
-37
openair2/ENB_APP/enb_app.c
openair2/ENB_APP/enb_app.c
+2
-0
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+13
-8
openair2/F1AP/f1ap_cu_interface_management.c
openair2/F1AP/f1ap_cu_interface_management.c
+11
-9
openair2/F1AP/f1ap_du_interface_management.c
openair2/F1AP/f1ap_du_interface_management.c
+8
-7
openair2/F1AP/f1ap_encoder.c
openair2/F1AP/f1ap_encoder.c
+2
-6
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+6
-7
No files found.
openair2/ENB_APP/enb_app.c
View file @
35453457
...
@@ -244,6 +244,8 @@ void *eNB_app_task(void *args_p) {
...
@@ -244,6 +244,8 @@ void *eNB_app_task(void *args_p) {
}
}
LOG_I
(
ENB_APP
,
"TASK_ENB_APP is ready
\n
"
);
do
{
do
{
// Wait for a message
// Wait for a message
itti_receive_msg
(
TASK_ENB_APP
,
&
msg_p
);
itti_receive_msg
(
TASK_ENB_APP
,
&
msg_p
);
...
...
openair2/ENB_APP/enb_config.c
View file @
35453457
...
@@ -1991,7 +1991,7 @@ int RCconfig_DU_F1(MessageDef *msg_p, uint32_t i) {
...
@@ -1991,7 +1991,7 @@ int RCconfig_DU_F1(MessageDef *msg_p, uint32_t i) {
F1AP_SETUP_REQ
(
msg_p
).
nr_mode_info
[
k
].
tdd
.
nrb
=
rrc
->
carrier
[
0
].
mib
.
message
.
dl_Bandwidth
;
F1AP_SETUP_REQ
(
msg_p
).
nr_mode_info
[
k
].
tdd
.
nrb
=
rrc
->
carrier
[
0
].
mib
.
message
.
dl_Bandwidth
;
F1AP_SETUP_REQ
(
msg_p
).
nr_mode_info
[
k
].
tdd
.
num_frequency_bands
=
1
;
F1AP_SETUP_REQ
(
msg_p
).
nr_mode_info
[
k
].
tdd
.
num_frequency_bands
=
1
;
F1AP_SETUP_REQ
(
msg_p
).
nr_mode_info
[
k
].
tdd
.
nr_band
[
0
]
=
rrc
->
carrier
[
0
].
sib1
->
freqBandIndicator
;
F1AP_SETUP_REQ
(
msg_p
).
nr_mode_info
[
k
].
tdd
.
nr_band
[
0
]
=
rrc
->
carrier
[
0
].
sib1
->
freqBandIndicator
;
F1AP_SETUP_REQ
(
msg_p
).
nr_mode_info
[
k
].
f
dd
.
sul_active
=
0
;
F1AP_SETUP_REQ
(
msg_p
).
nr_mode_info
[
k
].
t
dd
.
sul_active
=
0
;
}
else
{
}
else
{
LOG_I
(
ENB_APP
,
"ngran_DU: Configuring Cell %d for FDD
\n
"
,
k
);
LOG_I
(
ENB_APP
,
"ngran_DU: Configuring Cell %d for FDD
\n
"
,
k
);
F1AP_SETUP_REQ
(
msg_p
).
fdd_flag
=
1
;
F1AP_SETUP_REQ
(
msg_p
).
fdd_flag
=
1
;
...
@@ -2716,12 +2716,13 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) {
...
@@ -2716,12 +2716,13 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) {
"value of X2ParamList.numelt %d must be lower than X2AP_MAX_NB_ENB_IP_ADDRESS %d value: reconsider to increase X2AP_MAX_NB_ENB_IP_ADDRESS
\n
"
,
"value of X2ParamList.numelt %d must be lower than X2AP_MAX_NB_ENB_IP_ADDRESS %d value: reconsider to increase X2AP_MAX_NB_ENB_IP_ADDRESS
\n
"
,
X2ParamList
.
numelt
,
X2AP_MAX_NB_ENB_IP_ADDRESS
);
X2ParamList
.
numelt
,
X2AP_MAX_NB_ENB_IP_ADDRESS
);
X2AP_REGISTER_ENB_REQ
(
msg_p
).
nb_x2
=
0
;
X2AP_REGISTER_ENB_REQ
(
msg_p
).
nb_x2
=
0
;
LOG_I
(
X2AP
,
"X2ParamList.numelt %d
\n
"
,
X2ParamList
.
numelt
);
for
(
l
=
0
;
l
<
X2ParamList
.
numelt
;
l
++
)
{
for
(
l
=
0
;
l
<
X2ParamList
.
numelt
;
l
++
)
{
X2AP_REGISTER_ENB_REQ
(
msg_p
).
nb_x2
+=
1
;
X2AP_REGISTER_ENB_REQ
(
msg_p
).
nb_x2
+=
1
;
strcpy
(
X2AP_REGISTER_ENB_REQ
(
msg_p
).
target_enb_x2_ip_address
[
l
].
ipv4_address
,
*
(
X2ParamList
.
paramarray
[
l
][
ENB_X2_IPV4_ADDRESS_IDX
].
strptr
));
strcpy
(
X2AP_REGISTER_ENB_REQ
(
msg_p
).
target_enb_x2_ip_address
[
l
].
ipv4_address
,
*
(
X2ParamList
.
paramarray
[
l
][
ENB_X2_IPV4_ADDRESS_IDX
].
strptr
));
strcpy
(
X2AP_REGISTER_ENB_REQ
(
msg_p
).
target_enb_x2_ip_address
[
l
].
ipv6_address
,
*
(
X2ParamList
.
paramarray
[
l
][
ENB_X2_IPV6_ADDRESS_IDX
].
strptr
));
strcpy
(
X2AP_REGISTER_ENB_REQ
(
msg_p
).
target_enb_x2_ip_address
[
l
].
ipv6_address
,
*
(
X2ParamList
.
paramarray
[
l
][
ENB_X2_IPV6_ADDRESS_IDX
].
strptr
));
LOG_I
(
X2AP
,
"registering with ip : %s
\n
"
,
*
(
X2ParamList
.
paramarray
[
l
][
ENB_X2_IPV4_ADDRESS_IDX
].
strptr
));
if
(
strcmp
(
*
(
X2ParamList
.
paramarray
[
l
][
ENB_X2_IP_ADDRESS_PREFERENCE_IDX
].
strptr
),
"ipv4"
)
==
0
)
{
if
(
strcmp
(
*
(
X2ParamList
.
paramarray
[
l
][
ENB_X2_IP_ADDRESS_PREFERENCE_IDX
].
strptr
),
"ipv4"
)
==
0
)
{
X2AP_REGISTER_ENB_REQ
(
msg_p
).
target_enb_x2_ip_address
[
l
].
ipv4
=
1
;
X2AP_REGISTER_ENB_REQ
(
msg_p
).
target_enb_x2_ip_address
[
l
].
ipv4
=
1
;
X2AP_REGISTER_ENB_REQ
(
msg_p
).
target_enb_x2_ip_address
[
l
].
ipv6
=
0
;
X2AP_REGISTER_ENB_REQ
(
msg_p
).
target_enb_x2_ip_address
[
l
].
ipv6
=
0
;
...
@@ -2901,7 +2902,7 @@ void extract_and_decode_SI(int inst,int si_ind,uint8_t *si_container,int si_cont
...
@@ -2901,7 +2902,7 @@ void extract_and_decode_SI(int inst,int si_ind,uint8_t *si_container,int si_cont
eNB_RRC_INST
*
rrc
=
RC
.
rrc
[
inst
];
eNB_RRC_INST
*
rrc
=
RC
.
rrc
[
inst
];
rrc_eNB_carrier_data_t
*
carrier
=
&
rrc
->
carrier
[
0
];
rrc_eNB_carrier_data_t
*
carrier
=
&
rrc
->
carrier
[
0
];
LTE_BCCH_DL_SCH_Message_t
*
bcch_message
;
LTE_BCCH_DL_SCH_Message_t
*
bcch_message
;
AssertFatal
(
si_ind
==
0
,
"Can only handle a single SI block for now
\n
"
);
AssertFatal
(
si_ind
==
2
,
"Can only handle a single SI block for now
\n
"
);
LOG_I
(
ENB_APP
,
"rrc inst %d: Trying to decode SI block %d @ %p, length %d
\n
"
,
inst
,
si_ind
,
si_container
,
si_container_length
);
LOG_I
(
ENB_APP
,
"rrc inst %d: Trying to decode SI block %d @ %p, length %d
\n
"
,
inst
,
si_ind
,
si_container
,
si_container_length
);
// point to first SI block
// point to first SI block
bcch_message
=
&
carrier
->
systemInformation
;
bcch_message
=
&
carrier
->
systemInformation
;
...
@@ -3088,15 +3089,19 @@ void handle_f1ap_setup_resp(f1ap_setup_resp_t *resp) {
...
@@ -3088,15 +3089,19 @@ void handle_f1ap_setup_resp(f1ap_setup_resp_t *resp) {
(
check_plmn_identity
(
carrier
,
resp
->
mcc
[
j
],
resp
->
mnc
[
j
],
resp
->
mnc_digit_length
[
j
])
>
0
&&
(
check_plmn_identity
(
carrier
,
resp
->
mcc
[
j
],
resp
->
mnc
[
j
],
resp
->
mnc_digit_length
[
j
])
>
0
&&
resp
->
nrpci
[
j
]
==
carrier
->
physCellId
))
{
resp
->
nrpci
[
j
]
==
carrier
->
physCellId
))
{
// copy system information and decode it
// copy system information and decode it
for
(
si_ind
=
0
;
si_ind
<
resp
->
num_SI
[
j
]
;
si_ind
++
)
{
for
(
si_ind
=
2
;
si_ind
<
10
;
si_ind
++
)
{
//printf("SI %d size %d: ", si_ind, resp->SI_container_length[j][si_ind]);
//printf("SI %d size %d: ", si_ind, resp->SI_container_length[j][si_ind]);
//for (int n=0;n<resp->SI_container_length[j][si_ind];n++)
//for (int n=0;n<resp->SI_container_length[j][si_ind];n++)
// printf("%02x ",resp->SI_container[j][si_ind][n]);
// printf("%02x ",resp->SI_container[j][si_ind][n]);
//printf("\n");
//printf("\n");
extract_and_decode_SI
(
i
,
if
(
si_ind
==
6
)
si_ind
=
9
;
si_ind
,
if
(
resp
->
SI_container
[
j
][
si_ind
]
!=
NULL
)
{
resp
->
SI_container
[
j
][
si_ind
],
extract_and_decode_SI
(
i
,
resp
->
SI_container_length
[
j
][
si_ind
]);
si_ind
,
resp
->
SI_container
[
j
][
si_ind
],
resp
->
SI_container_length
[
j
][
si_ind
]);
}
}
}
// perform MAC/L1 common configuration
// perform MAC/L1 common configuration
...
...
openair2/F1AP/f1ap_cu_interface_management.c
View file @
35453457
...
@@ -357,18 +357,20 @@ int CU_send_F1_SETUP_RESPONSE(instance_t instance,
...
@@ -357,18 +357,20 @@ int CU_send_F1_SETUP_RESPONSE(instance_t instance,
//for (int n = 0; n < f1ap_setup_resp->SI_container_length[i][0]; n++)
//for (int n = 0; n < f1ap_setup_resp->SI_container_length[i][0]; n++)
// printf("%02x ", f1ap_setup_resp->SI_container[i][0][n]);
// printf("%02x ", f1ap_setup_resp->SI_container[i][0][n]);
//printf("\n");
//printf("\n");
for
(
int
j
=
2
;
for
(
int
sIBtype
=
2
;
sIBtype
<
33
;
sIBtype
++
)
{
j
<
10
;
if
(
f1ap_setup_resp
->
SI_container
[
i
][
sIBtype
]
!=
NULL
)
{
j
++
)
{
AssertFatal
(
sIBtype
<
6
||
sIBtype
==
9
,
"Illegal SI type %d
\n
"
,
sIBtype
);
if
(
j
==
6
)
j
=
9
;
if
(
f1ap_setup_resp
->
SI_container
[
i
][
j
]
!=
NULL
)
{
LOG_I
(
F1AP
,
"SETUP RESP: SI %d, Type %d
\n
"
,
i
,
j
);
AssertFatal
((
j
<
6
)
||
(
j
==
9
),
"Illegal SI type %d
\n
"
,
j
);
F1AP_SibtypetobeupdatedListItem_t
*
sib_item
=
calloc
(
1
,
sizeof
(
*
sib_item
));
F1AP_SibtypetobeupdatedListItem_t
*
sib_item
=
calloc
(
1
,
sizeof
(
*
sib_item
));
memset
((
void
*
)
sib_item
,
0
,
sizeof
(
*
sib_item
));
sib_item
->
sIBtype
=
j
;
sib_item
->
sIBtype
=
sIBtype
;
OCTET_STRING_fromBuf
(
&
sib_item
->
sIBmessage
,
OCTET_STRING_fromBuf
(
&
sib_item
->
sIBmessage
,
(
const
char
*
)
f1ap_setup_resp
->
SI_container
[
i
][
sIBtype
],
(
const
char
*
)
f1ap_setup_resp
->
SI_container
[
i
][
j
],
f1ap_setup_resp
->
SI_container_length
[
i
][
sIBtype
]);
f1ap_setup_resp
->
SI_container_length
[
i
][
j
]);
LOG_
D
(
F1AP
,
"f1ap_setup_resp->SI_container_length[%d][%d] = %d
\n
"
,
i
,
sIBtype
,
f1ap_setup_resp
->
SI_container_length
[
i
][
sIBtype
]);
LOG_
I
(
F1AP
,
"f1ap_setup_resp->SI_container_length[%d][%d] = %d
\n
"
,
i
,
j
,
f1ap_setup_resp
->
SI_container_length
[
i
][
j
]);
ASN_SEQUENCE_ADD
(
&
gNB_CUSystemInformation
->
sibtypetobeupdatedlist
.
list
,
sib_item
);
ASN_SEQUENCE_ADD
(
&
gNB_CUSystemInformation
->
sibtypetobeupdatedlist
.
list
,
sib_item
);
}
}
}
}
...
...
openair2/F1AP/f1ap_du_interface_management.c
View file @
35453457
...
@@ -228,7 +228,7 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance) {
...
@@ -228,7 +228,7 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance) {
/* FDD.1.3 freqBandListNr */
/* FDD.1.3 freqBandListNr */
int
fdd_ul_num_available_freq_Bands
=
f1ap_du_data
->
nr_mode_info
[
i
].
fdd
.
ul_num_frequency_bands
;
int
fdd_ul_num_available_freq_Bands
=
f1ap_du_data
->
nr_mode_info
[
i
].
fdd
.
ul_num_frequency_bands
;
LOG_
D
(
F1AP
,
"fdd_ul_num_available_freq_Bands = %d
\n
"
,
fdd_ul_num_available_freq_Bands
);
LOG_
I
(
F1AP
,
"fdd_ul_num_available_freq_Bands = %d
\n
"
,
fdd_ul_num_available_freq_Bands
);
int
fdd_ul_j
;
int
fdd_ul_j
;
for
(
fdd_ul_j
=
0
;
for
(
fdd_ul_j
=
0
;
fdd_ul_j
<
fdd_ul_num_available_freq_Bands
;
fdd_ul_j
<
fdd_ul_num_available_freq_Bands
;
...
@@ -270,7 +270,7 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance) {
...
@@ -270,7 +270,7 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance) {
/* FDD.2.3 freqBandListNr */
/* FDD.2.3 freqBandListNr */
int
fdd_dl_num_available_freq_Bands
=
f1ap_du_data
->
nr_mode_info
[
i
].
fdd
.
dl_num_frequency_bands
;
int
fdd_dl_num_available_freq_Bands
=
f1ap_du_data
->
nr_mode_info
[
i
].
fdd
.
dl_num_frequency_bands
;
LOG_
D
(
F1AP
,
"fdd_dl_num_available_freq_Bands = %d
\n
"
,
fdd_dl_num_available_freq_Bands
);
LOG_
I
(
F1AP
,
"fdd_dl_num_available_freq_Bands = %d
\n
"
,
fdd_dl_num_available_freq_Bands
);
int
fdd_dl_j
;
int
fdd_dl_j
;
for
(
fdd_dl_j
=
0
;
for
(
fdd_dl_j
=
0
;
fdd_dl_j
<
fdd_dl_num_available_freq_Bands
;
fdd_dl_j
<
fdd_dl_num_available_freq_Bands
;
...
@@ -324,7 +324,8 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance) {
...
@@ -324,7 +324,8 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance) {
/* TDD.1.3 freqBandListNr */
/* TDD.1.3 freqBandListNr */
int
tdd_num_available_freq_Bands
=
f1ap_du_data
->
nr_mode_info
[
i
].
tdd
.
num_frequency_bands
;
int
tdd_num_available_freq_Bands
=
f1ap_du_data
->
nr_mode_info
[
i
].
tdd
.
num_frequency_bands
;
LOG_D
(
F1AP
,
"tdd_num_available_freq_Bands = %d
\n
"
,
tdd_num_available_freq_Bands
);
LOG_I
(
F1AP
,
"tdd_num_available_freq_Bands = %d
\n
"
,
tdd_num_available_freq_Bands
);
AssertFatal
(
tdd_num_available_freq_Bands
>
0
,
"should have at least one TDD band available
\n
"
);
int
j
;
int
j
;
for
(
j
=
0
;
for
(
j
=
0
;
j
<
tdd_num_available_freq_Bands
;
j
<
tdd_num_available_freq_Bands
;
...
@@ -518,9 +519,9 @@ int DU_handle_F1_SETUP_RESPONSE(instance_t instance,
...
@@ -518,9 +519,9 @@ int DU_handle_F1_SETUP_RESPONSE(instance_t instance,
for
(
int
si
=
0
;
si
<
gNB_CUSystemInformation
->
sibtypetobeupdatedlist
.
list
.
count
;
si
++
)
{
for
(
int
si
=
0
;
si
<
gNB_CUSystemInformation
->
sibtypetobeupdatedlist
.
list
.
count
;
si
++
)
{
F1AP_SibtypetobeupdatedListItem_t
*
sib_item
=
gNB_CUSystemInformation
->
sibtypetobeupdatedlist
.
list
.
array
[
si
];
F1AP_SibtypetobeupdatedListItem_t
*
sib_item
=
gNB_CUSystemInformation
->
sibtypetobeupdatedlist
.
list
.
array
[
si
];
size_t
size
=
sib_item
->
sIBmessage
.
size
;
size_t
size
=
sib_item
->
sIBmessage
.
size
;
F1AP_SETUP_RESP
(
msg_p
).
SI_container_length
[
i
][
si
]
=
size
;
F1AP_SETUP_RESP
(
msg_p
).
SI_container_length
[
i
][
si
b_item
->
sIBtype
]
=
size
;
LOG_
D
(
F1AP
,
"F1AP: F1Setup-Resp SI_container_length[%d][%d] %ld bytes
\n
"
,
i
,
(
int
)
sib_item
->
sIBtype
,
size
);
LOG_
I
(
F1AP
,
"F1AP: F1Setup-Resp SI_container_length[%d][%d] %ld bytes
\n
"
,
i
,
(
int
)
sib_item
->
sIBtype
,
size
);
F1AP_SETUP_RESP
(
msg_p
).
SI_container
[
i
][
si
]
=
malloc
(
F1AP_SETUP_RESP
(
msg_p
).
SI_container_length
[
i
][
si
]
);
F1AP_SETUP_RESP
(
msg_p
).
SI_container
[
i
][
si
b_item
->
sIBtype
]
=
malloc
(
size
);
memcpy
((
void
*
)
F1AP_SETUP_RESP
(
msg_p
).
SI_container
[
i
][
sib_item
->
sIBtype
],
memcpy
((
void
*
)
F1AP_SETUP_RESP
(
msg_p
).
SI_container
[
i
][
sib_item
->
sIBtype
],
(
void
*
)
sib_item
->
sIBmessage
.
buf
,
(
void
*
)
sib_item
->
sIBmessage
.
buf
,
size
);
size
);
...
@@ -565,7 +566,7 @@ int DU_handle_F1_SETUP_RESPONSE(instance_t instance,
...
@@ -565,7 +566,7 @@ int DU_handle_F1_SETUP_RESPONSE(instance_t instance,
LOG_D
(
F1AP
,
"Sending F1AP_SETUP_RESP ITTI message to ENB_APP with assoc_id (%d->%d)
\n
"
,
LOG_D
(
F1AP
,
"Sending F1AP_SETUP_RESP ITTI message to ENB_APP with assoc_id (%d->%d)
\n
"
,
assoc_id
,
ENB_MODULE_ID_TO_INSTANCE
(
assoc_id
));
assoc_id
,
ENB_MODULE_ID_TO_INSTANCE
(
assoc_id
));
itti_send_msg_to_task
(
TASK_ENB_APP
,
ENB_MODULE_ID_TO_INSTANCE
(
assoc_id
)
,
msg_p
);
itti_send_msg_to_task
(
TASK_ENB_APP
,
instance
,
msg_p
);
return
0
;
return
0
;
}
}
...
...
openair2/F1AP/f1ap_encoder.c
View file @
35453457
...
@@ -84,12 +84,8 @@ int f1ap_encode_pdu(F1AP_F1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *length)
...
@@ -84,12 +84,8 @@ int f1ap_encode_pdu(F1AP_F1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *length)
LOG_E
(
F1AP
,
"----------------- ASN1 ENCODER PRINT END-----------------
\n
"
);
LOG_E
(
F1AP
,
"----------------- ASN1 ENCODER PRINT END-----------------
\n
"
);
}
}
encoded
=
aper_encode_to_new_buffer
(
&
asn_DEF_F1AP_F1AP_PDU
,
0
,
pdu
,
(
void
**
)
buffer
);
AssertFatal
((
encoded
=
aper_encode_to_new_buffer
(
&
asn_DEF_F1AP_F1AP_PDU
,
0
,
pdu
,
(
void
**
)
buffer
))
>
0
,
"Failed to encode F1AP message
\n
"
);
if
(
encoded
<
0
)
{
LOG_E
(
F1AP
,
"Failed to encode F1AP message
\n
"
);
return
-
1
;
}
*
length
=
encoded
;
*
length
=
encoded
;
...
...
openair2/RRC/LTE/rrc_eNB.c
View file @
35453457
...
@@ -8914,14 +8914,13 @@ void handle_f1_setup_req(f1ap_setup_req_t *f1_setup_req) {
...
@@ -8914,14 +8914,13 @@ void handle_f1_setup_req(f1ap_setup_req_t *f1_setup_req) {
F1AP_SETUP_RESP
(
msg_p
).
nr_cellid
[
cu_cell_ind
]
=
rrc
->
nr_cellid
;
F1AP_SETUP_RESP
(
msg_p
).
nr_cellid
[
cu_cell_ind
]
=
rrc
->
nr_cellid
;
F1AP_SETUP_RESP
(
msg_p
).
nrpci
[
cu_cell_ind
]
=
f1_setup_req
->
nr_pci
[
i
];
F1AP_SETUP_RESP
(
msg_p
).
nrpci
[
cu_cell_ind
]
=
f1_setup_req
->
nr_pci
[
i
];
int
num_SI
=
0
;
int
num_SI
=
0
;
if
(
rrc
->
carrier
[
0
].
SIB23
)
{
if
(
rrc
->
carrier
[
0
].
SIB23
)
{
F1AP_SETUP_RESP
(
msg_p
).
SI_container
[
cu_cell_ind
][
num_SI
]
=
rrc
->
carrier
[
0
].
SIB23
;
F1AP_SETUP_RESP
(
msg_p
).
SI_container
[
cu_cell_ind
][
2
+
num_SI
]
=
rrc
->
carrier
[
0
].
SIB23
;
F1AP_SETUP_RESP
(
msg_p
).
SI_container_length
[
cu_cell_ind
][
num_SI
]
=
rrc
->
carrier
[
0
].
sizeof_SIB23
;
F1AP_SETUP_RESP
(
msg_p
).
SI_container_length
[
cu_cell_ind
][
2
+
num_SI
]
=
rrc
->
carrier
[
0
].
sizeof_SIB23
;
//printf("SI %d size %d: ", 0, F1AP_SETUP_RESP(msg_p).SI_container_length[j][
num_SI]);
printf
(
"SI %d size %d: "
,
0
,
F1AP_SETUP_RESP
(
msg_p
).
SI_container_length
[
j
][
2
+
num_SI
]);
//for (int n = 0; n < F1AP_SETUP_RESP(msg_p).SI_container_length[j][
num_SI]; n++)
for
(
int
n
=
0
;
n
<
F1AP_SETUP_RESP
(
msg_p
).
SI_container_length
[
j
][
2
+
num_SI
];
n
++
)
// printf("%02x ", F1AP_SETUP_RESP(msg_p).SI_container[0][
num_SI][n]);
printf
(
"%02x "
,
F1AP_SETUP_RESP
(
msg_p
).
SI_container
[
0
][
2
+
num_SI
][
n
]);
//
printf("\n");
printf
(
"
\n
"
);
num_SI
++
;
num_SI
++
;
}
}
...
...
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