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
zzha zzha
OpenXG-RAN
Commits
f721b139
Commit
f721b139
authored
Sep 28, 2023
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix: E1 PDU Session has NSSAI, not only SST
parent
c3927fa6
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
21 additions
and
4 deletions
+21
-4
openair2/COMMON/e1ap_messages_types.h
openair2/COMMON/e1ap_messages_types.h
+6
-1
openair2/E1AP/e1ap.c
openair2/E1AP/e1ap.c
+10
-2
openair2/RRC/NR/rrc_gNB_NGAP.c
openair2/RRC/NR/rrc_gNB_NGAP.c
+5
-1
No files found.
openair2/COMMON/e1ap_messages_types.h
View file @
f721b139
...
...
@@ -55,6 +55,11 @@ typedef struct PLMN_ID_s {
int
mnc_digit_length
;
}
PLMN_ID_t
;
typedef
struct
e1ap_nssai_t
{
uint8_t
sst
;
uint32_t
sd
;
// optional: "No SD" is 0xffffff, see 23.003 Sec 28.4.2
}
e1ap_nssai_t
;
typedef
struct
e1ap_net_config_t
{
net_ip_address_t
CUUP_e1_ip_address
;
net_ip_address_t
CUCP_e1_ip_address
;
...
...
@@ -144,7 +149,7 @@ typedef struct DRB_nGRAN_to_setup_s {
typedef
struct
pdu_session_to_setup_s
{
long
sessionId
;
long
sessionType
;
int8_t
sst
;
e1ap_nssai_t
nssai
;
long
integrityProtectionIndication
;
long
confidentialityProtectionIndication
;
in_addr_t
tlAddress
;
...
...
openair2/E1AP/e1ap.c
View file @
f721b139
...
...
@@ -562,7 +562,12 @@ static int fill_BEARER_CONTEXT_SETUP_REQUEST(e1ap_bearer_setup_req_t *const bear
ieC6_1
->
pDU_Session_ID
=
i
->
sessionId
;
ieC6_1
->
pDU_Session_Type
=
i
->
sessionType
;
INT8_TO_OCTET_STRING
(
i
->
sst
,
&
ieC6_1
->
sNSSAI
.
sST
);
INT8_TO_OCTET_STRING
(
i
->
nssai
.
sst
,
&
ieC6_1
->
sNSSAI
.
sST
);
if
(
i
->
nssai
.
sd
!=
0xffffff
)
{
ieC6_1
->
sNSSAI
.
sD
=
malloc
(
sizeof
(
*
ieC6_1
->
sNSSAI
.
sD
));
AssertFatal
(
ieC6_1
->
sNSSAI
.
sD
!=
NULL
,
"out of memory
\n
"
);
INT24_TO_OCTET_STRING
(
i
->
nssai
.
sd
,
ieC6_1
->
sNSSAI
.
sD
);
}
ieC6_1
->
securityIndication
.
integrityProtectionIndication
=
i
->
integrityProtectionIndication
;
ieC6_1
->
securityIndication
.
confidentialityProtectionIndication
=
i
->
confidentialityProtectionIndication
;
...
...
@@ -841,7 +846,10 @@ void extract_BEARER_CONTEXT_SETUP_REQUEST(const E1AP_E1AP_PDU_t *pdu,
pdu_session
->
sessionId
=
pdu2Setup
->
pDU_Session_ID
;
pdu_session
->
sessionType
=
pdu2Setup
->
pDU_Session_Type
;
OCTET_STRING_TO_INT8
(
&
pdu2Setup
->
sNSSAI
.
sST
,
pdu_session
->
sst
);
OCTET_STRING_TO_INT8
(
&
pdu2Setup
->
sNSSAI
.
sST
,
pdu_session
->
nssai
.
sst
);
pdu_session
->
nssai
.
sd
=
0xffffff
;
if
(
pdu2Setup
->
sNSSAI
.
sD
!=
NULL
)
OCTET_STRING_TO_INT24
(
pdu2Setup
->
sNSSAI
.
sD
,
pdu_session
->
nssai
.
sd
);
pdu_session
->
integrityProtectionIndication
=
pdu2Setup
->
securityIndication
.
integrityProtectionIndication
;
pdu_session
->
confidentialityProtectionIndication
=
pdu2Setup
->
securityIndication
.
confidentialityProtectionIndication
;
...
...
openair2/RRC/NR/rrc_gNB_NGAP.c
View file @
f721b139
...
...
@@ -775,7 +775,11 @@ void rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ(MessageDef *msg_p, instance_t ins
pdu_session_to_setup_t
*
pdu
=
bearer_req
.
pduSession
+
bearer_req
.
numPDUSessions
;
bearer_req
.
numPDUSessions
++
;
pdu
->
sessionId
=
session
->
pdusession_id
;
pdu
->
sst
=
msg
->
allowed_nssai
[
i
].
sST
;
ngap_allowed_NSSAI_t
*
nssai
=
&
msg
->
allowed_nssai
[
i
];
pdu
->
nssai
.
sst
=
nssai
->
sST
;
pdu
->
nssai
.
sd
=
0xffffff
;
if
(
nssai
->
sD_flag
)
pdu
->
nssai
.
sd
=
nssai
->
sD
[
0
]
<<
16
|
nssai
->
sD
[
1
]
<<
8
|
nssai
->
sD
[
0
];
pdu
->
integrityProtectionIndication
=
rrc
->
security
.
do_drb_integrity
?
E1AP_IntegrityProtectionIndication_required
:
E1AP_IntegrityProtectionIndication_not_needed
;
pdu
->
confidentialityProtectionIndication
=
rrc
->
security
.
do_drb_ciphering
?
E1AP_ConfidentialityProtectionIndication_required
:
E1AP_ConfidentialityProtectionIndication_not_needed
;
...
...
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