|
|
Log in / Subscribe / Register

bonding: add IPv6 NS/NA monitor support

From:  Hangbin Liu <liuhangbin-AT-gmail.com>
To:  netdev-AT-vger.kernel.org
Subject:  [PATCH RFC net-next 0/5] bonding: add IPv6 NS/NA monitor support
Date:  Wed, 26 Jan 2022 15:35:16 +0800
Message-ID:  <20220126073521.1313870-1-liuhangbin@gmail.com>
Cc:  Jay Vosburgh <j.vosburgh-AT-gmail.com>, Veaceslav Falico <vfalico-AT-gmail.com>, Andy Gospodarek <andy-AT-greyhouse.net>, "David S . Miller" <davem-AT-davemloft.net>, Jakub Kicinski <kuba-AT-kernel.org>, David Ahern <dsahern-AT-gmail.com>, Hangbin Liu <liuhangbin-AT-gmail.com>
Archive-link:  Article

This is an RFC of adding IPv6 NS/NA monitor support for bonding. I
posted a draft patch before[1]. But that patch is too big and David
Ahern suggested to split it smaller. So I split the previous patch
to 5 small ones, maybe not very good :)

The iproute2 patch is here [2].

This patch add bond IPv6 NS/NA monitor support. A new option
ns_ip6_target is added, which is similar with arp_ip_target.
The IPv6 NS/NA monitor will take effect when there is a valid IPv6
address. And ARP monitor will stop working.

A new field struct in6_addr ip6_addr is added to struct bond_opt_value
for IPv6 support. Thus __bond_opt_init() is also updated to check
string, addr first.

Function bond_handle_vlan() is split from bond_arp_send() for both
IPv4/IPv6 usage.

To alloc NS message and send out. ndisc_ns_create() and ndisc_send_skb()
are exported.

[1] https://lore.kernel.org/netdev/20211124071854.1400032-1-l...
[2] https://lore.kernel.org/netdev/20211124071854.1400032-2-l...

Hangbin Liu (5):
  ipv6: separate ndisc_ns_create() from ndisc_send_ns()
  Bonding: split bond_handle_vlan from bond_arp_send
  bonding: add ip6_addr for bond_opt_value
  bonding: add new parameter ns_targets
  bonding: add new option ns_ip6_target

 Documentation/networking/bonding.rst |  11 ++
 drivers/net/bonding/bond_main.c      | 266 ++++++++++++++++++++++++---
 drivers/net/bonding/bond_netlink.c   |  55 ++++++
 drivers/net/bonding/bond_options.c   | 142 +++++++++++++-
 drivers/net/bonding/bond_sysfs.c     |  22 +++
 include/net/bond_options.h           |  14 +-
 include/net/bonding.h                |  36 ++++
 include/net/ndisc.h                  |   5 +
 include/uapi/linux/if_link.h         |   1 +
 net/ipv6/ndisc.c                     |  45 +++--
 tools/include/uapi/linux/if_link.h   |   1 +
 11 files changed, 549 insertions(+), 49 deletions(-)

-- 
2.31.1



Copyright © 2022, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds