[PATCH net-next v3 0/4] bonding: Extend arp_ip_target format to allow for a list of vlan tags.
From: David Wilder <hidden>
Date: 2025-06-14 01:49:26
Changes since V1: Changed the name of struct ip_arp_target to struct bond_arp_target. Added patch 2, 3 and 4 to the patch set. Changes since V2 Patch 1 was updated to add a flags element to struct bond_arp_target and I moved the definition from bonding.h to bond_options.h. Reduced a large stack allocation. Cleaned up declarations to use the reverse Christmas tree order. Updated iproute changes to allow for backward compatibility. See below. -- I have run into issues with the ns_ip6_target feature. I am unable to get the existing code to function with vlans. My changes have the same issue. I found that a multicast ns (with no vlan header) is not passed by the interface to the it's vlan siblings. Broadcast arps will be propagated to the sibling so no issue is seen with ipv4. I will post a RFC patch with my ns_ip6_target changes along with my test code. Let me know if you have any ideas as to the problem with the existing code. I don't want the issue with the ns_ip6_target feature to hold up the review and acceptance of the ip_arp_target changes. If the ns_ip6_target issues can be resolved they can be submitted as a separate patch set. Thank you for your time and reviews. Note: The iprout2 package will also need to be updated with the following change:
@@ -242,9 +242,14 @@ static int bond_parse_opt(struct link_util *lu, int argc, char **argv, int i; for (i = 0; target && i < BOND_MAX_ARP_TARGETS; i++) { - __u32 addr = get_addr32(target); - - addattr32(n, 1024, i, addr); + inet_prefix ipaddr; + __u32 addr; + if (get_addr_1(&ipaddr, target, AF_INET)) { + addattrstrz(n, 1024, i, target); + } else { + addr = get_addr32(target); + addattr32(n, 1024, i, addr); + } target = strtok(NULL, ","); } addattr_nest_end(n, nest);
Signed-off-by: David Wilder <redacted> David J Wilder (1): bonding: Update to the bonding documentation. David Wilder (3): bonding: Adding struct bond_arp_target bonding: Extend arp_ip_target format to allow for a list of vlan tags. bonding: Selftest for the arp_ip_target parameter. Documentation/networking/bonding.rst | 11 + drivers/net/bonding/bond_main.c | 74 ++++--- drivers/net/bonding/bond_netlink.c | 15 +- drivers/net/bonding/bond_options.c | 71 ++++--- drivers/net/bonding/bond_procfs.c | 7 +- drivers/net/bonding/bond_sysfs.c | 9 +- include/net/bond_options.h | 20 ++ include/net/bonding.h | 161 ++++++++++++++- .../selftests/drivers/net/bonding/Makefile | 3 +- .../drivers/net/bonding/bond-arp-ip-target.sh | 194 ++++++++++++++++++ 10 files changed, 484 insertions(+), 81 deletions(-) create mode 100755 tools/testing/selftests/drivers/net/bonding/bond-arp-ip-target.sh -- 2.43.5