From: Veaceslav Falico <vfalico@redhat.com>
To: netdev@vger.kernel.org
Cc: Rob Landley <rob@landley.net>, Jay Vosburgh <fubar@us.ibm.com>,
Andy Gospodarek <andy@greyhouse.net>,
"David S. Miller" <davem@davemloft.net>,
dingtianhong <dingtianhong@huawei.com>,
Nikolay Aleksandrov <nikolay@redhat.com>,
Neil Horman <nhorman@tuxdriver.com>,
Cong Wang <amwang@redhat.com>
Subject: [PATCH v5 net-next 0/12] bonding: add an option to rely on unvalidated arp packets
Date: Tue, 18 Feb 2014 07:58:39 +0100 [thread overview]
Message-ID: <20140218065839.GA14534@redhat.com> (raw)
In-Reply-To: <1392706127-28390-1-git-send-email-vfalico@redhat.com>
On Tue, Feb 18, 2014 at 07:48:35AM +0100, Veaceslav Falico wrote:
>From Veaceslav Falico <vfalico@redhat.com> # This line is ignored.
>From: Veaceslav Falico <vfalico@redhat.com>
>Subject: [PATCH v5 net-next 0/12] bonding: add an option to rely on unvalidated arp packets
>In-Reply-To:
Nice, cover letter got fucked up, sorry for that. Patches are ok though.
>
>Hi,
>
>v4 -> v5:
>Again per Nik's advise correct the bond_opts restrictions for arp_validate
>- set it the same as arp_interval.
>
>v3 -> v4:
>Per Nikolay's advise, remove the new bond_opts restriction on modes setting
>for arp_validate.
>
>v2 -> v3:
>Per Jay's advise, use the 'filter' keyword instead of 'arp' one, and use
>his text for documentation. Also, rebase on the latest net-next. Sorry for
>the delay, didn't manage to send it before net-next was closed.
>
>v1 -> v2:
>Don't remove the 'all traffic' functionality - rather, add new arp_validate
>options to specify that we want *only* unvalidated arps.
>
>Currently, if arp_validate is off (0), slave_last_rx() returns the
>slave->dev->last_rx, which is always updated on *any* packet received by
>slave, and not only arps. This means that, if the validation of arps is
>off, we're treating *any* incoming packet as a proof of slave being up, and
>not only arps.
>
>This might seem logical at the first glance, however it can cause a lot of
>troubles and false-positives, one example would be:
>
>The arp_ip_target is NOT accessible, however someone in the broadcast domain
>spams with any broadcast traffic. This way bonding will be tricked that the
>slave is still up (as in - can access arp_ip_target), while it's not.
>
>The net_device->last_rx is already used in a lot of drivers (even though the
>comment states to NOT do it :)), and it's also ugly to modify it from bonding.
>
>However, some loadbalance setups might rely on the fact that even non-arp
>traffic is a sign of slave being up - and we definitely can't break anyones
>config - so an extension to arp_validate is needed.
>
>So, to fix this, add an option for the user to specify if he wants to
>filter out non-arp traffic on unvalidated slaves, remove the last_rx from
>bonding, *always* call bond_arp_rcv() in slave's rx_handler (which is
>bond_handle_frame), and if we spot an arp there with this option on - update
>the slave->last_arp_rx - and use it instead of net_device->last_rx. Finally,
>rename last_arp_rx to last_rx to reflect the changes.
>
>Also rename slave->jiffies to ->last_link_up, to reflect better its
>meaning, add the new option's documentation and update the arp_validate one
>to be a bit more descriptive.
>
>CC: Rob Landley <rob@landley.net>
>CC: Jay Vosburgh <fubar@us.ibm.com>
>CC: Andy Gospodarek <andy@greyhouse.net>
>CC: "David S. Miller" <davem@davemloft.net>
>CC: dingtianhong <dingtianhong@huawei.com>
>CC: Nikolay Aleksandrov <nikolay@redhat.com>
>CC: Neil Horman <nhorman@tuxdriver.com>
>CC: Cong Wang <amwang@redhat.com>
>CC: netdev@vger.kernel.org
>Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
>
>---
> Documentation/networking/bonding.txt | 96 +++++++++++++++++++++++++-----------
> drivers/net/bonding/bond_main.c | 56 +++++++++------------
> drivers/net/bonding/bond_options.c | 19 ++++---
> drivers/net/bonding/bonding.h | 26 ++++++----
> include/linux/netdevice.h | 8 +--
> 5 files changed, 119 insertions(+), 86 deletions(-)
next prev parent reply other threads:[~2014-02-18 6:59 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-18 6:48 (unknown), Veaceslav Falico
2014-02-18 6:48 ` [PATCH v5 net-next 01/12] bonding: remove bond->lock from bond_arp_rcv Veaceslav Falico
2014-02-18 11:54 ` Ding Tianhong
2014-02-18 6:48 ` [PATCH v5 net-next 02/12] bonding: permit using arp_validate with non-ab modes Veaceslav Falico
2014-02-18 11:21 ` Nikolay Aleksandrov
2014-02-18 6:48 ` [PATCH v5 net-next 03/12] bonding: always update last_arp_rx on packet recieve Veaceslav Falico
2014-02-18 6:48 ` [PATCH v5 net-next 04/12] bonding: always set recv_probe to bond_arp_rcv in arp monitor Veaceslav Falico
2014-02-18 6:48 ` [PATCH v5 net-next 05/12] bonding: extend arp_validate to be able to receive unvalidated arp-only traffic Veaceslav Falico
2014-02-18 6:48 ` [PATCH v5 net-next 06/12] bonding: document the new _arp options for arp_validate Veaceslav Falico
2014-02-18 6:48 ` [PATCH v5 net-next 07/12] bonding: use the new options to correctly set last_arp_rx Veaceslav Falico
2014-02-18 6:48 ` [PATCH v5 net-next 08/12] bonding: use last_arp_rx in slave_last_rx() Veaceslav Falico
2014-02-18 6:48 ` [PATCH v5 net-next 09/12] bonding: use last_arp_rx in bond_loadbalance_arp_mon() Veaceslav Falico
2014-02-18 6:48 ` [PATCH v5 net-next 10/12] bonding: remove useless updating of slave->dev->last_rx Veaceslav Falico
2014-02-18 6:48 ` [PATCH v5 net-next 11/12] bonding: trivial: rename slave->jiffies to ->last_link_up Veaceslav Falico
2014-02-18 6:48 ` [PATCH v5 net-next 12/12] bonding: rename last_arp_rx to last_rx Veaceslav Falico
2014-02-18 6:58 ` Veaceslav Falico [this message]
2014-02-18 21:49 ` [PATCH v5 net-next 0/12] bonding: add an option to rely on unvalidated arp packets David Miller
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=20140218065839.GA14534@redhat.com \
--to=vfalico@redhat.com \
--cc=amwang@redhat.com \
--cc=andy@greyhouse.net \
--cc=davem@davemloft.net \
--cc=dingtianhong@huawei.com \
--cc=fubar@us.ibm.com \
--cc=netdev@vger.kernel.org \
--cc=nhorman@tuxdriver.com \
--cc=nikolay@redhat.com \
--cc=rob@landley.net \
/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.