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