|
|
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:  [PATCHv2 net-next 0/5] bonding: add IPv6 NS/NA monitor support
Date:  Mon, 21 Feb 2022 13:54:52 +0800
Message-ID:  <20220221055458.18790-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>, Eric Dumazet <eric.dumazet-AT-gmail.com>, Hangbin Liu <liuhangbin-AT-gmail.com>
Archive-link:  Article

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.

v1 -> v2:
1. remove sysfs entry[1] and only keep netlink support.

RFC -> v1:
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

[1] https://lore.kernel.org/netdev/8863.1645071997@famine

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   |  74 ++++++-
 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 +
 10 files changed, 481 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