1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* Miscellaneous bits 3 * 4 * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved. 5 * Written by David Howells (dhowells@redhat.com) 6 */ 7 8 #include <linux/kernel.h> 9 #include <net/sock.h> 10 #include <net/af_rxrpc.h> 11 #include "ar-internal.h" 12 13 /* 14 * The maximum listening backlog queue size that may be set on a socket by 15 * listen(). 16 */ 17 unsigned int rxrpc_max_backlog __read_mostly = 10; 18 19 /* 20 * How long to wait before scheduling ACK generation after seeing a 21 * packet with RXRPC_REQUEST_ACK set (in jiffies). 22 */ 23 unsigned long rxrpc_requested_ack_delay = 1; 24 25 /* 26 * How long to wait before scheduling an ACK with subtype DELAY (in jiffies). 27 * 28 * We use this when we've received new data packets. If those packets aren't 29 * all consumed within this time we will send a DELAY ACK if an ACK was not 30 * requested to let the sender know it doesn't need to resend. 31 */ 32 unsigned long rxrpc_soft_ack_delay = HZ; 33 34 /* 35 * How long to wait before scheduling an ACK with subtype IDLE (in jiffies). 36 * 37 * We use this when we've consumed some previously soft-ACK'd packets when 38 * further packets aren't immediately received to decide when to send an IDLE 39 * ACK let the other end know that it can free up its Tx buffer space. 40 */ 41 unsigned long rxrpc_idle_ack_delay = HZ / 2; 42 43 /* 44 * Receive window size in packets. This indicates the maximum number of 45 * unconsumed received packets we're willing to retain in memory. Once this 46 * limit is hit, we should generate an EXCEEDS_WINDOW ACK and discard further 47 * packets. 48 */ 49 unsigned int rxrpc_rx_window_size = RXRPC_INIT_RX_WINDOW_SIZE; 50 #if (RXRPC_RXTX_BUFF_SIZE - 1) < RXRPC_INIT_RX_WINDOW_SIZE 51 #error Need to reduce RXRPC_INIT_RX_WINDOW_SIZE 52 #endif 53 54 /* 55 * Maximum Rx MTU size. This indicates to the sender the size of jumbo packet 56 * made by gluing normal packets together that we're willing to handle. 57 */ 58 unsigned int rxrpc_rx_mtu = 5692; 59 60 /* 61 * The maximum number of fragments in a received jumbo packet that we tell the 62 * sender that we're willing to handle. 63 */ 64 unsigned int rxrpc_rx_jumbo_max = 4; 65 66 /* 67 * Time till packet resend (in milliseconds). 68 */ 69 unsigned long rxrpc_resend_timeout = 4 * HZ; 70 71 const s8 rxrpc_ack_priority[] = { 72 [0] = 0, 73 [RXRPC_ACK_DELAY] = 1, 74 [RXRPC_ACK_REQUESTED] = 2, 75 [RXRPC_ACK_IDLE] = 3, 76 [RXRPC_ACK_DUPLICATE] = 4, 77 [RXRPC_ACK_OUT_OF_SEQUENCE] = 5, 78 [RXRPC_ACK_EXCEEDS_WINDOW] = 6, 79 [RXRPC_ACK_NOSPACE] = 7, 80 [RXRPC_ACK_PING_RESPONSE] = 8, 81 }; 82