![Go Report Card](https://goreportcard.com/badge/github.com/omec-project/smf)
SMF
SMF is a session management function in 5G architecture and acts as the anchor
point to communicate with UPF (User Plane Function). SD-Core SMF supports
interaction with multiple UPFs. SMF supports handling dynamic slice
configuration, removal and modification.
SMF Block diagram
![SMF Architecture](https://github.com/omec-project/smf/raw/master/docs/images/README-SMF.png)
SMF has configuration interface to handle slice configuration. Config service is
realised using the project - Config Service. SMF exports metrics to prometheus.
Supported Features
- Supports PDU Session Establishment, Modification, Release
- N2/X2 handover
- End Marker Indication to UPF
- PfcpSessionReport
- N1N2MessageTransferFailureNotification handling Callback handling
- Slice based UPF selection
- UE address pool per Slice
- PFCP heartbeat towards UPF
- UE IP-Address allocation via UPF
- QoS call flows in SMF to handle PCC rules in Create Session Policy Response
and installing those rules in UPF & UE
- High Availibilty and Cloud Native support(scale up/down number of instances
and subscriber store in Database)
- UPF-Adapter for PFCP registration of multiple SMF instances with same
node-id to any UPF
- Keep-alive support with respect to NRF
- Transaction queueing for the same PDU session
- SMF metrics available via metric-func to 5g Grafana dashboard
- Static IP-address provision via configuration
SMF supports wide range of error handling,
This includes some of the handling as listed below
- UPF Reconnect if UPF restarts
- PFCP Heartbeat handling towards UPF
- PFCP Transaction timeout and not to wait forever
- SBI message timeout handling and handling timeouts
- Registration towards NRF with updated configuration
- Retrying NRF registration if NRF is not available
Upcoming features in SMF
- Policy Notify from PCF for QoS update
Compliance of the 5G Network functions can be found at 5G Compliance
Design section for SMF is available at SMF Design
How to use SMF
Refer to the SD-Core documentation
Reach out to us thorugh
-
- Raise Github issues