7.7 Error Handling
29.2743GPP3GPP Evolved Packet System (EPS)Evolved General Packet Radio Service (GPRS) Tunnelling Protocol for Control plane (GTPv2-C)Release 18Stage 3TS
7.7.0 Handling Piggybacked Messages
For piggybacked initial messages, the following general rule shall apply: the triggered response message carrying the piggybacked message shall be processed first, according to the following clauses. Subsequently, the piggybacked initial message shall be processed independently. If the processing of dedicated bearer activation message results in an error, this shall not affect the default bearer establishment. If the default bearer establishment fails, the dedicated bearer activation related message shall be discarded.
7.7.1 Protocol Errors
A protocol error is defined as a message or an Information Element received from a peer entity with unknown type, or if it is unexpected, or if it has an erroneous content.
The term silently discarded is used in the following clauses to mean that the receiving GTP entity’s implementation shall discard such a message without further processing, or that the receiving GTP entity discards such an IE and continues processing the message. The conditions for the receiving GTP entity to silently discard an IE are specified in the subsequent clauses.
The handling of unknown, unexpected or erroneous GTP messages and IEs shall provide for the forward compatibility of GTP. Therefore, the sending GTP entity shall be able to safely include in a message a new conditional-optional or an optional IE. Such an IE may also have a new type value. Any legacy receiving GTP entity shall, however, silently discard such an IE and continue processing the message.
If a protocol error is detected by the receiving GTP entity, it should log the event including the erroneous message and may include the error in a statistical counter.
For Request messages and Response messages without a rejection Cause value, the following applies:
– An information element with "Mandatory" in the "Presence requirement" column of a message definition shall always be present in that message.
– An information element with "Conditional" in the "Presence requirement" column of a message definition shall be sent when the conditions detailed in the "Condition / Comment" column are met.
For Response messages containing a rejection Cause value, see clause 6.1.1.
The Version Not Supported Indication message shall be considered as a Triggered message as specified in clause 4.2.5 "Messages with GTPv2 defined replies: Classification of Initial and Triggered Messages".
The receiving GTP entity shall apply the error handling specified in the subsequent clauses in decreasing priority.
If the received erroneous message is a reply to an outstanding GTP message, the GTP transaction layer shall stop retransmissions and notify the GTP application layer of the error even if the reply is silently discarded.
7.7.2 Different GTP Versions
If a GTPv2 entity receives a message of an unsupported GTP version, higher than GTPv2, it shall return a Version Not Supported Indication message and silently discard the received message.
If a GTPv2 entity listens to the GTPv0 port, the entity shall silently discard any received GTPv0 message.
If a GTPv2 entity does not support GTPv1 and receives a GTPv1 message, it shall silently discard the received message.
7.7.3 GTP Message of Invalid Length
If a GTP entity receives a message, which is too short to contain the respective GTPv2 header, the GTP-PDU shall be silently discarded.
Apart from a piggybacked GTP message or an Echo Request message, if a GTP entity receives a Request message within an IP/UDP packet of a length that is inconsistent with the value specified in the Length field of the GTP header, then the receiving GTP entity should log the error and shall send the Response message with Cause IE value set to "Invalid Length".
Apart from a piggybacked GTP message, if a GTP entity receives a Response message within an IP/UDP packet of a length that is inconsistent with the value specified in the Length field of the GTP header, then the receiving GTP entity should log the error and shall silently discard the message.
If a GTP entity receives two GTP messages (triggered response message and a piggybacked initial message) within an IP/UDP packet of a length that is inconsistent with the total length of the two concatenated messages as indicated by Length fields of the GTP headers, then the receiving GTP entity should log the error and return an appropriate Response message with Cause IE value set to "Invalid overall length of the triggered response message and a piggybacked initial message". That is:
– for a Create Session Response message together with a piggybacked Create Bearer Request message, a Create Bearer Response message should be returned with the above Cause value.
– for a Create Bearer Response message together with a piggybacked Modify Bearer Request message, a Modify Bearer Response message should be returned with the above Cause value.
7.7.4 Unknown GTP Message
If a GTP entity receives a message with an unknown Message Type value, it shall silently discard the message.
7.7.5 Unexpected GTP Message
If a GTP entity receives an unexpected initial message (see clause 4.2 "Protocol stack"), for example a known message that is sent over an interface for which the message is not defined, or a message that is sent over an interface for which the message is defined, but the direction is incorrect, then the GTP entity shall silently discard the message and shall log an error.
If a GTP entity receives an unexpected triggered message which is not a request message (see clause 4.2 "Protocol stack"), for example a message for which there is no corresponding outstanding request, it shall discard the message and may log an error.
When a GTP entity receives an unexpected triggered message, which is a request message, triggered by a command message, i.e. the MSB of the sequence number is set "1", e.g. in Create/Update/Delete Bearer Request messages, the GTP entity may continue to handle the request, e.g. to accept the Delete Bearer Request message.
NOTE: Whether to accept or reject such a message is implementation specific.
7.7.6 Missing Information Elements
A GTP entity shall check if all mandatory IEs are present in the received Request message. Apart from Echo Request message, if one or more mandatory information elements are missing in the received Request message, the GTP entity should log the error and shall send a Response message with Cause IE value set to "Mandatory IE missing" together with the type and instance of the missing mandatory IE.
If a GTP entity receives a Response message with Cause IE value set to "Mandatory IE missing", it shall notify its upper layer.
A GTP entity shall check if all mandatory IEs are present in the received Response message without a rejection Cause value. If one or more mandatory information elements are missing, the GTP entity shall notify the upper layer and should log the error. If a mandatory IE is missing in a Response message, which the SGW shall forward over another interface (e.g. when SGW forwards a message from PGW to MME), the SGW shall include the rejection Cause "Invalid Reply from remote peer" (see clause 8.4) in the forwarded Response message.
A GTP entity shall check if conditional information elements are present in the received Request message, if possible (i.e. if the receiving entity has sufficient information available to check if the respective conditions were met). If one or more conditional information elements are missing, a GTP entity should log the error and shall send a Response message with Cause IE value set to "Conditional IE missing" together with the type and instance of the missing conditional IE.
A GTP entity shall check if conditional information elements are present in the received Response message without a rejection Cause value, if possible (i.e. if the receiving entity has sufficient information available to check if the respective conditions were met). If one or more conditional information elements are missing, a GTP entity shall notify the upper layer and should log the error.
For Response messages containing a rejection Cause value, see clause 6.1.1.
If the Indication IE is applicable for the message as a conditional IE and if it is not present, the GTP entity shall not reject the message unless there are other reasons to reject the message.
If the Indication IE is applicable for the message as conditional IE and if it is present with the value of all the applicable flags set to "0", the GTP entity shall not reject the message unless there are other reasons to reject the message.
Absence of an optional information element shall not trigger any of the error handling processes.
7.7.7 Invalid Length Information Element
An information element has invalid length when the actual length of the IE is different from the value of the Length field in the IE header. Here, the actual length of the IE means the length of the content field of the received IE.
If a GTP message contains more than one information elements and one or more of them have invalid length, the receiving GTP entity can detect which of the IEs have invalid length only in the following cases:
– If the Length value in the IE header is greater than the overall length of the message;
– If the invalid length IE is the last one in the message.
Apart from Echo Request message, if a receiving GTP entity detects information element with invalid length in a Request message, it shall send an appropriate error response with Cause IE value set to "Invalid length" together with the type and instance of the offending IE.
Other Length field handling cases are specified below:
– If the received value of the Length field and the actual length of the fixed length IE are consistent, but the length is greater than that expected by the fixed number of octets, then the extra octets shall be discarded.
– If the received value of the Length field and the actual length of the fixed length IE are consistent, but the length is less than that expected by the fixed number of octets, this shall be considered an error, IE shall be discarded and if the IE was received as a Mandatory IE or a verifiable Conditional IE in a Request message, an appropriate error response with Cause IE value set to "Invalid length" together with the type and instance of the offending IE shall be returned to the sender.
– If the received value of the Length field and the actual length of the extendable length IE are consistent, but the length is greater than that expected by the fixed number of octets preceding the extended field(s), then the extra unknown octets shall be discarded.
– If the received value of the Length field and the actual length of the extendable length IE are consistent, but the length is less than the number of fixed octets defined for that IE, preceding the extended field(s), this shall be considered an error, IE shall be discarded and if the IE was received as a Mandatory IE or a verifiable Conditional IE in a Request message, an appropriate error response with Cause IE value set to "Invalid length" together with the type and instance of the offending IE shall be returned to the sender. Please refer to Table 8.1-1 for determining the number of fixed octets of an IE.
7.7.8 Semantically incorrect Information Element
Apart from Echo Request message, the receiver of a GTP signalling message Request including a mandatory or a verifiable conditional information element with a semantically invalid Value shall discard the request, should log the error, and shall send a response with Cause set to "Mandatory IE incorrect" together with a type and instance of the offending IE.
The receiver of a GTP signalling message Response including a mandatory or a verifiable conditional information element with a semantically invalid Value shall notify the upper layer that a message with this sequence number has been received and should log the error.
If a GTP entity receives an information element with a value which is shown as reserved, it shall treat that information element as invalid and should log the error. If the invalid IE is received in a Request, and it is a mandatory IE or a verifiable conditional IE, the GTP entity shall send a response with Cause set to "Mandatory IE incorrect " together with a type and instance of the offending IE.
The principle is: the use of reserved values invokes error handling; the use of spare values can be silently discarded and so in the case of IEs with spare values used, processing shall be continued ignoring the spare values.
The receiver of a GTP signalling message including an optional information element with a Value that is not in the range defined for this information element value shall discard this IE, but shall treat the rest of the message as if this IE was absent and continue processing. The receiver shall not check the content of an information element field that is defined as ‘spare".
All semantically incorrect optional information elements in a GTP signalling message shall be treated as not present in the message.
7.7.9 Unknown or unexpected Information Element
The receiver of a GTP message including an unexpected information element with known Type value, but with the instance value that is not defined for this message shall discard the IE and log an error. The receiver shall process the message.
An information element with a Type value which is defined in clause 8.1 of the present specification but whose Instance Value is not expected in the received GTP signalling message according to the grammar defined in clause 7 of the present specification shall be silently discarded (skipped) and the rest of the message processed as if this information element was not present.
NOTE: An Information Element in an encoded GTPv2 message or grouped IE is identified by the pair of IE Type and Instance value.
7.7.10 Repeated Information Elements
An Information Element is repeated if there is more than one IE with the same IE Type and Instance in the scope of the GTP message (scope of the grouped IE). Such an IE is a member in a list.
If an information element is repeated in a GTP signalling message in which repetition of the information element is not specified, only the contents of the information element appearing first shall be handled and all subsequent repetitions of the information element shall be ignored. When repetition of information elements is specified, only the contents of specified repeated information elements shall be handled and all subsequent repetitions of the information element shall be ignored.
7.7.11 TFT Error Handling
TFT related error handling for EUTRAN is specified in 3GPP TS 24.301 [23] and for UTRAN/GERAN in 3GPP TS 24.008 [5].