[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250614014900.226472-1-wilder@us.ibm.com>
Date: Fri, 13 Jun 2025 18:48:26 -0700
From: David Wilder <wilder@...ibm.com>
To: netdev@...r.kernel.org
Cc: jv@...sburgh.net, wilder@...ibm.com, pradeeps@...ux.vnet.ibm.com,
pradeep@...ibm.com, i.maximets@....org, amorenoz@...hat.com,
haliu@...hat.com
Subject: [PATCH net-next v3 0/4] bonding: Extend arp_ip_target format to allow for a list of vlan tags.
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 <wilder@...ibm.com>
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
Powered by blists - more mailing lists