[PATCH] aoe: improve allowed interfaces configuration
improve allowed interfaces configuration Signed-off-by: Ed L. Cashin <ecashin@coraid.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> diff -uprN a/Documentation/aoe/aoe.txt b/Documentation/aoe/aoe.txt
This commit is contained in:
Родитель
8800cea620
Коммит
03c41c4347
|
@ -33,6 +33,9 @@ USING DEVICE NODES
|
|||
"cat /dev/etherd/err" blocks, waiting for error diagnostic output,
|
||||
like any retransmitted packets.
|
||||
|
||||
The /dev/etherd/interfaces special file is obsoleted by the
|
||||
aoe_iflist boot option and module option (and its sysfs entry
|
||||
described in the next section).
|
||||
"echo eth2 eth4 > /dev/etherd/interfaces" tells the aoe driver to
|
||||
limit ATA over Ethernet traffic to eth2 and eth4. AoE traffic from
|
||||
untrusted networks should be ignored as a matter of security.
|
||||
|
@ -89,3 +92,23 @@ USING SYSFS
|
|||
e4.7 eth1 up
|
||||
e4.8 eth1 up
|
||||
e4.9 eth1 up
|
||||
|
||||
Use /sys/module/aoe/parameters/aoe_iflist (or better, the driver
|
||||
option discussed below) instead of /dev/etherd/interfaces to limit
|
||||
AoE traffic to the network interfaces in the given
|
||||
whitespace-separated list. Unlike the old character device, the
|
||||
sysfs entry can be read from as well as written to.
|
||||
|
||||
It's helpful to trigger discovery after setting the list of allowed
|
||||
interfaces. If your distro provides an aoe-discover script, you can
|
||||
use that. Otherwise, you can directly use the /dev/etherd/discover
|
||||
file described above.
|
||||
|
||||
DRIVER OPTIONS
|
||||
|
||||
There is a boot option for the built-in aoe driver and a
|
||||
corresponding module parameter, aoe_iflist. Without this option,
|
||||
all network interfaces may be used for ATA over Ethernet. Here is a
|
||||
usage example for the module parameter.
|
||||
|
||||
modprobe aoe_iflist="eth1 eth3"
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include <linux/hdreg.h>
|
||||
#include <linux/blkdev.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/moduleparam.h>
|
||||
#include "aoe.h"
|
||||
|
||||
#define NECODES 5
|
||||
|
@ -26,6 +27,19 @@ enum {
|
|||
};
|
||||
|
||||
static char aoe_iflist[IFLISTSZ];
|
||||
module_param_string(aoe_iflist, aoe_iflist, IFLISTSZ, 0600);
|
||||
MODULE_PARM_DESC(aoe_iflist, "aoe_iflist=\"dev1 [dev2 ...]\"\n");
|
||||
|
||||
#ifndef MODULE
|
||||
static int __init aoe_iflist_setup(char *str)
|
||||
{
|
||||
strncpy(aoe_iflist, str, IFLISTSZ);
|
||||
aoe_iflist[IFLISTSZ - 1] = '\0';
|
||||
return 1;
|
||||
}
|
||||
|
||||
__setup("aoe_iflist=", aoe_iflist_setup);
|
||||
#endif
|
||||
|
||||
int
|
||||
is_aoe_netif(struct net_device *ifp)
|
||||
|
@ -36,7 +50,8 @@ is_aoe_netif(struct net_device *ifp)
|
|||
if (aoe_iflist[0] == '\0')
|
||||
return 1;
|
||||
|
||||
for (p = aoe_iflist; *p; p = q + strspn(q, WHITESPACE)) {
|
||||
p = aoe_iflist + strspn(aoe_iflist, WHITESPACE);
|
||||
for (; *p; p = q + strspn(q, WHITESPACE)) {
|
||||
q = p + strcspn(p, WHITESPACE);
|
||||
if (q != p)
|
||||
len = q - p;
|
||||
|
|
Загрузка…
Ссылка в новой задаче