Commit 35961b90 authored by Stefan Spettel's avatar Stefan Spettel

feat(smf): Added UL CL support in Downlink direction

Signed-off-by: default avatarStefan Spettel <stefan.spettel@eurecom.fr>
parent 86f119a0
......@@ -1097,6 +1097,31 @@ void upf_graph::dfs_next_upf(
std::make_shared<smf_qos_flow>(qos_flow_asynch);
edge_it.qos_flows.emplace_back(flow);
}
// TODO thought for refactor: It would be much nicer if it would be the
// same edge object so we dont have to do that
// pointer is not null -> N9 interface
if (edge_it.association) {
// we add the TEID here for the edge in the other direction
// direct access is safe as we know the edge exists
auto edge_node = adjacency_list[edge_it.association];
for (auto edge_edge : edge_node) {
if (edge_edge.qos_flows.empty()) {
edge_edge.qos_flows.emplace_back(
std::make_shared<smf_qos_flow>(qos_flow_asynch));
}
if (edge_edge.association &&
edge_edge.association == node_it->first) {
if (edge_edge.type == iface_type::N9 && edge_edge.uplink) {
// downlink direction
edge_it.qos_flows[0]->dl_fteid = edge_edge.qos_flows[0]->dl_fteid;
} else if (edge_edge.type == iface_type::N9) {
edge_it.qos_flows[0]->ul_fteid = edge_edge.qos_flows[0]->ul_fteid;
}
}
}
}
// set the correct edges to return
if (edge_it.uplink) {
......
This diff is collapsed.
......@@ -178,19 +178,19 @@ class session_create_sm_context_procedure : public smf_session_procedure {
itti_n4_session_establishment_response& resp,
std::shared_ptr<smf::smf_context> sc) override;
/**
* Sends a session establishment request, based on current UPF graph
* @return
*/
smf_procedure_code send_n4_session_establishment_request();
std::shared_ptr<itti_n4_session_establishment_request> n4_triggered;
std::shared_ptr<itti_n11_create_sm_context_request> n11_trigger;
std::shared_ptr<itti_n11_create_sm_context_response> n11_triggered_pending;
private:
smf_qos_flow current_flow;
smf_qos_flow current_flow{};
/**
* Sends a session establishment request, based on current UPF graph
* @return
*/
smf_procedure_code send_n4_session_establishment_request();
};
//------------------------------------------------------------------------------
......@@ -231,6 +231,16 @@ class session_update_sm_context_procedure : public smf_session_procedure {
std::shared_ptr<itti_n11_update_sm_context_request> n11_trigger;
std::shared_ptr<itti_n11_update_sm_context_response> n11_triggered_pending;
session_management_procedures_type_e session_procedure_type;
private:
// TODO currently support only one flow
smf_qos_flow current_flow{};
/**
* Sends a session modification request, based on the graph
* Does only consider normal DL procedures
* @return OK when successful, ERROR otherwise
*/
smf_procedure_code send_n4_session_modification_request();
};
//------------------------------------------------------------------------------
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment