Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-SMF
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
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-SMF
Commits
41a2b48a
Commit
41a2b48a
authored
Mar 27, 2023
by
Giulio Carota
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
QoS Flows are no more stored in smf_pdu_session
parent
d22b51bf
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
38 additions
and
8 deletions
+38
-8
src/smf_app/smf_context.cpp
src/smf_app/smf_context.cpp
+14
-8
src/smf_app/smf_pfcp_association.cpp
src/smf_app/smf_pfcp_association.cpp
+21
-0
src/smf_app/smf_pfcp_association.hpp
src/smf_app/smf_pfcp_association.hpp
+3
-0
No files found.
src/smf_app/smf_context.cpp
View file @
41a2b48a
...
@@ -3493,15 +3493,21 @@ bool smf_context::handle_ho_preparation_request(
...
@@ -3493,15 +3493,21 @@ bool smf_context::handle_ho_preparation_request(
return
false
;
return
false
;
}
}
std
::
vector
<
smf_qos_flow
>
flows
=
{};
edge
access_upf
=
sp
.
get
()
->
get_qos_flows
(
sp
->
get_sessions_graph
()
->
get_access_edge
();
flows
);
// get all flows associated with this session for now
for
(
auto
flow
:
flows
)
{
// Retrieve QoS Flows from the access UPF
//TODO: Check PDU Session id cast (uint32 -> uint8)
std
::
vector
<
std
::
shared_ptr
<
smf_qos_flow
>>
flows
=
{};
access_upf
.
get_qos_flows
(
sp
->
pdu_session_id
,
flows
);
for
(
const
auto
&
flow
:
flows
)
{
qos_flow_context_updated
qos_flow
=
{};
qos_flow_context_updated
qos_flow
=
{};
qos_flow
.
qfi
=
flow
.
qfi
;
qos_flow
.
set_qfi
(
flow
->
qfi
)
;
qos_flow
.
ul_fteid
=
flow
.
ul_fteid
;
qos_flow
.
set_ul_fteid
(
flow
->
ul_fteid
)
;
qos_flow
.
dl_fteid
=
flow
.
dl_fteid
;
qos_flow
.
set_dl_fteid
(
flow
->
dl_fteid
)
;
qos_flow
.
qos_profile
=
flow
.
qos_profile
;
qos_flow
.
set_qos_profile
(
flow
->
qos_profile
)
;
sm_context_resp
->
res
.
add_qos_flow_context_updated
(
qos_flow
);
sm_context_resp
->
res
.
add_qos_flow_context_updated
(
qos_flow
);
}
}
...
...
src/smf_app/smf_pfcp_association.cpp
View file @
41a2b48a
...
@@ -178,6 +178,27 @@ bool edge::serves_network(
...
@@ -178,6 +178,27 @@ bool edge::serves_network(
return
serves_network
(
dnn
,
snssai
,
set
,
s
);
return
serves_network
(
dnn
,
snssai
,
set
,
s
);
}
}
//---------------------------------------------------------------------------------------------
bool
edge
::
get_qos_flows
(
std
::
vector
<
std
::
shared_ptr
<
smf_qos_flow
>>&
flows
){
flows
.
clear
();
for
(
const
auto
&
flow
:
this
->
qos_flows
){
flows
.
push_back
(
flow
);
}
return
flows
.
size
()
>
0
;
}
//---------------------------------------------------------------------------------------------
bool
edge
::
get_qos_flows
(
pdu_session_id_t
pid
,
std
::
vector
<
std
::
shared_ptr
<
smf_qos_flow
>>&
flows
){
flows
.
clear
();
for
(
const
auto
&
flow
:
this
->
qos_flows
){
if
(
flow
->
pdu_session_id
==
pid
)
flows
.
push_back
(
flow
);
}
return
flows
.
size
()
>
0
;
}
//---------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------
std
::
shared_ptr
<
smf_qos_flow
>
edge
::
get_qos_flow
(
const
pfcp
::
pdr_id_t
&
pdr_id
)
{
std
::
shared_ptr
<
smf_qos_flow
>
edge
::
get_qos_flow
(
const
pfcp
::
pdr_id_t
&
pdr_id
)
{
// it may happen that 2 qos flows have the same PDR ID e.g. in an
// it may happen that 2 qos flows have the same PDR ID e.g. in an
...
...
src/smf_app/smf_pfcp_association.hpp
View file @
41a2b48a
...
@@ -314,6 +314,9 @@ struct edge {
...
@@ -314,6 +314,9 @@ struct edge {
const
std
::
unordered_set
<
std
::
string
>&
dnais
,
const
std
::
unordered_set
<
std
::
string
>&
dnais
,
std
::
string
&
found_dnai
)
const
;
std
::
string
&
found_dnai
)
const
;
bool
get_qos_flows
(
std
::
vector
<
std
::
shared_ptr
<
smf_qos_flow
>>&
flows
);
bool
get_qos_flows
(
pdu_session_id_t
pid
,
std
::
vector
<
std
::
shared_ptr
<
smf_qos_flow
>>&
flows
);
std
::
shared_ptr
<
smf_qos_flow
>
get_qos_flow
(
const
pfcp
::
pdr_id_t
&
pdr_id
);
std
::
shared_ptr
<
smf_qos_flow
>
get_qos_flow
(
const
pfcp
::
pdr_id_t
&
pdr_id
);
std
::
shared_ptr
<
smf_qos_flow
>
get_qos_flow
(
const
pfcp
::
qfi_t
&
qfi
);
std
::
shared_ptr
<
smf_qos_flow
>
get_qos_flow
(
const
pfcp
::
qfi_t
&
qfi
);
...
...
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