Draft: feat(smf): Implemented edge computing UPF selection
Disclaimer
This feature is still experimental. Many things in the smf_procedure.cpp code have been refactored and changed. The PDU session deletion is not implemented yet. It is also likely that the handover procedure does not work anymore.
It should not be merged into development until all these features are tested and fixed. Please advise me how I can reproduce and test all the features which used to be working.
Features
UPF graph
- UPF PFCP associations are stored in a graph instead of in a list
- The UPF selection algorithm uses a DFS to select a sub-graph based on the PCC rules from the PCF and the DNAI
- The selection still supports DNN/SNSSAI selection if PCC rules or PCF are not available
PCF interface
- Implemented creation of SMPolicy Association
- Handling of the traffic-related parts of the PCC rules
- QoS from PCC rules are not taken into account currently
PFCP
- Refactored smf_procedure
- Send multiple PFCP Session Establishment/Modification requests in case more than one UPF is part of the graph
- Fixed issues in the PFCP layer (Choose ID, SDF filter length)
- Added support for N9 in UL and DL
- Added support for UL CL
Documentation
The documentation how to use this feature will be created in a feature_edge_computing branch in the fed repository.
Edited by Stefan Spettel