lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <l2nb43bf5491004231314i13503c67yeccfc54bc1cae850@mail.gmail.com>
Date:	Fri, 23 Apr 2010 22:14:55 +0200
From:	Erwan Velu <erwanaliasr1@...il.com>
To:	linux-kernel@...r.kernel.org
Cc:	jeffrey.t.kirsher@...el.com, jesse.brandeburg@...el.com,
	bruce.w.allan@...el.com, alexander.h.duyck@...el.com,
	peter.p.waskiewicz.jr@...el.com, john.ronciak@...el.com
Subject: [PATCH] e100: expose broadcast_disabled as a module option

Hi folks,

I've been facing a very noisy network where hundreds broadcast packets
were generated every second.
When this traffic can't be controlled at the source, there is a side
effect on some systems.
I was having some idle systems that will never be targeted by this
broadcast traffic that got loaded just by receiving that "flood".
I mean by loaded that this light hardware was generating 300
context/switches per second.

I was looking for many options to avoid this traffic to disturb this
hosts and I discovered that the e100 driver was featuring a
"broadcast_disabled" configure option.
I realize that this option is not controllable, so I wrote this simple
patch that expose this option as a module option.
This allow me to tell this hosts not to listen anymore this traffic.

The result is clearly good as my systems are now running at 21
context/switches while being idle.
Hope this patch isn't too bad and could help others that faces the same problem.

Patch can be downloaded here :
http://konilope.linuxeries.org/e100_broadcast_disabled.patch

Even if gmail is eating the inlined, patch, at least that make it
easier to read it for humans.
If the patch is acked, the downloaded one will be more clean ;)

This patch was generated on top of the latest 2.6 torvald's git.
Cheers,
Erwan

Signed-off-by: Erwan Velu <erwanaliasr1@...il.com>

diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index b997e57..2ba582f 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -194,12 +194,15 @@ MODULE_FIRMWARE(FIRMWARE_D102E);
 static int debug = 3;
 static int eeprom_bad_csum_allow = 0;
 static int use_io = 0;
+static int broadcast_disabled = 0;
 module_param(debug, int, 0);
 module_param(eeprom_bad_csum_allow, int, 0);
 module_param(use_io, int, 0);
+module_param(broadcast_disabled, int, 0);
 MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)");
 MODULE_PARM_DESC(eeprom_bad_csum_allow, "Allow bad eeprom checksums");
 MODULE_PARM_DESC(use_io, "Force use of i/o access mode");
+MODULE_PARM_DESC(broadcast_disabled, "Filter broadcast packets
(0=disabled (default), 1=enabled)");
 #define DPRINTK(nlevel, klevel, fmt, args...) \
 	(void)((NETIF_MSG_##nlevel & nic->msg_enable) && \
 	printk(KERN_##klevel PFX "%s: %s: " fmt, nic->netdev->name, \
@@ -1131,6 +1134,8 @@ static void e100_configure(struct nic *nic,
struct cb *cb, struct sk_buff *skb)
 		config->promiscuous_mode = 0x1;		/* 1=on, 0=off */
 	}

+	config->broadcast_disabled = broadcast_disabled; /* Broadcast filtering */
+
 	if (nic->flags & multicast_all)
 		config->multicast_all = 0x1;		/* 1=accept, 0=no */
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ