Spending Limit Notification Error Processing

When MATRIXX Engine receives an unsuccessful Mtx5GSpendingLimitResponse, the session is retained or ended based on a configuration table in mtx_config.xml.

If the engine ends the session, it sends SpendingLimitControlNotify with SubscriptionTerminationInfo in the body to tell the PCF that the CHF has ended the session. That way the CHF does not try to reuse the session for later operations and is free to start another session. If the session is deleted, the engine notifies the SMF/PCF with a Mtx5GSubscriptionTerminationRequest.

For example, if the following JSON is received by SBA Gateway:

HTTP/1.1 400 Bad Request
Content-Type: application/problem+json
Content-Language: en
 
{
"type": "https://example.net/validation-error",
"title": "Your request parameters didn't validate.",
"invalid-params": [ {
                      "name": "age",
                      "reason": "must be a positive integer"
                    },
                    {
                      "name": "color",
                      "reason": "must be 'green', 'red' or 'blue'"}
                  ]
}

The HTTP error code, 400, is mapped to the Mtx5GSpendingLimitNotifyResponse.Result error code 10:

Mtx5GSpendingLimitNotifyResponse
    Result      10
    ResultText  Your request parameters didn't validate.

The error code is handled by the following mtx_config.xml excerpt:

<policy_notification_error_handling id="10">
   <session_keep_alive id="true">
      <problem_details id="0">*</problem_details>
   </session_keep_alive>
   <session_keep_alive id="false">
      <problem_details id="1">Your request parameters didn't validate.</problem_details>
      <problem_details id="2">Some other unrecoverable error.</problem_details>
      ...
    </session_keep_alive>
</policy_notification_error_handling>

Figure 1 shows the message flow ending in a deleted session:

Figure 1. Spending Limit Notification Message Flow
Spending Limit Notification Message Flow