[lkml]   [2000]   [Sep]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Bonding Driver Questions + security warning
Hello Constantine !

I also needed to be able to detect a failed link and to remove the
guilty interface from a trunk between a linux box and an Alteon A708
switch. So I've just written a little patch against 2.2.17 to implement
the BOND_RELEASE ioctl (Thomas Davis cc'd for this). I also quickly
modified Donald Becker's ifenslave to make it ifrelease (cc'd too).

By the way, I've fixed what I believe to be a very little bug in an if
statement in bonding.c.
I also noticed that no check is made about the user's rights about enslave
and release (my fault now). At this time, I could, as a user "willy", add my
eth0 to bond0 without any problem ... This seriously needs fixing IMHO, but this
may take some time.

These hacks are really too much dirty and I wouldn't like them to go into
the mainstream kernel for at least three reasons :
- code is not secure, any user can enslave/release an interface :-(
- my bond_release code IS NOT SMP SAFE so you may crash your kernel
when releasing a device if a frame is just being transmitted ;
same applies to two simultaneous releases. (to be honest, I believe
that the enslave code can lead to a missing device if two
processors add a device at the same time).

- my ifrelease program is really two ugly, so much that I prefered
to remove Donald's mail address from the command line version to
prevent him from receiving improper flames :-)

To check the link state on an MII-compliant interface, I've also modified
Donald's mii-diag prog to make it monitor the link and exec a script with
two parameters : the interface name and its state. Of course, this script
should call "ifenslave bond0 $2" when $1 is "up" and "ifrelease bond0 $2"
and "ip l set $2 down" when "$1" equals "down".

It has worked for me during a few tests with some tricks. I don't have
any more time to spend on it during the next few days, but since I
need this, I think I'll rewrite something cleaner, including a more
generic ifenslave with release capability.

For the moment, all this stuff can be found there :

Hoping this can help you in the mean time,


PS: remember, don't use this for production, or do it at your own
risks !
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 12:39    [W:0.036 / U:12.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site