6.5.3 Handling GPRS in the gprsSSF

23.0783GPPCustomised Applications for Mobile network Enhanced Logic (CAMEL) Phase 4Release 17Stage 2TS

6.5.3.1 Process GPRS_SSF

A relationship exists between the gsmSCF and the Attach/Detach State Model and/or between the gsmSCF and every PDP Context State Model. The relationship may be in controlling or monitoring mode. When a Continue GPRS, Connect GPRS or Request Report GPRS Event information flow is received, then the relationship between the gsmSCF and the Attach/Detach State Model, and between the gsmSCF and a PDP Context State Model may be downgraded from controlling to monitoring.

When Tssf expires, the CAMEL procedures that are waiting for an instruction from the gsmSCF shall receive an Int_Error signal. The Default GPRS Handling parameter determines the subsequent action of those CAMEL procedures.

If the Default GPRS Handling parameter is set to ‘Release’, then:

– if the GPRS Dialogue is controlling a GPRS Session, then the gprsSSF shall release the entire GPRS Session;

– if the GPRS Dialogue is controlling a single PDP Context, then the gprsSSF shall release the PDP Context.

The task box ‘Open GPRS Dialogue’ comprises all the tasks that are required for starting a GPRS dialogue. This includes, amongst others, the allocation of a GPRS Reference Number and the allocation of resources. The task box ‘Terminate GPRS Dialogue’ comprises all the tasks that are required for closing a GPRS dialogue.

6.5.3.2 Process GPRS_Dialogue_Handler

When process gprsSSF sends a TC_End request primitive to process GPRS_Dialogue_Handler, then the corresponding TC_End TC Message shall be sent to the gsmSCF only when the following conditions have been fulfilled:

– The gprsSSF has processed all information flows that the gprsSSF has received from the gsmSCF.

– No information flows remain to be sent from the gprsSSF to the gsmSCF.

– The gprsSSF is not waiting for a Result or Error component for any information flows that the gprsSSF has sent to the gsmSCF.

6.5.3.3 Procedure Handle_AC_GPRS

Procedure Handle_AC_GPRS is called from process gprsSSF with the following input parameters:

– ‘Session’. The Apply Charging GPRS procedure shall be executed for the Session

– ‘PDP Id’. The Apply Charging GPRS procedure shall be executed for the indicated PDP Context.

Sheet 3 in procedure Handle_AC_GPRS contains a check for the PDP Context duration (Tcp(PDP Id)) and PDP Context volume (Vc(PDP Id)). If the PDP Context delta timer (Dcp(PDP Id)) is equal to or larger than the duration threshold received in the Apply Charging GPRS operation or the PDP Context delta counter (Dc(PDP Id)) is equal to or larger than the volume threshold received in the Apply Charging GPRS operation, then the gprsSSF shall generate an internal signal to trigger the sending of an Apply Charging Report GPRS.

If a QoS change has occurred prior to receiving Apply Charging GPRS but after the sending Apply Charging Report GPRS, then the gprsSSF shall generate an internal signal to trigger the sending of an Apply Charging Report GPRS, including the negotiated QoS.

6.5.3.4 Procedure Handle_ACR_GPRS

Procedure Handle_ACR_GPRS is called from process gprsSSF with the following input parameters:

– ‘Session’. The Apply Charging Report GPRS procedure shall be executed for the Session. This procedure checks if a Session Period report is pending and if so, sends this report to the gsmSCF.

– ‘PDP Id’. The Apply Charging Report GPRS procedure shall be executed for the indicated PDP Context. This procedure checks if a Context Volume report is pending and if so, sends this report to the gsmSCF. The procedure then checks if a Context Period is pending and if so, sends this report to the gsmSCF.

– ‘Session + PDPs’. The Apply Charging Report GPRS procedure shall be executed for the Session and all PDP Contexts. The sequence of checking the reports shall be as follows:

1) The procedure checks the pending Volume and Period reports for each PDP Context.

2) The procedure then checks the pending Period report for the Session.

When a PDP Context Volume counter or PDP context Period timer expires or an Apply Charging GPRS is received when QoS change report is pending, then the procedure Apply Charging Report GPRS procedure is called with the PDP Id as input parameter. The procedure will then check both reports for that PDP Context.

6.5.3.5 Procedure Complete_FCI_Record_GPRS

Procedure Complete_FCI_Record_GPRS is called from process gprsSSF with the following input parameters:

– ‘Session’. The Complete_FCI_Record_GPRS procedure shall be executed for the Session.

– ‘PDP Id’. The Complete_FCI_Record_GPRS procedure shall be executed for the indicated PDP Context.

– ‘Session + PDPs’. The Complete_FCI_Record_GPRS procedure shall be executed for the Session and all PDP Contexts.

6.5.3.6 Procedure Handle_SCI_GPRS

For terminology see subclause 4.5.7.2.1.

The gsmSCF may send e‑parameters to the Session and to individual PDP Contexts.

When e‑parameters are sent for the Session, the SGSN will forward these e‑parameters directly to the Mobile Station.

When e‑parameters are sent for a PDP Context and that PDP Context is not yet acknowledged (= active), then the SGSN shall retain these parameters (pending parameters). These parameters will be sent to the Mobile Station when the PDP Context is acknowledged.

The gsmSCF may send two sets of e‑parameters and a Tariff Switch for the Session or a PDP Context. The first set of e‑parameters shall be sent to the SGSN and the second set of e‑parameters shall be stored. This second set of e‑parameters shall be sent to the SGSN when the tariff switch expires.

When the Tariff Switch for the Session expires, then the stored e‑parameters for the Session shall be sent to the SGSN.

When the Tariff Switch for a PDP Context expires before that PDP Context is acknowledged, then the pending e‑parameters for that PDP Context shall be replaced by the stored e‑parameters for that PDP Context.

The stored e‑parameters for that PDP Context shall be discarded.

When the Tariff Switch for a PDP Context expires after that PDP Context has been acknowledged, then the stored e‑parameters for that PDP Context shall be sent to the SGSN.

6.5.3.6.1 Handling of SCI_GPRS for the Session

1) Precondition: no Tsw running for the Session:

if 1 set of e‑parameters received –> send e‑parameters to the SGSN;

if 2 sets of e‑parameters received –> error;

if 1 set of e‑parameters and Tariff Switch received –> error;

if 2 sets of e‑parameters and Tariff Switch received –> send 1st set of e‑parameters to the SGSN/start Tsw (Session)/store 2nd set of e‑parameters.

2) Precondition: Tsw running for the Session and no e‑parameters stored for the Session:

if 1 set of e‑parameters received –> error;

if 2 sets of e‑parameters received –> send 1st set of e‑parameters to the SGSN/store 2nd set of e‑parameters;

if 1 set of e‑parameters and Tariff Switch received –> error;

if 2 sets of e‑parameters and Tariff Switch received –> error.

3) Precondition: Tsw running for the Session and e‑parameters stored for the Session:

if 1 set of e‑parameters received –> error;

if 2 sets of e‑parameters received –> error;

if 1 set of e‑parameters and Tariff Switch received –> error;

if 2 sets of e‑parameters and Tariff Switch received –> error.

6.5.3.6.2 Handling of SCI_GPRS for a PDP Context

1) Precondition: before a PDP Context Establishment Acknowledgement event is detected and no Tsw running for this PDP Context:

if 1 set of e‑parameters received –> send e‑parameters to the SGSN;

if 2 sets of e‑parameters received –> error;

if 1 set of e‑parameters and Tariff Switch received –> error;

if 2 sets of e‑parameters and Tariff Switch received –> send 1st set of e‑parameters to the SGSN/start Tsw(PDP Id)/store 2nd set of e‑parameters;

2) Precondition: before a PDP Context Establishment Acknowledgement event is detected and Tsw running for this PDP Context and no e‑parameters stored for this PDP Context:

if 1 set of e‑parameters received –> error;

if 2 sets of e‑parameters received –> send 1st set of e‑parameters to the SGSN/store 2nd set of e‑parameters;

if 1 set of e‑parameters and Tariff Switch received –> error;

if 2 sets of e‑parameters and Tariff Switch received –> error.

3) Precondition: before a PDP Context Establishment Acknowledgement event is detected and Tsw running for this PDP Context and e‑parameters stored for this PDP Context:

if 1 set of e‑parameters received –> error;

if 2 sets of e‑parameters received –> error;

if 1 set of e‑parameters and Tariff Switch received –> error;

if 2 sets of e‑parameters and Tariff Switch received –> error.

4) Precondition: after a PDP Context Establishment Acknowledgement event is detected and no Tsw running for this PDP Context:

if 1 set of e‑parameters received –> send e‑parameters to the SGSN;

if 2 sets of e‑parameters received –> error;

if 1 set of e‑parameters and Tariff Switch received –> start Tsw(PDP Id)/store e‑parameters;

if 2 sets of e‑parameters and Tariff Switch received –> send 1st set of e‑parameters to the SGSN/start Tsw(PDP Id)/store 2nd set of e‑parameters.

5) Precondition: after a PDP Context Establishment Acknowledgement event is detected and Tsw running for this PDP Context and no e‑parameters stored for this PDP Context;

if 1 set of e‑parameters received –> store e‑parameters;

if 2 sets of e‑parameters received –> send 1st set of e‑parameters to the SGSN/store 2nd set of e‑parameters;

if 1 set of e‑parameters and Tariff Switch received –> error;

if 2 sets of e‑parameters and Tariff Switch received –> error.

6) Precondition: after a PDP Context Establishment Acknowledgement event is detected and Tsw running for this PDP Context and e‑parameters stored for this PDP Context:

if 1 set of e‑parameters received –> error;

if 2 sets of e‑parameters received –> error;

if 1 set of e‑parameters and Tariff Switch received –> error;

if 2 sets of e‑parameters and Tariff Switch received –> error.

6.5.3.7 Procedure Handle_PDP_Acknowledgement

Procedure Handle_PDP_Acknowledgement is called when an event occurs that may signal the activation (= Acknowledgement) of a PDP Context. The event signal is passed on to the Handle_PDP_Acknowledgement procedure.

6.5.3.8 GPRS duration and volume control

6.5.3.8.1 Examples of information flows for GPRS session and PDP context control

Figure 6.16-1: Example of information flows for GPRS session duration at GPRS attach and change of position session

Figure 6.16-2: Example of information flows for PDP context duration control at context activation and change of position context

Figure 6.16-3: Example of information flows for PDP context volume control at context activation and change of position context

Note1: Vc threshold reached, Tcp is stopped.

Note2: Tcp time out, Vc is stopped.

Figure 6.16-4: Example of information flows for PDP context volume and duration control at context activation and change of position context

These figures 6.16-1 to 6.16-4show examples of handling of the timers that are used in the process gprsSSF and in the procedures Handle_AC_GPRS and Handle_ACR_GPRS.

Duration timers (Tsp for the GPRS session and one Tcp for each PDP context) are used if the charging is on duration of the GPRS session or a PDP context.

Tariff Switch Timers (Tsw(Session) for the GPRS session and one Tsw(PDP Id) for each PDP context) define the start point of a new Tariff. Tsw(Session) is used for charging on duration. Tsw(PDP Id) is used for both methods of charging: duration charging and volume charging. If a PDP context is charged on duration and volume, only one Tsw(PDP Id) timer will be accepted from the gsmSCF for that PDP context.

Delta timers measure the response time of the gsmSCF after an Apply Charging Report GPRS information flow:

– Dsp for the GPRS session; this delta timer is used for GPRS session period timing.

– Dcp for each PDP context; these delta timers are used for PDP context period timing.

– Dc for each PDP context; these delta counters are used for PDP context volume counting.

After the sending of Apply Charging Report GPRS, the gsmSCF may reply either with:

– Apply Charging GPRS, if the gsmSCF sends a new duration because of the expiration of the previous period or because of QOS change.

– Release GPRS, if the gsmSCF decides to release the GPRS session or PDP context.

For a more detailed example of the handling of the Apply Charging GPRS and Apply Charging Report GPRS information flows, see Annex A.

6.5.3.8.2 TC guard timer

6.5.3.8.2.1 General

When the gprsSSF sends an Apply Charging Report GPRS information flow to the gsmSCF, with SessionActive or ContextActive variable set to TRUE, then the gprsSSF shall start the TC guard timer. The gprsSSF shall also mark for the Session or PDP Context for which the Apply Charging Report GPRS was sent, that a corresponding Apply Charging GPRS information flow from the gsmSCF is expected.

When the gprsSSF receives an Apply Charging GPRS information flow or a Release GPRS information flow, then the ‘Waiting-for-AC’ marking(s) for the Session or PDP Context shall be removed. The gprsSSF shall then check if the TC guard timer shall be stopped (task box ‘Check TC guard timer’). The TC guard timer shall be stopped if there are no more Apply Charging GPRS information flows expected for the Session and all PDP Contexts.

When an event occurs that results in the termination of a PDP Context, then the ‘Waiting-for-AC’ markings for that PDP Context shall be removed. The gprsSSF shall then check if the TC guard timer shall be stopped (task box ‘Check TC guard timer’). The TC guard timer shall be stopped if there are no more Apply Charging GPRS information flows expected for the Session and all PDP Contexts.

When the TC guard timer expires in state Monitoring, then the gprsSSF shall close the TC dialogue, provided that all conditions for closing the TC dialogue are fulfilled, i.e. there are no information flow results expected from the gsmSCF, no information flows or errors to be sent to the gsmSCF and no information flows from the gsmSCF received and waiting to be processed.

When the TC guard timer expires in state Waiting_for_Instructions, then no action shall be taken.

Service Designers should note that there may be additional timer(s) in the gprsSSF to supervise the response from the gsmSCF on the Apply Charging Report GPRS procedure. As a result of this, if the gsmSCF does not send an Apply Charging GPRS, Release GPRS or Cancel GPRS in response to an Apply Charging Report GPRS when the gprsSSF is awaiting such response, then service behaviour may be unpredictable.

6.5.3.8.2.2 Check TC guard timer

This clause describes the actions to be taken in the task box ‘Check TC guard timer’.

The tasks to be executed in the ‘Check TC guard timer’ box depend on the event that resulted in execution of the task box.

6.5.3.8.2.2.1 Apply Charging GPRS

If ‘Check guard timer’ is executed as a result of an Apply Charging GPRS information flow from the gsmSCF, then the appropriate ‘Waiting-for-AC’ marker shall be removed, depending on the information received in the Apply Charging GPRS information flow:

– if the Apply Charging GPRS information flow carries a Session Time threshold, then the Session-Period ‘Waiting-for-AC’ marker shall be removed.

– if the Apply Charging GPRS information flow carries a PDP Context Volume threshold, then the PDP Context-Volume ‘Waiting-for-AC’ marker shall be removed.

– if the Apply Charging GPRS information flow carries a PDP Context Time threshold, then the PDP Context -Period ‘Waiting-for-AC’ marker shall be removed.

The gprsSSF then checks if there is any ‘Waiting-for-AC’ marker for the Session or any PDP Context. If there is no ‘Waiting-for-AC’ marker remaining, then the TC guard timer shall be stopped.

6.5.3.8.2.2.2 Release GPRS

If ‘Check TC guard timer’ is executed as a result of a Release GPRS information flow from the gsmSCF, then the appropriate ‘Waiting-for-AC’ markers shall be removed, depending on the information received in the Release GPRS information flow:

– if the Release GPRS information flow is for the Session, then the Session ‘Waiting-for-AC’ markers shall be removed.

– if the Release GPRS information flow is for the PDP Context, then the PDP Context ‘Waiting-for-AC’ markers shall be removed.

The gprsSSF then checks if there is any ‘Waiting-for-AC’ marker for the Session or any PDP Context. If there is no ‘Waiting-for-AC’ marker remaining, then the TC guard timer shall be stopped.

6.5.3.8.2.2.3 PDP Context Disconnect

If ‘Check TC guard timer’ is executed as a result of a PDP Context Disconnect signal from the SGSN, then the ‘Waiting-for-AC’ markers for that PDP Context shall be removed.

The gprsSSF then checks if there is any ‘Waiting-for-AC’ marker for the Session or any PDP Context. If there is no ‘Waiting-for-AC’ marker remaining, then the TC guard timer shall be stopped.

6.5.3.9 SDL diagrams for process GPRS_SSF and procedures

Figure 6.17-1: Process GPRS_SSF (sheet 1)

Figure 6.17-2: Process GPRS_SSF (sheet 2)

Figure 6.17-3: Process GPRS_SSF (sheet 3)

Figure 6.17-4: Process GPRS_SSF (sheet 4)

Figure 6.17-5: Process GPRS_SSF (sheet 5)

Figure 6.17-6: Process GPRS_SSF (sheet 6)

Figure 6.17-7: Process GPRS_SSF (sheet 7)

Figure 6.17-8: Process GPRS_SSF (sheet 8)

Figure 6.17-9: Process GPRS_SSF (sheet 9)

Figure 6.17-10: Process GPRS_SSF (sheet 10)

Figure 6.17-11: Process GPRS_SSF (sheet 11)

Figure 6.17-12: Process GPRS_SSF (sheet 12)

Figure 6.17-13: Process GPRS_SSF (sheet 13)

Figure 6.17-14: Process GPRS_SSF (sheet 14)

Figure 6.17-15: Process GPRS_SSF (sheet 15)

Figure 6.17-16: Process GPRS_SSF (sheet 16)

Figure 6.17-17: Process GPRS_SSF (sheet 17)

Figure 6.17-18: Process GPRS_SSF (sheet 18)

Figure 6.17-19: Process GPRS_SSF (sheet 19)

Figure 6.17-20: Process GPRS_SSF (sheet 20)

Figure 6.17-21: Process GPRS_SSF (sheet 21)

Figure 6.17-22: Process GPRS_SSF (sheet 22)

Figure 6.17-23: Process GPRS_SSF (sheet 23)

Figure 6.18-1: Process GPRS_Dialogue_Handler (sheet 1)

Figure 6.18-2: Process GPRS_Dialogue_Handler (sheet 2)

Figure 6.18-3: Process GPRS_Dialogue_Handler (sheet 3)

Figure 6.19-1: Procedure Handle_AC_GPRS (sheet 1)

Figure 6.19-2: Procedure Handle_AC_GPRS (sheet 2)