* [PATCH 2.6.12-rc2] aoe [2/6]: aoe-stat should work for built-in as well as module
2005-04-20 17:02 [PATCH 2.6.12-rc2] aoe [1/6]: improve allowed interfaces configuration Ed L Cashin
@ 2005-04-20 17:05 ` Ed L Cashin
2005-04-20 17:05 ` [PATCH 2.6.12-rc2] aoe [3/6]: update the documentation to mention aoetools Ed L Cashin
` (4 subsequent siblings)
5 siblings, 0 replies; 17+ messages in thread
From: Ed L Cashin @ 2005-04-20 17:05 UTC (permalink / raw)
To: linux-kernel; +Cc: ecashin, Greg K-H
aoe-stat should work for built-in as well as module
Signed-off-by: Ed L. Cashin <ecashin@coraid.com>
diff -uprN a/Documentation/aoe/status.sh b/Documentation/aoe/status.sh
--- a/Documentation/aoe/status.sh 2005-04-20 11:40:55.000000000 -0400
+++ b/Documentation/aoe/status.sh 2005-04-20 11:42:20.000000000 -0400
@@ -14,10 +14,6 @@ test ! -d "$sysd/block" && {
echo "$me Error: sysfs is not mounted" 1>&2
exit 1
}
-test -z "`lsmod | grep '^aoe'`" && {
- echo "$me Error: aoe module is not loaded" 1>&2
- exit 1
-}
for d in `ls -d $sysd/block/etherd* 2>/dev/null | grep -v p` end; do
# maybe ls comes up empty, so we use "end"
--
Ed L. Cashin <ecashin@coraid.com>
^ permalink raw reply [flat|nested] 17+ messages in thread* [PATCH 2.6.12-rc2] aoe [3/6]: update the documentation to mention aoetools
2005-04-20 17:02 [PATCH 2.6.12-rc2] aoe [1/6]: improve allowed interfaces configuration Ed L Cashin
2005-04-20 17:05 ` [PATCH 2.6.12-rc2] aoe [2/6]: aoe-stat should work for built-in as well as module Ed L Cashin
@ 2005-04-20 17:05 ` Ed L Cashin
2005-04-20 17:06 ` [PATCH 2.6.12-rc2] aoe [4/6]: allow multiple aoe devices to have the same mac Ed L Cashin
` (3 subsequent siblings)
5 siblings, 0 replies; 17+ messages in thread
From: Ed L Cashin @ 2005-04-20 17:05 UTC (permalink / raw)
To: linux-kernel; +Cc: ecashin, Greg K-H
update the documentation to mention aoetools
Signed-off-by: Ed L. Cashin <ecashin@coraid.com>
diff -uprN a/Documentation/aoe/aoe.txt b/Documentation/aoe/aoe.txt
--- a/Documentation/aoe/aoe.txt 2005-04-20 11:42:20.000000000 -0400
+++ b/Documentation/aoe/aoe.txt 2005-04-20 11:42:21.000000000 -0400
@@ -4,6 +4,16 @@ The EtherDrive (R) HOWTO for users of 2.
It has many tips and hints!
+The aoetools are userland programs that are designed to work with this
+driver. The aoetools are on sourceforge.
+
+ http://aoetools.sourceforge.net/
+
+The scripts in this Documentation/aoe directory are intended to
+document the use of the driver and are not necessary if you install
+the aoetools.
+
+
CREATING DEVICE NODES
Users of udev should find the block device nodes created
@@ -33,19 +43,17 @@ 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.
+ untrusted networks should be ignored as a matter of security. See
+ also the aoe_iflist driver option described below.
"echo > /dev/etherd/discover" tells the driver to find out what AoE
devices are available.
These character devices may disappear and be replaced by sysfs
- counterparts, so distribution maintainers are encouraged to create
- scripts that use these devices.
+ counterparts. Using the commands in aoetools insulates users from
+ these implementation details.
The block devices are named like this:
@@ -69,7 +77,8 @@ USING SYSFS
through which we are communicating with the remote AoE device.
There is a script in this directory that formats this information
- in a convenient way.
+ in a convenient way. Users with aoetools can use the aoe-stat
+ command.
root@makki root# sh Documentation/aoe/status.sh
e10.0 eth3 up
@@ -101,9 +110,9 @@ USING SYSFS
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.
+ interfaces. The aoetools package provides an aoe-discover script
+ for this purpose. You can also directly use the
+ /dev/etherd/discover special file described above.
DRIVER OPTIONS
--
Ed L. Cashin <ecashin@coraid.com>
^ permalink raw reply [flat|nested] 17+ messages in thread* [PATCH 2.6.12-rc2] aoe [4/6]: allow multiple aoe devices to have the same mac
2005-04-20 17:02 [PATCH 2.6.12-rc2] aoe [1/6]: improve allowed interfaces configuration Ed L Cashin
2005-04-20 17:05 ` [PATCH 2.6.12-rc2] aoe [2/6]: aoe-stat should work for built-in as well as module Ed L Cashin
2005-04-20 17:05 ` [PATCH 2.6.12-rc2] aoe [3/6]: update the documentation to mention aoetools Ed L Cashin
@ 2005-04-20 17:06 ` Ed L Cashin
2005-04-20 17:06 ` [PATCH 2.6.12-rc2] aoe [5/6]: add firmware version to info in sysfs Ed L Cashin
` (2 subsequent siblings)
5 siblings, 0 replies; 17+ messages in thread
From: Ed L Cashin @ 2005-04-20 17:06 UTC (permalink / raw)
To: linux-kernel; +Cc: ecashin, Greg K-H
allow multiple aoe devices to have the same mac
Signed-off-by: Ed L. Cashin <ecashin@coraid.com>
diff -u b/drivers/block/aoe/aoedev.c b/drivers/block/aoe/aoedev.c
--- b/drivers/block/aoe/aoedev.c 2005-04-20 11:42:18.000000000 -0400
+++ b/drivers/block/aoe/aoedev.c 2005-04-20 11:42:22.000000000 -0400
@@ -109,25 +109,22 @@
spin_lock_irqsave(&devlist_lock, flags);
for (d=devlist; d; d=d->next)
- if (d->sysminor == sysminor
- || memcmp(d->addr, addr, sizeof d->addr) == 0)
+ if (d->sysminor == sysminor)
break;
if (d == NULL && (d = aoedev_newdev(bufcnt)) == NULL) {
spin_unlock_irqrestore(&devlist_lock, flags);
printk(KERN_INFO "aoe: aoedev_set: aoedev_newdev failure.\n");
return NULL;
- }
+ } /* if newdev, (d->flags & DEVFL_UP) == 0 for below */
spin_unlock_irqrestore(&devlist_lock, flags);
spin_lock_irqsave(&d->lock, flags);
d->ifp = ifp;
-
- if (d->sysminor != sysminor
- || (d->flags & DEVFL_UP) == 0) {
+ memcpy(d->addr, addr, sizeof d->addr);
+ if ((d->flags & DEVFL_UP) == 0) {
aoedev_downdev(d); /* flushes outstanding frames */
- memcpy(d->addr, addr, sizeof d->addr);
d->sysminor = sysminor;
d->aoemajor = AOEMAJOR(sysminor);
d->aoeminor = AOEMINOR(sysminor);
--
Ed L. Cashin <ecashin@coraid.com>
^ permalink raw reply [flat|nested] 17+ messages in thread* [PATCH 2.6.12-rc2] aoe [5/6]: add firmware version to info in sysfs
2005-04-20 17:02 [PATCH 2.6.12-rc2] aoe [1/6]: improve allowed interfaces configuration Ed L Cashin
` (2 preceding siblings ...)
2005-04-20 17:06 ` [PATCH 2.6.12-rc2] aoe [4/6]: allow multiple aoe devices to have the same mac Ed L Cashin
@ 2005-04-20 17:06 ` Ed L Cashin
2005-04-20 17:37 ` Randy.Dunlap
2005-04-20 17:06 ` [PATCH 2.6.12-rc2] aoe [6/6]: update version number to 10 Ed L Cashin
2005-04-20 17:16 ` [PATCH 2.6.12-rc2] aoe [1/6]: improve allowed interfaces configuration Randy.Dunlap
5 siblings, 1 reply; 17+ messages in thread
From: Ed L Cashin @ 2005-04-20 17:06 UTC (permalink / raw)
To: linux-kernel; +Cc: ecashin, Greg K-H
add firmware version to info in sysfs
Signed-off-by: Ed L. Cashin <ecashin@coraid.com>
diff -uprN a/drivers/block/aoe/aoeblk.c b/drivers/block/aoe/aoeblk.c
--- a/drivers/block/aoe/aoeblk.c 2005-04-20 11:41:18.000000000 -0400
+++ b/drivers/block/aoe/aoeblk.c 2005-04-20 11:42:23.000000000 -0400
@@ -37,6 +37,13 @@ static ssize_t aoedisk_show_netif(struct
return snprintf(page, PAGE_SIZE, "%s\n", d->ifp->name);
}
+/* firmware version */
+static ssize_t aoedisk_show_fwver(struct gendisk * disk, char *page)
+{
+ struct aoedev *d = disk->private_data;
+
+ return snprintf(page, PAGE_SIZE, "0x%04x\n", (unsigned int) d->fw_ver);
+}
static struct disk_attribute disk_attr_state = {
.attr = {.name = "state", .mode = S_IRUGO },
@@ -50,6 +57,10 @@ static struct disk_attribute disk_attr_n
.attr = {.name = "netif", .mode = S_IRUGO },
.show = aoedisk_show_netif
};
+static struct disk_attribute disk_attr_fwver = {
+ .attr = {.name = "fwver", .mode = S_IRUGO },
+ .show = aoedisk_show_fwver
+};
static void
aoedisk_add_sysfs(struct aoedev *d)
@@ -57,6 +68,7 @@ aoedisk_add_sysfs(struct aoedev *d)
sysfs_create_file(&d->gd->kobj, &disk_attr_state.attr);
sysfs_create_file(&d->gd->kobj, &disk_attr_mac.attr);
sysfs_create_file(&d->gd->kobj, &disk_attr_netif.attr);
+ sysfs_create_file(&d->gd->kobj, &disk_attr_fwver.attr);
}
void
aoedisk_rm_sysfs(struct aoedev *d)
@@ -64,6 +76,7 @@ aoedisk_rm_sysfs(struct aoedev *d)
sysfs_remove_link(&d->gd->kobj, "state");
sysfs_remove_link(&d->gd->kobj, "mac");
sysfs_remove_link(&d->gd->kobj, "netif");
+ sysfs_remove_link(&d->gd->kobj, "fwver");
}
static int
--
Ed L. Cashin <ecashin@coraid.com>
^ permalink raw reply [flat|nested] 17+ messages in thread* Re: [PATCH 2.6.12-rc2] aoe [5/6]: add firmware version to info in sysfs
2005-04-20 17:06 ` [PATCH 2.6.12-rc2] aoe [5/6]: add firmware version to info in sysfs Ed L Cashin
@ 2005-04-20 17:37 ` Randy.Dunlap
2005-04-20 19:13 ` Ed L Cashin
0 siblings, 1 reply; 17+ messages in thread
From: Randy.Dunlap @ 2005-04-20 17:37 UTC (permalink / raw)
To: Ed L Cashin; +Cc: linux-kernel, ecashin, greg
| add firmware version to info in sysfs
|
| +static struct disk_attribute disk_attr_fwver = {
| + .attr = {.name = "fwver", .mode = S_IRUGO },
| + .show = aoedisk_show_fwver
| +};
| @@ -64,6 +76,7 @@ aoedisk_rm_sysfs(struct aoedev *d)
| sysfs_remove_link(&d->gd->kobj, "state");
| sysfs_remove_link(&d->gd->kobj, "mac");
| sysfs_remove_link(&d->gd->kobj, "netif");
| + sysfs_remove_link(&d->gd->kobj, "fwver");
It's a good thing that you spelled out "firmware version"
for me.
Just seeing 'fwver' provided these comments from others:
n vwls s bd (well, it does have 'e'; maybe it shouldn't :)
friends fwver
fw is firewire
so something like 'firmware-version' would be appreciated
(for the sysfs filename).
Thanks,
---
~Randy
^ permalink raw reply [flat|nested] 17+ messages in thread* Re: [PATCH 2.6.12-rc2] aoe [5/6]: add firmware version to info in sysfs
2005-04-20 17:37 ` Randy.Dunlap
@ 2005-04-20 19:13 ` Ed L Cashin
0 siblings, 0 replies; 17+ messages in thread
From: Ed L Cashin @ 2005-04-20 19:13 UTC (permalink / raw)
To: Randy.Dunlap; +Cc: linux-kernel, greg
[-- Attachment #1: Type: text/plain, Size: 327 bytes --]
"Randy.Dunlap" <rddunlap@osdl.org> writes:
...
> so something like 'firmware-version' would be appreciated
> (for the sysfs filename).
Fair enough. This patch follows and depends on the fifth patch of the
six.
use a more explicit filename for sysfs firmware version info
Signed-off-by: Ed L. Cashin <ecashin@coraid.com>
[-- Attachment #2: patch-135 --]
[-- Type: text/plain, Size: 828 bytes --]
diff -urNp a-exp/linux/drivers/block/aoe/aoeblk.c b-exp/linux/drivers/block/aoe/aoeblk.c
--- a-exp/linux/drivers/block/aoe/aoeblk.c 2005-04-20 15:09:13.000000000 -0400
+++ b-exp/linux/drivers/block/aoe/aoeblk.c 2005-04-20 15:09:13.000000000 -0400
@@ -58,7 +58,7 @@ static struct disk_attribute disk_attr_n
.show = aoedisk_show_netif
};
static struct disk_attribute disk_attr_fwver = {
- .attr = {.name = "fwver", .mode = S_IRUGO },
+ .attr = {.name = "firmware-version", .mode = S_IRUGO },
.show = aoedisk_show_fwver
};
@@ -76,7 +76,7 @@ aoedisk_rm_sysfs(struct aoedev *d)
sysfs_remove_link(&d->gd->kobj, "state");
sysfs_remove_link(&d->gd->kobj, "mac");
sysfs_remove_link(&d->gd->kobj, "netif");
- sysfs_remove_link(&d->gd->kobj, "fwver");
+ sysfs_remove_link(&d->gd->kobj, "firmware-version");
}
static int
[-- Attachment #3: Type: text/plain, Size: 42 bytes --]
--
Ed L Cashin <ecashin@coraid.com>
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 2.6.12-rc2] aoe [6/6]: update version number to 10
2005-04-20 17:02 [PATCH 2.6.12-rc2] aoe [1/6]: improve allowed interfaces configuration Ed L Cashin
` (3 preceding siblings ...)
2005-04-20 17:06 ` [PATCH 2.6.12-rc2] aoe [5/6]: add firmware version to info in sysfs Ed L Cashin
@ 2005-04-20 17:06 ` Ed L Cashin
2005-04-20 17:16 ` [PATCH 2.6.12-rc2] aoe [1/6]: improve allowed interfaces configuration Randy.Dunlap
5 siblings, 0 replies; 17+ messages in thread
From: Ed L Cashin @ 2005-04-20 17:06 UTC (permalink / raw)
To: linux-kernel; +Cc: ecashin, Greg K-H
update version number to 10
Signed-off-by: Ed L. Cashin <ecashin@coraid.com>
--- b/drivers/block/aoe/aoe.h 2005-04-20 11:42:19.000000000 -0400
+++ b/drivers/block/aoe/aoe.h 2005-04-20 11:42:22.000000000 -0400
@@ -1,5 +1,5 @@
/* Copyright (c) 2004 Coraid, Inc. See COPYING for GPL terms. */
-#define VERSION "6"
+#define VERSION "10"
#define AOE_MAJOR 152
#define DEVICE_NAME "aoe"
--
Ed L. Cashin <ecashin@coraid.com>
^ permalink raw reply [flat|nested] 17+ messages in thread* Re: [PATCH 2.6.12-rc2] aoe [1/6]: improve allowed interfaces configuration
2005-04-20 17:02 [PATCH 2.6.12-rc2] aoe [1/6]: improve allowed interfaces configuration Ed L Cashin
` (4 preceding siblings ...)
2005-04-20 17:06 ` [PATCH 2.6.12-rc2] aoe [6/6]: update version number to 10 Ed L Cashin
@ 2005-04-20 17:16 ` Randy.Dunlap
2005-04-20 17:27 ` Ed L Cashin
5 siblings, 1 reply; 17+ messages in thread
From: Randy.Dunlap @ 2005-04-20 17:16 UTC (permalink / raw)
To: Ed L Cashin; +Cc: linux-kernel, ecashin, greg
On Wed, 20 Apr 2005 13:02:12 -0400 Ed L Cashin wrote:
Just a nit/typo:
| + modprobe aoe_iflist="eth1 eth3"
| static char aoe_iflist[IFLISTSZ];
| +module_param_string(aoe_iflist, aoe_iflist, IFLISTSZ, 0600);
| +MODULE_PARM_DESC(aoe_iflist, " aoe_iflist=\"dev1 [dev2 ...]\n");
No leading space (" aoe_iflist=") and put a trailing \" in it:
+MODULE_PARM_DESC(aoe_iflist, "aoe_iflist=\"dev1 [dev2 ...]\"\n");
---
~Randy
^ permalink raw reply [flat|nested] 17+ messages in thread* Re: [PATCH 2.6.12-rc2] aoe [1/6]: improve allowed interfaces configuration
2005-04-20 17:16 ` [PATCH 2.6.12-rc2] aoe [1/6]: improve allowed interfaces configuration Randy.Dunlap
@ 2005-04-20 17:27 ` Ed L Cashin
0 siblings, 0 replies; 17+ messages in thread
From: Ed L Cashin @ 2005-04-20 17:27 UTC (permalink / raw)
To: Randy.Dunlap; +Cc: linux-kernel, greg
[-- Attachment #1: Type: text/plain, Size: 602 bytes --]
"Randy.Dunlap" <rddunlap@osdl.org> writes:
> On Wed, 20 Apr 2005 13:02:12 -0400 Ed L Cashin wrote:
>
> Just a nit/typo:
>
> | + modprobe aoe_iflist="eth1 eth3"
>
> | static char aoe_iflist[IFLISTSZ];
> | +module_param_string(aoe_iflist, aoe_iflist, IFLISTSZ, 0600);
> | +MODULE_PARM_DESC(aoe_iflist, " aoe_iflist=\"dev1 [dev2 ...]\n");
>
> No leading space (" aoe_iflist=") and put a trailing \" in it:
>
> +MODULE_PARM_DESC(aoe_iflist, "aoe_iflist=\"dev1 [dev2 ...]\"\n");
Thanks for catching that.
improve allowed interfaces configuration
Signed-off-by: Ed L. Cashin <ecashin@coraid.com>
[-- Attachment #2: patch-124.rediff --]
[-- Type: text/plain, Size: 2878 bytes --]
diff -uprN a/Documentation/aoe/aoe.txt b/Documentation/aoe/aoe.txt
--- a/Documentation/aoe/aoe.txt 2005-04-20 11:40:55.000000000 -0400
+++ b/Documentation/aoe/aoe.txt 2005-04-20 11:42:20.000000000 -0400
@@ -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,24 @@ USING SYSFS
e4.7 eth1 up
e4.8 eth1 up
e4.9 eth1 up
+
+ When the aoe driver is a module, use
+ /sys/module/aoe/parameters/aoe_iflist 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"
diff -uprN a/drivers/block/aoe/aoenet.c b/drivers/block/aoe/aoenet.c
--- a/drivers/block/aoe/aoenet.c 2005-04-20 11:41:18.000000000 -0400
+++ b/drivers/block/aoe/aoenet.c 2005-04-20 11:42:20.000000000 -0400
@@ -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;
[-- Attachment #3: Type: text/plain, Size: 41 bytes --]
--
Ed L Cashin <ecashin@coraid.com>
^ permalink raw reply [flat|nested] 17+ messages in thread