• David Howells's avatar
    rxrpc: Add keepalive for a call · 415f44e4
    David Howells authored
    We need to transmit a packet every so often to act as a keepalive for the
    peer (which has a timeout from the last time it received a packet) and also
    to prevent any intervening firewalls from closing the route.
    
    Do this by resetting a timer every time we transmit a packet.  If the timer
    ever expires, we transmit a PING ACK packet and thereby also elicit a PING
    RESPONSE ACK from the other side - which prevents our last-rx timeout from
    expiring.
    
    The timer is set to 1/6 of the last-rx timeout so that we can detect the
    other side going away if it misses 6 replies in a row.
    
    This is particularly necessary for servers where the processing of the
    service function may take a significant amount of time.
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    415f44e4
ar-internal.h 40.6 KB