Echo Request Message
Echo Request
Flags: 0x40
010. .... = Version: 2
...0 .... = Piggybacking flag (P): 0
.... 0... = TEID flag (T): 0
Message Type: Echo Request (1)
Message Length: 14
Sequence Number: 0x00000001 (1)
Spare: 0
Recovery (Restart Counter) : 5
IE Type: Recovery (Restart Counter) (3)
IE Length: 1
0000 .... = CR flag: 0
.... 0000 = Instance: 0
Restart Counter: 5
A node shall include the Recovery information element if it is in contact with the peer for the first time or the node has restarted recently and the new Restart Counter value has not yet been indicated to the peer.
The peer receiving the Recovery information element shall handle it as when an Echo Response message is received but shall consider the rest of the message in accordance with the message semantics and parameters.
Across GTP-C based interfaces an SGSN, GGSN, MME, SGW, PGW and ePDG utilize either GTPv1-C or GTPv2-C Echo Request and Echo Response messages or GTP-C messages containing the Recovery Information Element to detect and handle a restart.
A GTP-C entity shall maintain two Restart counters:
- in volatile memory a remote Restart counter of a peer with which the entity is in contact;
- in non-volatile memory own, or local Restart counter that was sent to a peer.
After a GTP-C entity has restarted, it shall immediately increment all local Restart counters and shall clear all remote Restart counters.
A GTP-C entity may have a common local Restart counter for all peers, or it may have a separate local Restart counter for each peer.
A GTP-C entity may probe the liveliness of each peer with which it is in contact by sending an Echo Request message (see clause 20 "Path management procedures").
The presence of the Restart counter in Echo Request or in a GTP-C message depends on the GTP-C version and therefore is specified in 3GPP TS 29.060 [8] and 3GPP TS 29.274 [13], respectively.
The GTP-C entity that receives a Recovery Information Element in an Echo Response or in another GTP-C message from a peer, shall compare the received remote Restart counter value with the previous Restart counter value stored for that peer entity.
If no previous value was stored the Restart counter value received in the Echo Response or in the GTP-C message shall be stored
for the peer.
If the value of a Restart counter previously stored for a peer is smaller than the Restart counter value received in the Echo Response message or the GTP-C message, taking the integer roll-over into account, this indicates that the entity that sent the Echo Response or the GTP-C message has restarted. The received, new Restart counter value shall be stored by the receiving entity, replacing the value previously stored for the peer.
-If the value of a Restart counter previously stored for a peer is larger than the Restart counter value received in the Echo Response message or the GTP-C message, taking the integer roll-over into account, this indicates a possible race condition (newer message arriving before the older one). The received new Restart counter value shall be discarded and an error may be logged.