2019-05-20 20:08:01 +03:00
// SPDX-License-Identifier: GPL-2.0-or-later
2016-04-07 19:23:16 +03:00
/* Miscellaneous bits
*
* Copyright ( C ) 2016 Red Hat , Inc . All Rights Reserved .
* Written by David Howells ( dhowells @ redhat . com )
*/
# include <linux/kernel.h>
# include <net/sock.h>
# include <net/af_rxrpc.h>
# include "ar-internal.h"
2016-06-11 00:30:37 +03:00
/*
* The maximum listening backlog queue size that may be set on a socket by
* listen ( ) .
*/
unsigned int rxrpc_max_backlog __read_mostly = 10 ;
2016-04-07 19:23:16 +03:00
/*
* How long to wait before scheduling ACK generation after seeing a
2017-11-24 13:18:41 +03:00
* packet with RXRPC_REQUEST_ACK set ( in jiffies ) .
2016-04-07 19:23:16 +03:00
*/
2017-11-24 13:18:41 +03:00
unsigned long rxrpc_requested_ack_delay = 1 ;
2016-04-07 19:23:16 +03:00
/*
2017-11-24 13:18:41 +03:00
* How long to wait before scheduling an ACK with subtype DELAY ( in jiffies ) .
2016-04-07 19:23:16 +03:00
*
* We use this when we ' ve received new data packets . If those packets aren ' t
* all consumed within this time we will send a DELAY ACK if an ACK was not
* requested to let the sender know it doesn ' t need to resend .
*/
2017-11-24 13:18:41 +03:00
unsigned long rxrpc_soft_ack_delay = HZ ;
2016-04-07 19:23:16 +03:00
/*
2017-11-24 13:18:41 +03:00
* How long to wait before scheduling an ACK with subtype IDLE ( in jiffies ) .
2016-04-07 19:23:16 +03:00
*
* We use this when we ' ve consumed some previously soft - ACK ' d packets when
* further packets aren ' t immediately received to decide when to send an IDLE
* ACK let the other end know that it can free up its Tx buffer space .
*/
2017-11-24 13:18:41 +03:00
unsigned long rxrpc_idle_ack_delay = HZ / 2 ;
2016-04-07 19:23:16 +03:00
/*
* Receive window size in packets . This indicates the maximum number of
* unconsumed received packets we ' re willing to retain in memory . Once this
* limit is hit , we should generate an EXCEEDS_WINDOW ACK and discard further
* packets .
*/
2016-09-14 00:36:22 +03:00
unsigned int rxrpc_rx_window_size = RXRPC_INIT_RX_WINDOW_SIZE ;
# if (RXRPC_RXTX_BUFF_SIZE - 1) < RXRPC_INIT_RX_WINDOW_SIZE
# error Need to reduce RXRPC_INIT_RX_WINDOW_SIZE
# endif
2016-04-07 19:23:16 +03:00
/*
* Maximum Rx MTU size . This indicates to the sender the size of jumbo packet
* made by gluing normal packets together that we ' re willing to handle .
*/
unsigned int rxrpc_rx_mtu = 5692 ;
/*
* The maximum number of fragments in a received jumbo packet that we tell the
* sender that we ' re willing to handle .
*/
unsigned int rxrpc_rx_jumbo_max = 4 ;
2016-09-03 00:39:45 +03:00
/*
2016-09-22 02:29:31 +03:00
* Time till packet resend ( in milliseconds ) .
2016-09-03 00:39:45 +03:00
*/
2017-11-24 13:18:41 +03:00
unsigned long rxrpc_resend_timeout = 4 * HZ ;
2016-09-03 00:39:45 +03:00
2016-04-07 19:23:16 +03:00
const s8 rxrpc_ack_priority [ ] = {
[ 0 ] = 0 ,
[ RXRPC_ACK_DELAY ] = 1 ,
[ RXRPC_ACK_REQUESTED ] = 2 ,
[ RXRPC_ACK_IDLE ] = 3 ,
2016-09-22 02:29:31 +03:00
[ RXRPC_ACK_DUPLICATE ] = 4 ,
[ RXRPC_ACK_OUT_OF_SEQUENCE ] = 5 ,
[ RXRPC_ACK_EXCEEDS_WINDOW ] = 6 ,
[ RXRPC_ACK_NOSPACE ] = 7 ,
[ RXRPC_ACK_PING_RESPONSE ] = 8 ,
2016-04-07 19:23:16 +03:00
} ;