Skip to content

Magma SA: SessionD

Magma SessionD Service [0]

Alternative text

SessionD is the main service responsible for managing and enforcing session configurations. It also coordinates the lifecycle of a session. AccessD calls Sessiond for the session's creation, modification, and termination. Compared with network functions, it can be considered as Session Management Function(SMF).

SessionD's Interface with other Services

SessionD <——> AccessD

SM Context Request from AccessD for the establishment of a session.

SessionD <——> PipelineD

Responsible for policy and QoS enforcement. Pipelined receives any relevant policy and QoS configuration from SessionD and periodically reports usage accordingly.

SessionD <——> PolicyDB

Responsible for propagating any session or policy configuration that sessioD must enforce.

Architecture of SessionD

SessionD is created by combining different components such as:

  • Message Manager Handler [29]
  • M5g-Enforcer [27]
  • Session State [26]
  • Session Store [28]
  • Redis Store (when stateless feature is enabled) [16]
  • Memory Store (when stateless feature is disabled) [10]
  • Session Proxy Responder Handler [24]
  • Session Credit [20]
Alternative text

Call Flow

PDU Session Establishment

Alternative text
  • [29] Handling set message from AMF
  • [29] Send create sesion
  • [29] Set Session ID
  • [29] M5g enforcer initialisation
  • [27] New Session state object
  • [27] Creating sesion state object with ‘Creating’ state
  • [27] Writing session in session map
  • [28] Write session
  • [28] Set current version of session
  • [28] Set fsm state
  • [27] Process static and dynamic rules to install
  • [27] Session state change
  • [27] [26] Charging Grant Intialised
  • [27] [26] Monitoring Grant Initialised
  • [28] Rule map addition, charging and monitoring criteria
  • [27] M5g send session request to UPF
  • [27] Set subscribed qos,
  • [27] Set priority level
  • [27] Set preemption capability
  • [27] Set PDR, FAR, URR and BAR mapping
  • [27] Set UPF node
  • [14] PipelinedD create session request
  • [14] Set subscriber ID, Teid
  • [14] QOS flow setup done
  • [2] Handle response to AccessD
  • [2] Handle notification to AccessD

Session Release/Termination

Alternative text
  • [29] Initiate Session Release
  • [29] [27] M5g Enforcer proceeds the release session
  • [27] [28] Session store find session
  • [27] Get session ID
  • [27] M5g start session termination
  • [27] [26] Set FSM state in Session State
  • [27] [26] Set current version of session
  • [27] PDR Map Erase
  • [27] Remove all rules for termination

If there is termination because of no required report from UPF then follow the below steps

  • [27] M5g complete termination
  • [27] Find session from Session Store
  • [27] [25] Termination in controller
  • [27] [26] Remove all PDR, FAR rules from session state
  • [27] Remove session from session map

Final Steps for both the cases

  • [27] Update session in session store
  • [29] Successfully released and updated session store of subscriber
  • [14] PipelineD deactivate flow for rules

Paging Request

Alternative text
  • [33] PipelineD sends paging request to sessionD
  • [33] Local F-TEID
  • [33] UE IP address
  • [24] SessionD receives the message
  • [24] Get the subscriber ID from MobilityD w.r.t UE IP address
  • [24] SessionD reads the session map from session store.
  • [2] SessionD sends the notification to AccessD
  • [2] Handle Notification to AccessD