Patchwork [RFC] bonding: add better ipv6 failover support

login
register
mail settings
Submitter Simon Horman
Date Oct. 1, 2008, 5:53 a.m.
Message ID <20081001055355.GA27304@verge.net.au>
Download mbox | patch
Permalink /patch/2157/
State Superseded
Delegated to: David Miller
Headers show

Comments

Simon Horman - Oct. 1, 2008, 5:53 a.m.
On Thu, Sep 25, 2008 at 11:42:57AM -0400, Brian Haley wrote:
> Jay Vosburgh wrote:
>> Brian Haley <brian.haley@hp.com> wrote:
>>
>>> This is an RFC patch to add better IPv6 failover support for bonding
>>> devices, especially when in active-backup mode, as reported by Alex
>>> Sidorenko.
>>>
>>> What this patch does:
>>>
>>> - Creates a new Kconfig option in the IPv6 Networking section to
>>>  compile-in the support in the bonding driver.  This also forces
>>>  IPV6=y since that's required to link everything.
>>
>> 	I think it's probably better to have the IPV6 dependent bits
>> somehow depend on CONFIG_IPV6 rather than having a Kconfig entry.  I
>> doubt that many real-world users will say yes to IPv6 and bonding, but
>> no to the bonding IPv6 support.  I also suspect that the IPV6=y
>> requirement won't fly with distros.
>
> I'm sure there's a way to do this better, for example, SCTP can be built  
> as a module with IPv6 support and have IPV6=m.  I'll try to make it work  
> without the option when IPV6=y or m.

Hi,

I took a bit of a stab at this, and here is what I cam up with.

It should enable IPV6_BONDING if one of the following is true
  * EXPERIMENTAL=y && IPV6=m && BONDING=m
  * EXPERIMENTAL=y && IPV6=y && BONDING=m
  * EXPERIMENTAL=y && IPV6=y && BONDING=y
And disable IPV6_BONDING in all other cases.

Compile tested only.
Brian Haley - Oct. 1, 2008, 1:24 p.m.
Hi Simon,

Simon Horman wrote:
> I took a bit of a stab at this, and here is what I cam up with.
> 
> It should enable IPV6_BONDING if one of the following is true
>   * EXPERIMENTAL=y && IPV6=m && BONDING=m
>   * EXPERIMENTAL=y && IPV6=y && BONDING=m
>   * EXPERIMENTAL=y && IPV6=y && BONDING=y
> And disable IPV6_BONDING in all other cases.
> 
> Compile tested only.
> 
> diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
> index 69c81da..60c06f8 100644
> --- a/drivers/net/Kconfig
> +++ b/drivers/net/Kconfig
> @@ -61,6 +61,7 @@ config DUMMY
>  config BONDING
>  	tristate "Bonding driver support"
>  	depends on INET
> +	select IPV6_BONDING if (IPV6=y || IPV6=BONDING) && EXPERIMENTAL
>  	---help---
>  	  Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet
>  	  Channels together. This is called 'Etherchannel' by Cisco,
> diff --git a/net/ipv6/Kconfig b/net/ipv6/Kconfig
> index ec99215..49108be 100644
> --- a/net/ipv6/Kconfig
> +++ b/net/ipv6/Kconfig
> @@ -217,4 +217,7 @@ config IPV6_PIMSM_V2
>  	  Support for IPv6 PIM multicast routing protocol PIM-SMv2.
>  	  If unsure, say N.
>  
> +config IPV6_BONDING
> +	bool
> +
>  endif # IPV6

I actually figured out how to do this without having a new Kconfig 
option at all, and building bonding_ipv6.c without getting a linker 
error.  I'll send out an updated patch soon, just sorting out the vlan 
support right now.

Thanks,

-Brian
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller - Oct. 1, 2008, 1:36 p.m.
From: Brian Haley <brian.haley@hp.com>
Date: Wed, 01 Oct 2008 09:24:08 -0400

> I actually figured out how to do this without having a new Kconfig
> option at all, and building bonding_ipv6.c without getting a linker
> error.  I'll send out an updated patch soon, just sorting out the
> vlan support right now.
> 

Great, I'll wait for that meanwhile, thanks everyone.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 69c81da..60c06f8 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -61,6 +61,7 @@  config DUMMY
 config BONDING
 	tristate "Bonding driver support"
 	depends on INET
+	select IPV6_BONDING if (IPV6=y || IPV6=BONDING) && EXPERIMENTAL
 	---help---
 	  Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet
 	  Channels together. This is called 'Etherchannel' by Cisco,
diff --git a/net/ipv6/Kconfig b/net/ipv6/Kconfig
index ec99215..49108be 100644
--- a/net/ipv6/Kconfig
+++ b/net/ipv6/Kconfig
@@ -217,4 +217,7 @@  config IPV6_PIMSM_V2
 	  Support for IPv6 PIM multicast routing protocol PIM-SMv2.
 	  If unsure, say N.
 
+config IPV6_BONDING
+	bool
+
 endif # IPV6