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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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-RAN
Commits
46680d2b
Commit
46680d2b
authored
Aug 04, 2022
by
Sakthivel Velumani
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug fixes in bearer context setup response
parent
3d091bfd
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
39 additions
and
22 deletions
+39
-22
openair2/E1AP/e1ap.c
openair2/E1AP/e1ap.c
+20
-10
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+18
-11
openair2/RRC/NR/rrc_gNB_NGAP.c
openair2/RRC/NR/rrc_gNB_NGAP.c
+1
-1
No files found.
openair2/E1AP/e1ap.c
View file @
46680d2b
...
...
@@ -668,10 +668,10 @@ int e1apCUUP_send_BEARER_CONTEXT_SETUP_RESPONSE(instance_t instance,
ieC2
->
id
=
E1AP_ProtocolIE_ID_id_gNB_CU_UP_UE_E1AP_ID
;
ieC2
->
criticality
=
E1AP_Criticality_reject
;
ieC2
->
value
.
present
=
E1AP_BearerContextSetupResponseIEs__value_PR_GNB_CU_UP_UE_E1AP_ID
;
ieC
1
->
value
.
choice
.
GNB_CU_CP_UE_E1AP_ID
=
resp
->
gNB_cu_up_ue_id
;
ieC
2
->
value
.
choice
.
GNB_CU_CP_UE_E1AP_ID
=
resp
->
gNB_cu_up_ue_id
;
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
E1AP_BearerContextSetupResponseIEs_t
,
ieC3
);
ieC3
->
id
=
E1AP_ProtocolIE_ID_id_System_BearerContextSetupRe
quest
;
ieC3
->
id
=
E1AP_ProtocolIE_ID_id_System_BearerContextSetupRe
sponse
;
ieC3
->
criticality
=
E1AP_Criticality_reject
;
ieC3
->
value
.
present
=
E1AP_BearerContextSetupResponseIEs__value_PR_System_BearerContextSetupResponse
;
if
(
0
)
{
// EUTRAN
...
...
@@ -706,7 +706,7 @@ int e1apCUUP_send_BEARER_CONTEXT_SETUP_RESPONSE(instance_t instance,
E1AP_ProtocolIE_Container_4932P22_t
*
msgNGRAN_list
=
calloc
(
1
,
sizeof
(
E1AP_ProtocolIE_Container_4932P22_t
));
ieC3
->
value
.
choice
.
System_BearerContextSetupResponse
.
choice
.
nG_RAN_BearerContextSetupResponse
=
(
struct
E1AP_ProtocolIE_Container
*
)
msgNGRAN_list
;
asn1cSequenceAdd
(
msgNGRAN_list
->
list
,
E1AP_NG_RAN_BearerContextSetupResponse_t
,
msgNGRAN
);
msgNGRAN
->
id
=
E1AP_ProtocolIE_ID_id_
DRB_Setup_List_EUTRAN
;
msgNGRAN
->
id
=
E1AP_ProtocolIE_ID_id_
PDU_Session_Resource_Setup_List
;
msgNGRAN
->
criticality
=
E1AP_Criticality_reject
;
msgNGRAN
->
value
.
present
=
E1AP_NG_RAN_BearerContextSetupResponse__value_PR_PDU_Session_Resource_Setup_List
;
E1AP_PDU_Session_Resource_Setup_List_t
*
pduSetup
=
&
msgNGRAN
->
value
.
choice
.
PDU_Session_Resource_Setup_List
;
...
...
@@ -738,7 +738,9 @@ int e1apCUUP_send_BEARER_CONTEXT_SETUP_RESPONSE(instance_t instance,
}
}
ieC3_1
->
dRB_Failed_List_NG_RAN
=
calloc
(
1
,
sizeof
(
E1AP_DRB_Failed_List_NG_RAN_t
));
if
(
i
->
numDRBFailed
>
0
)
ieC3_1
->
dRB_Failed_List_NG_RAN
=
calloc
(
1
,
sizeof
(
E1AP_DRB_Failed_List_NG_RAN_t
));
for
(
DRB_nGRAN_failed_t
*
j
=
i
->
DRBnGRanFailedList
;
j
<
i
->
DRBnGRanFailedList
+
i
->
numDRBFailed
;
j
++
)
{
asn1cSequenceAdd
(
ieC3_1
->
dRB_Failed_List_NG_RAN
->
list
,
E1AP_DRB_Failed_Item_NG_RAN_t
,
ieC3_1_1
);
ieC3_1_1
->
dRB_ID
=
j
->
id
;
...
...
@@ -990,16 +992,24 @@ int e1apCUCP_handle_BEARER_CONTEXT_SETUP_RESPONSE(instance_t instance,
E1AP_BearerContextSetupResponse_t
*
in
=
&
pdu
->
choice
.
successfulOutcome
->
value
.
choice
.
BearerContextSetupResponse
;
E1AP_BearerContextSetupResponseIEs_t
*
ie
;
e1ap_bearer_setup_resp_t
*
bearerCxt
=
&
getCxtE1
(
CPtype
,
instance
)
->
bearerSetupResp
;
MessageDef
*
msg
=
itti_alloc_new_message
(
TASK_CUCP_E1
,
0
,
E1AP_BEARER_CONTEXT_SETUP_RESP
);
e1ap_bearer_setup_resp_t
*
bearerCxt
=
&
E1AP_BEARER_CONTEXT_SETUP_RESP
(
msg
);
LOG_I
(
E1AP
,
"Bearer context setup response number of IEs %d
\n
"
,
in
->
protocolIEs
.
list
.
count
);
for
(
int
i
=
0
;
i
<
in
->
protocolIEs
.
list
.
count
;
i
++
)
{
ie
=
in
->
protocolIEs
.
list
.
array
[
i
];
switch
(
ie
->
id
)
{
case
E1AP_ProtocolIE_ID_id_gNB_CU_CP_UE_E1AP_ID
:
AssertFatal
(
ie
->
criticality
==
E1AP_Criticality_reject
,
"ie->criticality != E1AP_Criticality_reject
\n
"
);
AssertFatal
(
ie
->
value
.
present
==
E1AP_BearerContextSetupResponseIEs__value_PR_GNB_CU_CP_UE_E1AP_ID
,
"ie->value.present != E1AP_BearerContextSetupRequestIEs__value_PR_GNB_CU_CP_UE_E1AP_ID
\n
"
);
bearerCxt
->
gNB_cu_cp_ue_id
=
ie
->
value
.
choice
.
GNB_CU_CP_UE_E1AP_ID
;
break
;
case
E1AP_ProtocolIE_ID_id_gNB_CU_UP_UE_E1AP_ID
:
AssertFatal
(
ie
->
criticality
==
E1AP_Criticality_reject
,
"ie->criticality != E1AP_Criticality_reject
\n
"
);
...
...
@@ -1343,7 +1353,7 @@ void *E1AP_CUUP_task(void *arg) {
switch
(
ITTI_MSG_ID
(
msg
))
{
case
E1AP_SETUP_REQ
:
LOG_I
(
E1AP
,
"CUUP Task Received E1AP_SETUP_REQ
\n
"
);
LOG_I
(
E1AP
,
"CUUP Task Received E1AP_SETUP_REQ
for instance %ld
\n
"
,
myInstance
);
e1ap_setup_req_t
*
msgSetup
=
&
E1AP_SETUP_REQ
(
msg
);
createE1inst
(
UPtype
,
myInstance
,
msgSetup
);
...
...
@@ -1351,17 +1361,17 @@ void *E1AP_CUUP_task(void *arg) {
break
;
case
SCTP_NEW_ASSOCIATION_RESP
:
LOG_I
(
E1AP
,
"CUUP Task Received SCTP_NEW_ASSOCIATION_RESP
\n
"
);
LOG_I
(
E1AP
,
"CUUP Task Received SCTP_NEW_ASSOCIATION_RESP
for instance %ld
\n
"
,
myInstance
);
cuup_task_handle_sctp_association_resp
(
myInstance
,
&
msg
->
ittiMsg
.
sctp_new_association_resp
);
break
;
case
SCTP_DATA_IND
:
LOG_I
(
E1AP
,
"CUUP Task Received SCTP_DATA_IND
\n
"
);
LOG_I
(
E1AP
,
"CUUP Task Received SCTP_DATA_IND
for instance %ld
\n
"
,
myInstance
);
cuxp_task_handle_sctp_data_ind
(
myInstance
,
&
msg
->
ittiMsg
.
sctp_data_ind
);
break
;
case
E1AP_BEARER_CONTEXT_SETUP_RESP
:
LOG_I
(
E1AP
,
"CUUP Task Received E1AP_BEARER_CONTEXT_SETUP_RESP
\n
"
);
LOG_I
(
E1AP
,
"CUUP Task Received E1AP_BEARER_CONTEXT_SETUP_RESP
%ld
\n
"
,
myInstance
);
e1apCUUP_send_BEARER_CONTEXT_SETUP_RESPONSE
(
myInstance
,
&
E1AP_BEARER_CONTEXT_SETUP_RESP
(
msg
));
break
;
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
46680d2b
...
...
@@ -3878,9 +3878,9 @@ void fill_DRB_configList(NR_DRB_ToAddModList_t *DRB_configList, pdu_session_to_s
ie
->
cnAssociation
->
present
=
NR_DRB_ToAddMod__cnAssociation_PR_sdap_Config
;
// sdap_Config
NR_SDAP_Config_t
*
sdap_config
=
ie
->
cnAssociation
->
choice
.
sdap_Config
;
sdap_config
=
CALLOC
(
1
,
sizeof
(
*
sdap_config
));
NR_SDAP_Config_t
*
sdap_config
=
CALLOC
(
1
,
sizeof
(
*
sdap_config
));
memset
(
sdap_config
,
0
,
sizeof
(
*
sdap_config
));
ie
->
cnAssociation
->
choice
.
sdap_Config
=
sdap_config
;
sdap_config
->
pdu_Session
=
pdu
->
sessionId
;
sdap_config
->
sdap_HeaderDL
=
drb
->
sDAP_Header_DL
;
sdap_config
->
sdap_HeaderUL
=
drb
->
sDAP_Header_UL
;
...
...
@@ -3888,8 +3888,7 @@ void fill_DRB_configList(NR_DRB_ToAddModList_t *DRB_configList, pdu_session_to_s
sdap_config
->
mappedQoS_FlowsToAdd
=
calloc
(
1
,
sizeof
(
struct
NR_SDAP_Config__mappedQoS_FlowsToAdd
));
// LTSFIXME
int
numQosFlow2Setup
=
0
;
for
(
int
j
=
0
;
j
<
numQosFlow2Setup
;
j
++
)
{
for
(
int
j
=
0
;
j
<
drb
->
numQosFlow2Setup
;
j
++
)
{
NR_QFI_t
*
qfi
=
calloc
(
1
,
sizeof
(
NR_QFI_t
));
*
qfi
=
drb
->
qosFlows
[
j
].
fiveQI
;
ASN_SEQUENCE_ADD
(
&
sdap_config
->
mappedQoS_FlowsToAdd
->
list
,
qfi
);
...
...
@@ -3899,9 +3898,9 @@ void fill_DRB_configList(NR_DRB_ToAddModList_t *DRB_configList, pdu_session_to_s
// pdcp_Config
ie
->
reestablishPDCP
=
NULL
;
ie
->
recoverPDCP
=
NULL
;
NR_PDCP_Config_t
*
pdcp_config
=
ie
->
pdcp_Config
;
pdcp_config
=
calloc
(
1
,
sizeof
(
*
pdcp_config
));
NR_PDCP_Config_t
*
pdcp_config
=
calloc
(
1
,
sizeof
(
*
pdcp_config
));
memset
(
pdcp_config
,
0
,
sizeof
(
*
pdcp_config
));
ie
->
pdcp_Config
=
pdcp_config
;
pdcp_config
->
drb
=
calloc
(
1
,
sizeof
(
*
pdcp_config
->
drb
));
pdcp_config
->
drb
->
discardTimer
=
calloc
(
1
,
sizeof
(
*
pdcp_config
->
drb
->
discardTimer
));
*
pdcp_config
->
drb
->
discardTimer
=
drb
->
discardTimer
;
...
...
@@ -4006,17 +4005,25 @@ int rrc_gNB_process_e1_bearer_context_setup_req(e1ap_bearer_setup_req_t *req, in
DRB_nGRAN_to_setup_t
*
drb2Setup
=
pdu2Setup
->
DRBnGRanList
+
j
;
drbSetup
->
id
=
drb2Setup
->
id
;
drbSetup
->
numUpParam
=
0
;
drbSetup
->
numQosFlowSetup
=
drb2Setup
->
numQosFlow2Setup
;
/* TODO: Set dummy values for UP Parameters for now */
drbSetup
->
numUpParam
=
1
;
for
(
int
k
=
0
;
k
<
drbSetup
->
numUpParam
;
k
++
)
{
drbSetup
->
UpParamList
[
k
].
tlAddress
=
0
;
drbSetup
->
UpParamList
[
k
].
teId
=
0
;
}
drbSetup
->
numQosFlowSetup
=
drb2Setup
->
numQosFlow2Setup
;
for
(
int
k
=
0
;
k
<
drbSetup
->
numQosFlowSetup
;
k
++
)
{
drbSetup
->
qosFlows
[
k
].
id
=
drb2Setup
->
qosFlows
[
k
].
id
;
}
}
// At this point we don't have a way to know the DRBs that failed to setup
// We assume all DRBs to setup have are setup successfully so we always send successful outcome in response
// TODO: Modify nr_pdcp_add_drbs() to return DRB list that failed to setup to support E1AP
pduSetup
->
numDRBFailed
=
0
;
}
// At this point we don't have a way to know the DRBs that failed to setup
// We assume all DRBs to setup have are setup successfully so we always send successful outcome in response
// TODO: Modify nr_pdcp_add_drbs() to return DRB list that failed to setup to support E1AP
itti_send_msg_to_task
(
TASK_CUUP_E1
,
instance
,
message_p
);
...
...
openair2/RRC/NR/rrc_gNB_NGAP.c
View file @
46680d2b
...
...
@@ -1022,7 +1022,7 @@ rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ(
pdu
->
numDRB2Setup
=
1
;
// One DRB per PDU Session. TODO: Remove hardcoding
for
(
int
j
=
0
;
j
<
pdu
->
numDRB2Setup
;
j
++
)
{
DRB_nGRAN_to_setup_t
*
drb
=
pdu
->
DRBnGRanList
+
j
;
drb
->
id
=
i
+
j
;
drb
->
id
=
i
+
j
+
1
;
drb
->
defaultDRB
=
E1AP_DefaultDRB_true
;
drb
->
sDAP_Header_UL
=
!
(
rrc
->
configuration
.
enable_sdap
);
...
...
FANG WANG
@wf
mentioned in commit
553f1d1a
·
Feb 11, 2023
mentioned in commit
553f1d1a
mentioned in commit 553f1d1a52845911be4ba61ec2bcc5c60ad42ae7
Toggle commit list
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