|
|
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 net-next 0/5] bonding: add IPv6 NS/NA monitor support
Date:  Wed, 16 Feb 2022 16:08:33 +0800
Message-ID:  <20220216080838.158054-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>, Nikolay Aleksandrov <nikolay-AT-nvidia.com>, Jonathan Toppins <jtoppins-AT-redhat.com>, Hangbin Liu <liuhangbin-AT-gmail.com>
Archive-link:  Article

This patch is for adding IPv6 NS/NA monitor support for bonding. I
posted a RFC patch before[1]. And the iproute2 patch is here [2].
Based on Nikolay's suggestion on RFC patch, I did

1. define BOND_MAX_ND_TARGETS as BOND_MAX_ARP_TARGETS
2. adjust for reverse xmas tree ordering of local variables
3. remove bond_do_ns_validate()
4. add extra field for bond_opt_value
5. set IS_ENABLED(CONFIG_IPV6) for IPv6 codes

---

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. Both ARP monitor and NS monitor will working at the same time.

A new extra storage field is added to struct bond_opt_value for IPv6 support.

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/20220126073521.1313870-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 extra field 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      | 295 +++++++++++++++++++++++----
 drivers/net/bonding/bond_netlink.c   |  59 ++++++
 drivers/net/bonding/bond_options.c   | 140 ++++++++++++-
 drivers/net/bonding/bond_sysfs.c     |  26 +++
 include/net/bond_options.h           |  31 ++-
 include/net/bonding.h                |  26 ++-
 include/net/ndisc.h                  |   5 +
 include/uapi/linux/if_link.h         |   1 +
 net/ipv6/ndisc.c                     |  49 +++--
 tools/include/uapi/linux/if_link.h   |   1 +
 11 files changed, 573 insertions(+), 71 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