All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nikolay Aleksandrov <nikolay@redhat.com>
To: Veaceslav Falico <vfalico@redhat.com>, netdev@vger.kernel.org
Cc: Jay Vosburgh <fubar@us.ibm.com>, Andy Gospodarek <andy@greyhouse.net>
Subject: Re: [PATCH v4 net-next 02/12] bonding: permit using arp_validate with non-ab modes
Date: Mon, 17 Feb 2014 16:22:21 +0100	[thread overview]
Message-ID: <5302292D.4050206@redhat.com> (raw)
In-Reply-To: <1392648088-21336-3-git-send-email-vfalico@redhat.com>

On 02/17/2014 03:41 PM, Veaceslav Falico wrote:
> Currently it's disabled because it's sometimes hard, in typical configs, to
> make it work - because of the nature how the loadbalance modes work - as
> it's hard to deliver valid arp replies to correct slaves by the switch.
> 
> However we still can use arp_validation in loadbalance with several other
> configs, per example with arp_validate == 2 for backup with one broadcast
> domain, without the switch(es) doing any balancing - this way we'd be (a
> bit more) sure that the slave is up.
> 
> So, enable it to let users decide which one works/suits them best. Also
> remove the mode limitation from BOND_OPT_ARP_VALIDATE.
> 
> CC: Jay Vosburgh <fubar@us.ibm.com>
> CC: Andy Gospodarek <andy@greyhouse.net>
> Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
> ---
>  Documentation/networking/bonding.txt | 6 +++---
>  drivers/net/bonding/bond_main.c      | 4 ----
>  drivers/net/bonding/bond_options.c   | 1 -
>  3 files changed, 3 insertions(+), 8 deletions(-)
> 
> diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt
> index 5cdb229..96b4ad8 100644
> --- a/Documentation/networking/bonding.txt
> +++ b/Documentation/networking/bonding.txt
> @@ -270,9 +270,9 @@ arp_ip_target
>  arp_validate
>  
>  	Specifies whether or not ARP probes and replies should be
> -	validated in the active-backup mode.  This causes the ARP
> -	monitor to examine the incoming ARP requests and replies, and
> -	only consider a slave to be up if it is receiving the
> +	validated in any mode that supports arp monitoring.  This causes
> +	the ARP monitor to examine the incoming ARP requests and replies,
> +	and only consider a slave to be up if it is receiving the
>  	appropriate ARP traffic.
>  
>  	Possible values are:
> diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
> index 3c50bec..91c0248 100644
> --- a/drivers/net/bonding/bond_main.c
> +++ b/drivers/net/bonding/bond_main.c
> @@ -4183,10 +4183,6 @@ static int bond_check_params(struct bond_params *params)
>  	}
>  
>  	if (arp_validate) {
> -		if (bond_mode != BOND_MODE_ACTIVEBACKUP) {
> -			pr_err("arp_validate only supported in active-backup mode\n");
> -			return -EINVAL;
> -		}
>  		if (!arp_interval) {
>  			pr_err("arp_validate requires arp_interval\n");
>  			return -EINVAL;
> diff --git a/drivers/net/bonding/bond_options.c b/drivers/net/bonding/bond_options.c
> index f3eb44d..d566cab 100644
> --- a/drivers/net/bonding/bond_options.c
> +++ b/drivers/net/bonding/bond_options.c
> @@ -151,7 +151,6 @@ static struct bond_option bond_opts[] = {
>  		.id = BOND_OPT_ARP_VALIDATE,
>  		.name = "arp_validate",
>  		.desc = "validate src/dst of ARP probes",
> -		.unsuppmodes = BOND_MODE_ALL_EX(BIT(BOND_MODE_ACTIVEBACKUP)),
>  		.values = bond_arp_validate_tbl,
>  		.set = bond_option_arp_validate_set
>  	},
> 
Sorry for not noticing before, but I just remembered the reason why all the
checks are there when changing the recv_probe, especially from the options.
The problem was that lacp mode also uses the recv_probe, so after this patch we
can overwrite the recv_probe while it's running in lacp mode, because
bond_option_arp_validate_set changes the recv_probe. We can actually only set it
to NULL because arp_interval can't be set in those modes, but still we can break
the mode and there'll be need for at least down/up cycle to fix it.
I think rlb also uses the recv_probe so this applies to it as well.

Nik

  reply	other threads:[~2014-02-17 15:26 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-17 14:41 [PATCH v4 net-next 0/12] bonding: add an option to rely on unvalidated arp packets Veaceslav Falico
2014-02-17 14:41 ` [PATCH v4 net-next 01/12] bonding: remove bond->lock from bond_arp_rcv Veaceslav Falico
2014-02-18  4:02   ` Ding Tianhong
2014-02-18  6:12     ` Veaceslav Falico
2014-02-18  7:07       ` Ding Tianhong
2014-02-18  7:10         ` Veaceslav Falico
2014-02-17 14:41 ` [PATCH v4 net-next 02/12] bonding: permit using arp_validate with non-ab modes Veaceslav Falico
2014-02-17 15:22   ` Nikolay Aleksandrov [this message]
2014-02-18  6:39     ` Veaceslav Falico
2014-02-17 14:41 ` [PATCH v4 net-next 03/12] bonding: always update last_arp_rx on packet recieve Veaceslav Falico
2014-02-17 14:41 ` [PATCH v4 net-next 04/12] bonding: always set recv_probe to bond_arp_rcv in arp monitor Veaceslav Falico
2014-02-17 14:41 ` [PATCH v4 net-next 05/12] bonding: extend arp_validate to be able to receive unvalidated arp-only traffic Veaceslav Falico
2014-02-17 14:41 ` [PATCH v4 net-next 06/12] bonding: document the new _arp options for arp_validate Veaceslav Falico
2014-02-17 14:41 ` [PATCH v4 net-next 07/12] bonding: use the new options to correctly set last_arp_rx Veaceslav Falico
2014-02-17 14:41 ` [PATCH v4 net-next 08/12] bonding: use last_arp_rx in slave_last_rx() Veaceslav Falico
2014-02-17 14:41 ` [PATCH v4 net-next 09/12] bonding: use last_arp_rx in bond_loadbalance_arp_mon() Veaceslav Falico
2014-02-17 14:41 ` [PATCH v4 net-next 10/12] bonding: remove useless updating of slave->dev->last_rx Veaceslav Falico
2014-02-17 14:41 ` [PATCH v4 net-next 11/12] bonding: trivial: rename slave->jiffies to ->last_link_up Veaceslav Falico
2014-02-17 15:02   ` David Laight
2014-02-17 15:15     ` Veaceslav Falico
2014-02-17 14:41 ` [PATCH v4 net-next 12/12] bonding: rename last_arp_rx to last_rx Veaceslav Falico

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5302292D.4050206@redhat.com \
    --to=nikolay@redhat.com \
    --cc=andy@greyhouse.net \
    --cc=fubar@us.ibm.com \
    --cc=netdev@vger.kernel.org \
    --cc=vfalico@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.