All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Gleb Mazovetskiy <glex.spb@gmail.com>,
	Kuniyuki Iwashima <kuniyu@amazon.com>,
	"David S . Miller" <davem@davemloft.net>,
	Sasha Levin <sashal@kernel.org>,
	yoshfuji@linux-ipv6.org, dsahern@kernel.org, edumazet@google.com,
	kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 5.10 15/22] tcp: configurable source port perturb table size
Date: Wed, 23 Nov 2022 07:43:30 -0500	[thread overview]
Message-ID: <20221123124339.265912-15-sashal@kernel.org> (raw)
In-Reply-To: <20221123124339.265912-1-sashal@kernel.org>

From: Gleb Mazovetskiy <glex.spb@gmail.com>

[ Upstream commit aeac4ec8f46d610a10adbaeff5e2edf6a88ffc62 ]

On embedded systems with little memory and no relevant
security concerns, it is beneficial to reduce the size
of the table.

Reducing the size from 2^16 to 2^8 saves 255 KiB
of kernel RAM.

Makes the table size configurable as an expert option.

The size was previously increased from 2^8 to 2^16
in commit 4c2c8f03a5ab ("tcp: increase source port perturb table to
2^16").

Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 net/ipv4/Kconfig           | 10 ++++++++++
 net/ipv4/inet_hashtables.c | 10 +++++-----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
index 87983e70f03f..23b06063e1a5 100644
--- a/net/ipv4/Kconfig
+++ b/net/ipv4/Kconfig
@@ -403,6 +403,16 @@ config INET_IPCOMP
 
 	  If unsure, say Y.
 
+config INET_TABLE_PERTURB_ORDER
+	int "INET: Source port perturbation table size (as power of 2)" if EXPERT
+	default 16
+	help
+	  Source port perturbation table size (as power of 2) for
+	  RFC 6056 3.3.4.  Algorithm 4: Double-Hash Port Selection Algorithm.
+
+	  The default is almost always what you want.
+	  Only change this if you know what you are doing.
+
 config INET_XFRM_TUNNEL
 	tristate
 	select INET_TUNNEL
diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c
index c0de655fffd7..c68a1dae25ca 100644
--- a/net/ipv4/inet_hashtables.c
+++ b/net/ipv4/inet_hashtables.c
@@ -721,13 +721,13 @@ EXPORT_SYMBOL_GPL(inet_unhash);
  * Note that we use 32bit integers (vs RFC 'short integers')
  * because 2^16 is not a multiple of num_ephemeral and this
  * property might be used by clever attacker.
+ *
  * RFC claims using TABLE_LENGTH=10 buckets gives an improvement, though
- * attacks were since demonstrated, thus we use 65536 instead to really
- * give more isolation and privacy, at the expense of 256kB of kernel
- * memory.
+ * attacks were since demonstrated, thus we use 65536 by default instead
+ * to really give more isolation and privacy, at the expense of 256kB
+ * of kernel memory.
  */
-#define INET_TABLE_PERTURB_SHIFT 16
-#define INET_TABLE_PERTURB_SIZE (1 << INET_TABLE_PERTURB_SHIFT)
+#define INET_TABLE_PERTURB_SIZE (1 << CONFIG_INET_TABLE_PERTURB_ORDER)
 static u32 *table_perturb;
 
 int __inet_hash_connect(struct inet_timewait_death_row *death_row,
-- 
2.35.1


  parent reply	other threads:[~2022-11-23 12:53 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-23 12:43 [PATCH AUTOSEL 5.10 01/22] Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI mode Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 02/22] ASoC: Intel: bytcht_es8316: Add quirk for the Nanote UMPC-01 Sasha Levin
2022-11-23 12:43   ` Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 03/22] ASoC: Intel: soc-acpi: add ES83x6 support to IceLake Sasha Levin
2022-11-23 12:43   ` Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 04/22] ASoC: hda: intel-dsp-config: add ES83x6 quirk for IceLake Sasha Levin
2022-11-23 12:43   ` Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 05/22] serial: 8250: 8250_omap: Avoid RS485 RTS glitch on ->set_termios() Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 06/22] Input: goodix - try resetting the controller when no config is set Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 07/22] Input: soc_button_array - add use_low_level_irq module parameter Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 08/22] Input: soc_button_array - add Acer Switch V 10 to dmi_use_low_level_irq[] Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 09/22] xen-pciback: Allow setting PCI_MSIX_FLAGS_MASKALL too Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 10/22] xen/platform-pci: add missing free_irq() in error path Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 11/22] platform/x86: asus-wmi: add missing pci_dev_put() in asus_wmi_set_xusb2pr() Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 12/22] platform/x86: acer-wmi: Enable SW_TABLET_MODE on Switch V 10 (SW5-017) Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 13/22] zonefs: fix zone report size in __zonefs_io_error() Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 14/22] platform/x86: hp-wmi: Ignore Smart Experience App event Sasha Levin
2022-11-23 12:43 ` Sasha Levin [this message]
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 16/22] block: make blk_set_default_limits() private Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 17/22] dm-integrity: set dma_alignment limit in io_hints Sasha Levin
2022-11-23 12:43   ` [dm-devel] " Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 18/22] dm-log-writes: " Sasha Levin
2022-11-23 12:43   ` [dm-devel] " Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 19/22] net: usb: qmi_wwan: add Telit 0x103a composition Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 20/22] gpu: host1x: Avoid trying to use GART on Tegra20 Sasha Levin
2022-11-23 12:43   ` Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 21/22] dm integrity: flush the journal on suspend Sasha Levin
2022-11-23 12:43   ` [dm-devel] " Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 22/22] dm integrity: clear " Sasha Levin
2022-11-23 12:43   ` [dm-devel] " Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221123124339.265912-15-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=davem@davemloft.net \
    --cc=dsahern@kernel.org \
    --cc=edumazet@google.com \
    --cc=glex.spb@gmail.com \
    --cc=kuba@kernel.org \
    --cc=kuniyu@amazon.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=stable@vger.kernel.org \
    --cc=yoshfuji@linux-ipv6.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.