[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,
|
"cat /dev/etherd/err" blocks, waiting for error diagnostic output,
|
||||||
like any retransmitted packets.
|
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
|
"echo eth2 eth4 > /dev/etherd/interfaces" tells the aoe driver to
|
||||||
limit ATA over Ethernet traffic to eth2 and eth4. AoE traffic from
|
limit ATA over Ethernet traffic to eth2 and eth4. AoE traffic from
|
||||||
untrusted networks should be ignored as a matter of security.
|
untrusted networks should be ignored as a matter of security.
|
||||||
|
@ -89,3 +92,23 @@ USING SYSFS
|
||||||
e4.7 eth1 up
|
e4.7 eth1 up
|
||||||
e4.8 eth1 up
|
e4.8 eth1 up
|
||||||
e4.9 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/hdreg.h>
|
||||||
#include <linux/blkdev.h>
|
#include <linux/blkdev.h>
|
||||||
#include <linux/netdevice.h>
|
#include <linux/netdevice.h>
|
||||||
|
#include <linux/moduleparam.h>
|
||||||
#include "aoe.h"
|
#include "aoe.h"
|
||||||
|
|
||||||
#define NECODES 5
|
#define NECODES 5
|
||||||
|
@ -26,6 +27,19 @@ enum {
|
||||||
};
|
};
|
||||||
|
|
||||||
static char aoe_iflist[IFLISTSZ];
|
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
|
int
|
||||||
is_aoe_netif(struct net_device *ifp)
|
is_aoe_netif(struct net_device *ifp)
|
||||||
|
@ -36,7 +50,8 @@ is_aoe_netif(struct net_device *ifp)
|
||||||
if (aoe_iflist[0] == '\0')
|
if (aoe_iflist[0] == '\0')
|
||||||
return 1;
|
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);
|
q = p + strcspn(p, WHITESPACE);
|
||||||
if (q != p)
|
if (q != p)
|
||||||
len = q - p;
|
len = q - p;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче