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
lizhongxiao
OpenXG-RAN
Commits
a6ef3a96
Commit
a6ef3a96
authored
Jan 31, 2024
by
Guido Casati
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Minor fixes and comments
parent
7ffc0e43
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
13 deletions
+19
-13
openair2/E1AP/e1ap.c
openair2/E1AP/e1ap.c
+13
-11
openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c
openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c
+5
-0
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+1
-2
No files found.
openair2/E1AP/e1ap.c
View file @
a6ef3a96
...
@@ -163,7 +163,6 @@ int e1ap_send_ERROR_INDICATION(instance_t instance, E1AP_ErrorIndication_t *Erro
...
@@ -163,7 +163,6 @@ int e1ap_send_ERROR_INDICATION(instance_t instance, E1AP_ErrorIndication_t *Erro
/*
/*
E1 Setup: can be sent on both ways, to be refined
E1 Setup: can be sent on both ways, to be refined
*/
*/
static
void
fill_SETUP_REQUEST
(
e1ap_setup_req_t
*
setup
,
E1AP_E1AP_PDU_t
*
pdu
)
static
void
fill_SETUP_REQUEST
(
e1ap_setup_req_t
*
setup
,
E1AP_E1AP_PDU_t
*
pdu
)
{
{
/* Create */
/* Create */
...
@@ -676,16 +675,16 @@ static int fill_BEARER_CONTEXT_SETUP_REQUEST(e1ap_bearer_setup_req_t *const bear
...
@@ -676,16 +675,16 @@ static int fill_BEARER_CONTEXT_SETUP_REQUEST(e1ap_bearer_setup_req_t *const bear
ieC6_1_1
->
pDCP_Configuration
.
t_ReorderingTimer
=
roTimer
;
ieC6_1_1
->
pDCP_Configuration
.
t_ReorderingTimer
=
roTimer
;
roTimer
->
t_Reordering
=
j
->
pdcp_config
.
reorderingTimer
;
roTimer
->
t_Reordering
=
j
->
pdcp_config
.
reorderingTimer
;
ieC6_1_1
->
pDCP_Configuration
.
rLC_Mode
=
j
->
pdcp_config
.
rLC_Mode
;
ieC6_1_1
->
pDCP_Configuration
.
rLC_Mode
=
j
->
pdcp_config
.
rLC_Mode
;
/* Cell Group config */
for
(
cell_group_t
*
k
=
j
->
cellGroupList
;
k
<
j
->
cellGroupList
+
j
->
numCellGroups
;
k
++
)
{
for
(
cell_group_t
*
k
=
j
->
cellGroupList
;
k
<
j
->
cellGroupList
+
j
->
numCellGroups
;
k
++
)
{
asn1cSequenceAdd
(
ieC6_1_1
->
cell_Group_Information
.
list
,
E1AP_Cell_Group_Information_Item_t
,
ieC6_1_1_1
);
asn1cSequenceAdd
(
ieC6_1_1
->
cell_Group_Information
.
list
,
E1AP_Cell_Group_Information_Item_t
,
ieC6_1_1_1
);
ieC6_1_1_1
->
cell_Group_ID
=
k
->
id
;
ieC6_1_1_1
->
cell_Group_ID
=
k
->
id
;
}
}
/* QoS Flows */
for
(
qos_flow_to_setup_t
*
k
=
j
->
qosFlows
;
k
<
j
->
qosFlows
+
j
->
numQosFlow2Setup
;
k
++
)
{
for
(
qos_flow_to_setup_t
*
k
=
j
->
qosFlows
;
k
<
j
->
qosFlows
+
j
->
numQosFlow2Setup
;
k
++
)
{
asn1cSequenceAdd
(
ieC6_1_1
->
qos_flow_Information_To_Be_Setup
,
E1AP_QoS_Flow_QoS_Parameter_Item_t
,
ieC6_1_1_1
);
asn1cSequenceAdd
(
ieC6_1_1
->
qos_flow_Information_To_Be_Setup
,
E1AP_QoS_Flow_QoS_Parameter_Item_t
,
ieC6_1_1_1
);
ieC6_1_1_1
->
qoS_Flow_Identifier
=
k
->
qfi
;
ieC6_1_1_1
->
qoS_Flow_Identifier
=
k
->
qfi
;
/* QoS Characteristics */
qos_characteristics_t
*
qos_char_in
=
&
k
->
qos_params
.
qos_characteristics
;
qos_characteristics_t
*
qos_char_in
=
&
k
->
qos_params
.
qos_characteristics
;
if
(
qos_char_in
->
qos_type
==
non_dynamic
)
{
// non Dynamic 5QI
if
(
qos_char_in
->
qos_type
==
non_dynamic
)
{
// non Dynamic 5QI
ieC6_1_1_1
->
qoSFlowLevelQoSParameters
.
qoS_Characteristics
.
present
=
E1AP_QoS_Characteristics_PR_non_Dynamic_5QI
;
ieC6_1_1_1
->
qoSFlowLevelQoSParameters
.
qoS_Characteristics
.
present
=
E1AP_QoS_Characteristics_PR_non_Dynamic_5QI
;
...
@@ -699,7 +698,7 @@ static int fill_BEARER_CONTEXT_SETUP_REQUEST(e1ap_bearer_setup_req_t *const bear
...
@@ -699,7 +698,7 @@ static int fill_BEARER_CONTEXT_SETUP_REQUEST(e1ap_bearer_setup_req_t *const bear
dynamic_5QI
->
packetErrorRate
.
pER_Scalar
=
qos_char_in
->
dynamic
.
packet_error_rate
.
per_scalar
;
dynamic_5QI
->
packetErrorRate
.
pER_Scalar
=
qos_char_in
->
dynamic
.
packet_error_rate
.
per_scalar
;
dynamic_5QI
->
packetErrorRate
.
pER_Exponent
=
qos_char_in
->
dynamic
.
packet_error_rate
.
per_exponent
;
dynamic_5QI
->
packetErrorRate
.
pER_Exponent
=
qos_char_in
->
dynamic
.
packet_error_rate
.
per_exponent
;
}
}
/* QoS Retention Priority */
ngran_allocation_retention_priority_t
*
rent_priority_in
=
&
k
->
qos_params
.
alloc_reten_priority
;
ngran_allocation_retention_priority_t
*
rent_priority_in
=
&
k
->
qos_params
.
alloc_reten_priority
;
ieC6_1_1_1
->
qoSFlowLevelQoSParameters
.
nGRANallocationRetentionPriority
.
priorityLevel
=
rent_priority_in
->
priority_level
;
ieC6_1_1_1
->
qoSFlowLevelQoSParameters
.
nGRANallocationRetentionPriority
.
priorityLevel
=
rent_priority_in
->
priority_level
;
ieC6_1_1_1
->
qoSFlowLevelQoSParameters
.
nGRANallocationRetentionPriority
.
pre_emptionCapability
=
ieC6_1_1_1
->
qoSFlowLevelQoSParameters
.
nGRANallocationRetentionPriority
.
pre_emptionCapability
=
...
@@ -1312,6 +1311,9 @@ int e1apCUUP_send_BEARER_CONTEXT_MODIFICATION_FAILURE(instance_t instance)
...
@@ -1312,6 +1311,9 @@ int e1apCUUP_send_BEARER_CONTEXT_MODIFICATION_FAILURE(instance_t instance)
return
-
1
;
return
-
1
;
}
}
/**
* @brief Process E1AP PDU and extract Bearer Context Modification Request
*/
static
void
extract_BEARER_CONTEXT_MODIFICATION_REQUEST
(
const
E1AP_E1AP_PDU_t
*
pdu
,
e1ap_bearer_mod_req_t
*
bearerCxt
)
static
void
extract_BEARER_CONTEXT_MODIFICATION_REQUEST
(
const
E1AP_E1AP_PDU_t
*
pdu
,
e1ap_bearer_mod_req_t
*
bearerCxt
)
{
{
const
E1AP_BearerContextModificationRequest_t
*
in
=
&
pdu
->
choice
.
initiatingMessage
->
value
.
choice
.
BearerContextModificationRequest
;
const
E1AP_BearerContextModificationRequest_t
*
in
=
&
pdu
->
choice
.
initiatingMessage
->
value
.
choice
.
BearerContextModificationRequest
;
...
@@ -1346,9 +1348,8 @@ static void extract_BEARER_CONTEXT_MODIFICATION_REQUEST(const E1AP_E1AP_PDU_t *p
...
@@ -1346,9 +1348,8 @@ static void extract_BEARER_CONTEXT_MODIFICATION_REQUEST(const E1AP_E1AP_PDU_t *p
DevAssert
(
msgNGRAN_list
->
list
.
count
==
1
);
DevAssert
(
msgNGRAN_list
->
list
.
count
==
1
);
DevAssert
(
msgNGRAN
->
id
==
E1AP_ProtocolIE_ID_id_PDU_Session_Resource_To_Modify_List
);
DevAssert
(
msgNGRAN
->
id
==
E1AP_ProtocolIE_ID_id_PDU_Session_Resource_To_Modify_List
);
DevAssert
(
msgNGRAN
->
value
.
present
=
DevAssert
(
msgNGRAN
->
value
.
present
=
E1AP_NG_RAN_BearerContextModificationRequest__value_PR_PDU_Session_Resource_To_Modify_List
);
E1AP_NG_RAN_BearerContextModificationRequest__value_PR_PDU_Session_Resource_To_Modify_List
);
/* PDU Session Resource To Modify List (see 9.3.3.11 of TS 38.463) */
/* PDU Sessions to modify */
E1AP_PDU_Session_Resource_To_Modify_List_t
*
pdu2ModList
=
&
msgNGRAN
->
value
.
choice
.
PDU_Session_Resource_To_Modify_List
;
E1AP_PDU_Session_Resource_To_Modify_List_t
*
pdu2ModList
=
&
msgNGRAN
->
value
.
choice
.
PDU_Session_Resource_To_Modify_List
;
bearerCxt
->
numPDUSessionsMod
=
pdu2ModList
->
list
.
count
;
bearerCxt
->
numPDUSessionsMod
=
pdu2ModList
->
list
.
count
;
for
(
int
i
=
0
;
i
<
pdu2ModList
->
list
.
count
;
i
++
)
{
for
(
int
i
=
0
;
i
<
pdu2ModList
->
list
.
count
;
i
++
)
{
...
@@ -1396,6 +1397,10 @@ static void extract_BEARER_CONTEXT_MODIFICATION_REQUEST(const E1AP_E1AP_PDU_t *p
...
@@ -1396,6 +1397,10 @@ static void extract_BEARER_CONTEXT_MODIFICATION_REQUEST(const E1AP_E1AP_PDU_t *p
}
}
}
}
/**
* @brief Extract Bearer Context Modification Request from E1AP PDU
* and prepare Bearer Context Modification Response
*/
int
e1apCUUP_handle_BEARER_CONTEXT_MODIFICATION_REQUEST
(
sctp_assoc_t
assoc_id
,
int
e1apCUUP_handle_BEARER_CONTEXT_MODIFICATION_REQUEST
(
sctp_assoc_t
assoc_id
,
e1ap_upcp_inst_t
*
e1_inst
,
e1ap_upcp_inst_t
*
e1_inst
,
const
E1AP_E1AP_PDU_t
*
pdu
)
const
E1AP_E1AP_PDU_t
*
pdu
)
...
@@ -1405,10 +1410,8 @@ int e1apCUUP_handle_BEARER_CONTEXT_MODIFICATION_REQUEST(sctp_assoc_t assoc_id,
...
@@ -1405,10 +1410,8 @@ int e1apCUUP_handle_BEARER_CONTEXT_MODIFICATION_REQUEST(sctp_assoc_t assoc_id,
DevAssert
(
pdu
->
choice
.
initiatingMessage
->
procedureCode
==
E1AP_ProcedureCode_id_bearerContextModification
);
DevAssert
(
pdu
->
choice
.
initiatingMessage
->
procedureCode
==
E1AP_ProcedureCode_id_bearerContextModification
);
DevAssert
(
pdu
->
choice
.
initiatingMessage
->
criticality
==
E1AP_Criticality_reject
);
DevAssert
(
pdu
->
choice
.
initiatingMessage
->
criticality
==
E1AP_Criticality_reject
);
DevAssert
(
pdu
->
choice
.
initiatingMessage
->
value
.
present
==
E1AP_InitiatingMessage__value_PR_BearerContextModificationRequest
);
DevAssert
(
pdu
->
choice
.
initiatingMessage
->
value
.
present
==
E1AP_InitiatingMessage__value_PR_BearerContextModificationRequest
);
e1ap_bearer_mod_req_t
bearerCxt
=
{
0
};
e1ap_bearer_mod_req_t
bearerCxt
=
{
0
};
extract_BEARER_CONTEXT_MODIFICATION_REQUEST
(
pdu
,
&
bearerCxt
);
extract_BEARER_CONTEXT_MODIFICATION_REQUEST
(
pdu
,
&
bearerCxt
);
e1_bearer_context_modif
(
&
bearerCxt
);
e1_bearer_context_modif
(
&
bearerCxt
);
return
0
;
return
0
;
}
}
...
@@ -1492,7 +1495,6 @@ int e1apCUCP_handle_BEARER_CONTEXT_MODIFICATION_RESPONSE(sctp_assoc_t assoc_id,
...
@@ -1492,7 +1495,6 @@ int e1apCUCP_handle_BEARER_CONTEXT_MODIFICATION_RESPONSE(sctp_assoc_t assoc_id,
DevAssert
(
pdu
->
choice
.
successfulOutcome
->
procedureCode
==
E1AP_ProcedureCode_id_bearerContextModification
);
DevAssert
(
pdu
->
choice
.
successfulOutcome
->
procedureCode
==
E1AP_ProcedureCode_id_bearerContextModification
);
DevAssert
(
pdu
->
choice
.
successfulOutcome
->
criticality
==
E1AP_Criticality_reject
);
DevAssert
(
pdu
->
choice
.
successfulOutcome
->
criticality
==
E1AP_Criticality_reject
);
DevAssert
(
pdu
->
choice
.
successfulOutcome
->
value
.
present
==
E1AP_SuccessfulOutcome__value_PR_BearerContextModificationResponse
);
DevAssert
(
pdu
->
choice
.
successfulOutcome
->
value
.
present
==
E1AP_SuccessfulOutcome__value_PR_BearerContextModificationResponse
);
MessageDef
*
msg
=
itti_alloc_new_message
(
TASK_CUUP_E1
,
0
,
E1AP_BEARER_CONTEXT_MODIFICATION_RESP
);
MessageDef
*
msg
=
itti_alloc_new_message
(
TASK_CUUP_E1
,
0
,
E1AP_BEARER_CONTEXT_MODIFICATION_RESP
);
e1ap_bearer_modif_resp_t
*
modif
=
&
E1AP_BEARER_CONTEXT_MODIFICATION_RESP
(
msg
);
e1ap_bearer_modif_resp_t
*
modif
=
&
E1AP_BEARER_CONTEXT_MODIFICATION_RESP
(
msg
);
extract_BEARER_CONTEXT_MODIFICATION_RESPONSE
(
pdu
,
modif
);
extract_BEARER_CONTEXT_MODIFICATION_RESPONSE
(
pdu
,
modif
);
...
...
openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c
View file @
a6ef3a96
...
@@ -223,6 +223,9 @@ void e1_bearer_context_setup(const e1ap_bearer_setup_req_t *req)
...
@@ -223,6 +223,9 @@ void e1_bearer_context_setup(const e1ap_bearer_setup_req_t *req)
get_e1_if
()
->
bearer_setup_response
(
&
resp
);
get_e1_if
()
->
bearer_setup_response
(
&
resp
);
}
}
/**
* @brief Fill Bearer Context Modification Response and send to callback
*/
void
e1_bearer_context_modif
(
const
e1ap_bearer_mod_req_t
*
req
)
void
e1_bearer_context_modif
(
const
e1ap_bearer_mod_req_t
*
req
)
{
{
AssertFatal
(
req
->
numPDUSessionsMod
>
0
,
"need at least one PDU session to modify
\n
"
);
AssertFatal
(
req
->
numPDUSessionsMod
>
0
,
"need at least one PDU session to modify
\n
"
);
...
@@ -235,6 +238,7 @@ void e1_bearer_context_modif(const e1ap_bearer_mod_req_t *req)
...
@@ -235,6 +238,7 @@ void e1_bearer_context_modif(const e1ap_bearer_mod_req_t *req)
instance_t
f1inst
=
get_f1_gtp_instance
();
instance_t
f1inst
=
get_f1_gtp_instance
();
/* PDU Session Resource To Modify List (see 9.3.3.11 of TS 38.463) */
for
(
int
i
=
0
;
i
<
req
->
numPDUSessionsMod
;
i
++
)
{
for
(
int
i
=
0
;
i
<
req
->
numPDUSessionsMod
;
i
++
)
{
DevAssert
(
req
->
pduSessionMod
[
i
].
sessionId
>
0
);
DevAssert
(
req
->
pduSessionMod
[
i
].
sessionId
>
0
);
LOG_I
(
E1AP
,
LOG_I
(
E1AP
,
...
@@ -244,6 +248,7 @@ void e1_bearer_context_modif(const e1ap_bearer_mod_req_t *req)
...
@@ -244,6 +248,7 @@ void e1_bearer_context_modif(const e1ap_bearer_mod_req_t *req)
req
->
pduSessionMod
[
i
].
numDRB2Modify
);
req
->
pduSessionMod
[
i
].
numDRB2Modify
);
modif
.
pduSessionMod
[
i
].
id
=
req
->
pduSessionMod
[
i
].
sessionId
;
modif
.
pduSessionMod
[
i
].
id
=
req
->
pduSessionMod
[
i
].
sessionId
;
modif
.
pduSessionMod
[
i
].
numDRBModified
=
req
->
pduSessionMod
[
i
].
numDRB2Modify
;
modif
.
pduSessionMod
[
i
].
numDRBModified
=
req
->
pduSessionMod
[
i
].
numDRB2Modify
;
/* DRBs to modify */
for
(
int
j
=
0
;
j
<
req
->
pduSessionMod
[
i
].
numDRB2Modify
;
j
++
)
{
for
(
int
j
=
0
;
j
<
req
->
pduSessionMod
[
i
].
numDRB2Modify
;
j
++
)
{
const
DRB_nGRAN_to_mod_t
*
to_modif
=
&
req
->
pduSessionMod
[
i
].
DRBnGRanModList
[
j
];
const
DRB_nGRAN_to_mod_t
*
to_modif
=
&
req
->
pduSessionMod
[
i
].
DRBnGRanModList
[
j
];
DRB_nGRAN_modified_t
*
modified
=
&
modif
.
pduSessionMod
[
i
].
DRBnGRanModList
[
j
];
DRB_nGRAN_modified_t
*
modified
=
&
modif
.
pduSessionMod
[
i
].
DRBnGRanModList
[
j
];
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
a6ef3a96
...
@@ -951,13 +951,11 @@ static void rrc_gNB_generate_RRCReestablishment(rrc_gNB_ue_context_t *ue_context
...
@@ -951,13 +951,11 @@ static void rrc_gNB_generate_RRCReestablishment(rrc_gNB_ue_context_t *ue_context
const
uint8_t
*
masterCellGroup_from_DU
,
const
uint8_t
*
masterCellGroup_from_DU
,
const
rnti_t
old_rnti
,
const
rnti_t
old_rnti
,
const
nr_rrc_du_container_t
*
du
)
const
nr_rrc_du_container_t
*
du
)
//-----------------------------------------------------------------------------
{
{
module_id_t
module_id
=
0
;
module_id_t
module_id
=
0
;
gNB_RRC_INST
*
rrc
=
RC
.
nrrrc
[
module_id
];
gNB_RRC_INST
*
rrc
=
RC
.
nrrrc
[
module_id
];
int
enable_ciphering
=
0
;
int
enable_ciphering
=
0
;
gNB_RRC_UE_t
*
ue_p
=
&
ue_context_pP
->
ue_context
;
gNB_RRC_UE_t
*
ue_p
=
&
ue_context_pP
->
ue_context
;
uint8_t
buffer
[
RRC_BUF_SIZE
]
=
{
0
};
uint8_t
buffer
[
RRC_BUF_SIZE
]
=
{
0
};
uint8_t
xid
=
rrc_gNB_get_next_transaction_identifier
(
module_id
);
uint8_t
xid
=
rrc_gNB_get_next_transaction_identifier
(
module_id
);
ue_p
->
xids
[
xid
]
=
RRC_REESTABLISH
;
ue_p
->
xids
[
xid
]
=
RRC_REESTABLISH
;
...
@@ -2367,6 +2365,7 @@ void *rrc_gnb_task(void *args_p) {
...
@@ -2367,6 +2365,7 @@ void *rrc_gnb_task(void *args_p) {
break
;
break
;
/* Messages from PDCP */
/* Messages from PDCP */
/* From DU -> CU */
case
F1AP_UL_RRC_MESSAGE
:
case
F1AP_UL_RRC_MESSAGE
:
PROTOCOL_CTXT_SET_BY_INSTANCE
(
&
ctxt
,
PROTOCOL_CTXT_SET_BY_INSTANCE
(
&
ctxt
,
instance
,
instance
,
...
...
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