Introduction
This document describes a general explanation for 5GSM cause REQUEST_REJECTED_UNSPECIFIED(31), in which case Cisco 5G SMF(Session Management Function) uses the cause code and how to troubleshoot.
What is 5GSM cause information element
The main function of the 5GSM(5GS session management) sublayer is to support the PDU session handling in the UE and in the SMF (transferred via the AMF). The sample procedures of 5GSM are:
- PDU Session Establishment
- PDU Session Modification
- PDU Session Release
- PDU Session Establishment Reject
- PDU Session Modification Reject
- PDU Session Release Reject
- PDU Session Release Request
- PDU Session Modification Command Reject
The main purpose of 5GSM cause information element is to indicate the reason why a 5GSM request is rejected. The values are defined in 3GPP 24.501 specification.
Also the general usage guideline for each cause code is described in "Annex B (informative): Cause values for 5GS session management" on the 3GPP specification mentioned.
What is the 5GSM cause REQUEST_REJECTED_UNSPECIFIED(31)?
A sample packet with the REQUEST_REJECTED_UNSPECIFIED is this.
As per the specification, it is defined as:
Cause #31 – Request rejected, unspecified
This 5GSM cause is used by the network or by the UE to indicate that the requested service or operation or the request for a resource was rejected due to unspecified reasons.
So this cause code is used when some unexpected or unhandled situation happens, and other cause code defined is not applicable.
When SMF use REQUEST_REJECTED_UNSPECIFIED?
As described, SMF uses REQUEST_REJECTED_UNSPECIFIED when some unexpected or unhandled situation happens, and other cause code defined is not applicable. This example is from transaction log, it indicates PDU Session Establishment is rejected with REQUEST_REJECTED_UNSPECIFIED. This message itself indicates something went wrong in SMF and does not provide any exact reason why the request is rejected.
[ERROR] [smf-service.smf-app.event-trace] nasEncodePduSessionEstbReject(Cause-REQUEST_REJECTED_UNSPECIFIED) - EVENT TRACE - SessionKeys[[imsi-<OMIT> (pk)]]
Further look into the transaction log, notice that there is another error:
[ERROR] [smf-service.smf-app.amf] AMF Assign Ebi Failure [BackgroundIpcTimedOut] Background ipc timedout
So the Assign Ebi request towards AMF is timed out which results in the REQUEST_REJECTED_UNSPECIFIED. Now what needs to be investigated is the reason why Assign Ebi request is timeout.
This transaction log is another example, in this case SMF fails to receive ChargingDataCreateRes from CHF and it results in REQUEST_REJECTED_UNSPECIFIED.
[ERROR] [rest_ep.app.n40] Received Charging Data Response error with timediff 1999995051 - response Post http://192.168.20.101:8086/nchf-convergedcharging/v2/chargingdata: net/http: request canceled
[ERROR] [smf-service.smf-app.event-trace] nasEncodePduSessionEstbReject(Cause-REQUEST_REJECTED_UNSPECIFIED) - EVENT TRACE - SessionKeys[[imsi-<OMIT> (pk)]]
The 2 examples explained can be considered as a decent usage of REQUEST_REJECTED_UNSPECIFIED. At same time, there would be a case where other cause code is more appropriate, but SMF just does not handle it well and use REQUEST_REJECTED_UNSPECIFIED instead. This transaction log is again another example of REQUEST_REJECTED_UNSPECIFIED, but the error prior to this is not conclusive.
[ERROR] [smf-service.smf-app.resource] Resource Manager Response Failure
[ERROR] [smf-service.smf-app.event-trace] nasEncodePduSessionEstbReject(Cause-REQUEST_REJECTED_UNSPECIFIED) - EVENT TRACE - SessionKeys[[imsi-<OMIT> (pk)]]
When look at the PDU Session Establishment request, PDU Session Type is IPv4, but IPv4 pool is not configured on SMF.
FIVEG_PDU_SESSION_ESTABLISHMENT_REQUEST (0xC1)
'PDU_SESSION_TYPE': 'IPV4 (0x1)',
ipam
source local
address-pool pool1
vrf-name ISP
tags
dnn test
exit
ipv6
prefix-ranges
split-size
per-cache 8192
per-dp 8192
exit
prefix-range FE80:db0:: length 48
exit
exit
exit
exit
For this scenario, "PDU session type IPv6 only allowed"(51) is better suited, hence it is changed to use PDU_SESSION_TYPE_IPV6_ONLY_ALLOWED via Cisco bug ID CSCvy44631 .
Conclusion
The 5GSM cause REQUEST_REJECTED_UNSPECIFIED itself does not provide a conclusive information of rejection, further investigation is needed to understand what causes it. If more proper cause code is there, it is better to fix the software to do so.