Section: 7.6 Reliable Delivery of Signalling Messages
Content: Retransmission requirements in the current clause do not apply to the Initial messages that do not have Triggered messages. Reliable delivery in GTPv2 messages is accomplished by retransmission of these messages. A message shall be retransmitted if and only if a reply is expected for that message and the reply has not yet been received. There may be limits placed on the total number of retransmissions to avoid network overload. Initial messages and their Triggered messages, as well as Triggered messages and their Triggered Reply messages are matched based on the Sequence Number and the IP address and port rules in clause 4.2 "Protocol stack". Therefore, an Initial message and its Triggered message, as well as a Triggered message and its Triggered Reply message shall have exactly the same Sequence Number value. A retransmitted GTPv2 message (an Initial or a Triggered) has the exact same GTPv2 message content, including the GTP header, UDP ports, source and destination IP addresses as the originally transmitted GTPv2 message. For each triplet of local IP address, local UDP port and remote peer's IP address a GTP entity maintains a sending queue with signalling messages to be sent to that peer. The message at the front of the queue shall be sent with a Sequence Number, and if the message has an expected reply, it shall be held in a list until a reply is received or until the GTP entity has ceased retransmission of that message. The Sequence Number shall be unique for each outstanding Initial message sourced from the same IP/UDP endpoint. A node running GTP may have several outstanding messages waiting for replies. Not counting retransmissions, a single GTP message with an expected reply shall be answered with a single GTP reply, regardless whether it is per UE, per APN, or per bearer A piggybacked initial message (such as a Create Bearer Request message or Modify Bearer Request message) shall contain a Sequence Number that is assigned by sending GTP entity and the message shall be held in a list until a response is received. The response message to a piggybacked initial message may arrive without piggybacking (e.g., Create Bearer Response at PGW). The Sequence Number in the GTP header of the triggered response message shall be copied from the respective request message. If a request message (e.g., Create Session Request) triggers piggybacking (i.e., Create Bearer Request piggybacked on Create Session Response), re-transmission of the request message shall also trigger piggybacking. A Sequence Number used for a Command message shall have the most significant bit set to 1. A Sequence Number in a message, which was triggered by a Command message, as well as respective Triggered Reply message shall have the same Sequence Number as the Command message (i.e. shall also have the most significant bit set to 1). This setting of the most significant bit of the Sequence Number is done to avoid potential clashes between the Sequence Number selected for a Command message, and the Sequence Number selected by a GTPv2 peer for a Request message, which was not triggered by a Command message. A Sequence Number used for a Request message, which was not triggered by a Command message shall have the most significant bit set to 0. A timer, denoted T3-RESPONSE, shall be started when a signalling message (for which a reply is expected) is sent. A signalling message or the triggered message has probably been lost if a reply has not been received before the T3-RESPONSE timer expires. Once the T3-RESPONSE timer expires, the message corresponding to the T3-RESPONSE timer is then retransmitted if the total number of retry attempts is less than N3-REQUESTS times. The expiry of the timer for piggybacked request messages shall result in re-transmission of the original IP/UDP packet containing both the triggered response message and the piggybacked initial message. T3-RESPONSE timer and N3-REQUESTS counter setting is implementation dependent. That is, the timers and counters may be configurable per procedure. Multileg communications (e.g. Create Session Requests and Responses) however require longer timer values and possibly a higher number of retransmission attempts compared to single leg communication. All received GTPv2 messages with an expected reply shall be replied to and all reply messages associated with a certain message shall always include the same information. Duplicated reply messages shall be discarded by the receiver unless the reply needs a reply. A received reply message without a matching outstanding message that is waiting for a reply should be discarded. If a GTPv2 node is not successful with the transfer of a non-Echo signalling message, e.g. a Create Bearer Request message, it shall inform the upper layer of the unsuccessful transfer so that the controlling upper entity may take the necessary measures. NOTE: At failure of sending a GTPv2 message after retransmissions, some information included in the message may be lost, e.g. Secondary RAT data usage report.