GTPv2 and Sx Messages Retransmission and Timeout Handling

Feature Summary and Revision History

Summary Data

Table 1. Summary Data

Applicable Product(s) or Functional Area

cnSGW-C

Applicable Platform(s)

SMI

Feature Default Setting

Enabled - Always-on

Related Documentation

Not Applicable

Revision History

Table 2. Revision History

Revision Details

Release

First introduced.

2021.01.0

Feature Description

cnSGW-C enables the retransmission and timeout handling for the parameters associated with outbound and inbound messages through CLI. The retransmission and timeout handling is applicable for the:

  • Messages over a GTPC interface towards MME and PGW and

  • Sx messages sent towards the User Plane (UP).


Note


For handling the retransmission and timeout parameters, you must add the retransmission configuration (N3/T3) for the interface (S5e, S11, and Sxa).


How it Works

S-GW service, GTPC-EP, and SMF protocol are the primary nodes involved in the the retransmission and timeout handling.

The SGW-serice is responsible for:

  • Handling the timeout event from GTPC-EP and SMF protocol

  • Ignoring the inbound retransmitted message

The GTPC-EP and SMF protocol is responsible for:

  • Retransmission and timeout handling

  • Reading the N3/T3 configuration

  • Updating the N3/T3 on configuration change

The retransmission and timeout handling is applicable for both outbound and inbound messages.

Outbound Message

To supports retransmission and timeout of outgoing GTP and PFCP messages, you must configure an interface specific N3 (maximum number of retries) and T3 (retransmission timeout) timer values in accordance to network response time/delay time.

The MME/S11 peers can have different retransmission timeout as compared to PGW/S5 or UPF/SXA.

The GTPC-EP/Protocol pod retries the outgoing request messages based on configured N3T3 values until the response is received or N3T3 is exhausted. In case of N3T3 gets exhausted, the GTPC-EP/Protocol pod sends the failure response with cause peer no response to service pod to indicate that no response has been received for outgoing request message.

Inbound Message

At each N4 and GTP endpoint, there’s a set of queues for incoming and outgoing traffic. Each queue has a dispatcher thread running that pulls the message from the queue. It dispatches the message to the application for further processing.

Each dispatcher references a retransmission cache to check if the incoming request is already in service. It further performs the following actions:

  • If it’s a retry request, the dispatcher drops the incoming request.

  • If the retransmission cache reaches the threshold for outstanding requests, the incoming request is dropped.

Each dispatcher has a separate retransmission cache. This cache is also updated with the response of the request sent. It’s for the retransmission request received after the response is sent.

Configuring the Retransmission and Timeout Values

This section includes the CLI commands to configure the retransmission and timeout values for the outbound and inbound messages.

Following is the CLI configuration for the outbound messages:

config 
  instance instance-id instance_id 
    endpoint endpoint_name 
      interface interface_name 
        retransmission timeout timeout_intervalmax-retry retry_value 
        end 

NOTES:

  • instance instance-id instance_id —Specify the instance ID.

  • endpoint endpoint_name —Specify the endpoint name.

  • interface interface_name —Specify the interface name.

  • retransmission timeout timeout_interval —Configure the timeout interval value.

Following is the CLI configuration for the inbound messages:

config 
    instance instance-id 1 
    endpoint protocol 
    interface n4 
        dispatcher 
            count 5 
            outbound true 
        threshold 5000 
        end 

NOTES:

  • capacity capacity_value —Specify the queue size for each dispatcher queue. The default value is 5000.

  • count value —Specify the number of supported dispatcher queues for the interface or the endpoint.

  • expiry expiry_duration —Specify the duration for which the cache entry with response is held in the cache. The default value is 60 seconds.

  • nonresponsive nonresponsive_duration —Specify the duration for which the cache entry without response is held in the cache.

  • outbound true | false —Disable dispatcher queue support for outgoing messages. The default value is true. When set to false, the queue support is enabled for outgoing messages.

    It means by default, the queue support is enabled for the outgoing messages. Must be one of the following:

    • true —Disable dispatcher queue support for outgoing messages, set the outbound to true.

    • false —Enable dispatcher queue support for outgoing messages, set the outbound to false.

  • rate-limit rate_limit —Specify the rate limit for each queue.

  • threshold threshold —Specify the outstanding limit for non-responsive cache entries. When the threshold is reached, the incoming requests are dropped. It must be an integer. The default value is 30000 milliseconds.

Configuration Verification

Following is the sample configuration to verify the retrnasmission and timeout handling configuration for the outbound and inbound messages:

show running-config instance instance-id 1 endpoint gtp
instance instance-id 1
endpoint gtp
replicas 1
interface s5e
retransmission timeout 2 max-retry 2
sla response 7000
dispatcher
count 1
capacity 1000
outbound true
threshold 10000
expiry 40000
nonresponsive 20000
exit
vip-ip 209.165.201.25
exit
interface s11
retransmission timeout 2 max-retry 2
sla response 7000
dispatcher
count 1
capacity 1000
outbound true
threshold 10000
expiry 40000
nonresponsive 20000
exit
vip-ip 209.165.201.2
exit
exit
show running-config instance instance-id 1 endpoint pfcp
instance instance-id 1
endpoint pfcp
replicas 1
interface sxa
retransmission timeout 2 max-retry 2
dispatcher
count 1
capacity 1000
outbound true
threshold 10000
expiry 40000
nonresponsive 20000
exit
heartbeat
interval 0
retransmission-timeout 3
max-retransmissions 5
exit
retransmission timeout 5 max-retry 1
exit
interface n4
heartbeat
interval 0
retransmission-timeout 3
max-retransmissions 5
exit
exit
exit