public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Hangbin Liu <liuhangbin@gmail.com>
To: David Wilder <wilder@us.ibm.com>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"jv@jvosburgh.net" <jv@jvosburgh.net>,
	"pradeeps@linux.vnet.ibm.com" <pradeeps@linux.vnet.ibm.com>,
	Pradeep Satyanarayana <pradeep@us.ibm.com>,
	"i.maximets@ovn.org" <i.maximets@ovn.org>,
	Adrian Moreno Zapata <amorenoz@redhat.com>
Subject: Re: [PATCH net-next v4 0/7] bonding: Extend arp_ip_target format to allow for a list of vlan tags.
Date: Thu, 7 Aug 2025 04:38:37 +0000	[thread overview]
Message-ID: <aJQtzYe0XyFAEKFz@fedora> (raw)
In-Reply-To: <aGOKggdfjv0cApTO@fedora>

Hi David,
On Tue, Jul 01, 2025 at 07:13:06AM +0000, Hangbin Liu wrote:
> > From: Hangbin Liu <liuhangbin@gmail.com>
> > Sent: Monday, June 30, 2025 3:18 AM
> > To: David Wilder
> > Cc: netdev@vger.kernel.org; jv@jvosburgh.net; pradeeps@linux.vnet.ibm.com; Pradeep Satyanarayana; i.maximets@ovn.org; Adrian Moreno Zapata; Hangbin Liu
> > Subject: [EXTERNAL] Re: [PATCH net-next v4 0/7] bonding: Extend arp_ip_target format to allow for a list of vlan tags.
> > 
> > > On Fri, Jun 27, 2025 at 01:17:13PM -0700, David Wilder wrote:
> > > I have run into issues with the ns_ip6_target feature.  I am unable to get
> > > the existing code to function with vlans. Therefor I am unable to support
> > > A this change for ns_ip6_target.
> > 
> > > Any reason why this is incompatible with ns_ip6_target?
> > 
> > Hi Hangbin
> > 
> > I am unable to get the existing ns_ip6_target code to function when the target
> > is in a vlan. If the existing code is not working with vlans it makes no
> > sense to specify the vlan tags.
> > 
> > This is what I think is happening:
> > 
> > In ns_send_all() we have this bit of code:
> > 
> > dst = ip6_route_output(dev_net(bond->dev), NULL, &fl6);
> > if (dst->error) {
> >         dst_release(dst);
> >         /* there's no route to target - try to send arp
> >          * probe to generate any traffic (arp_validate=0)
> >          */
> >         if (bond->params.arp_validate)
> >                bond_ns_send(slave, &targets[i], &in6addr_any, tags);
> >                <.......>
> >                continue;
> > }
> > 
> > ip6_route_output() is returning an error as there is no neighbor entry for
> > the target. A ns is then sent with no vlan header. I found that the
> > multicast ns (with no vlan header) is not passed to the vlan siblings
> > with the target address so no reply is sent.
> > 
> > The ipv4 code is simmiler but the arp is sent as a brodcast. The broadcast arp
> > will be propagated to the vlan sibling (in the linux vlan code).
> > 
> > This could be a testing issue,  I am unsure.  Can you help with
> > a test case with the target in a vlan?

I looked into this recently, and you are right — ip6_route_output() returns
an error dst. The root cause is that we cannot get the destination IPv6
address through the bond interface, because the source IPv6 address is
configured on other interfaces, the VLAN sub-interface.

This is a key difference between IPv6 and IPv4:
In IPv4, it's possible to get a destination route via the bond even when the
source IP is configured on a different interface. But in IPv6, the routing
mechanism is stricter in requiring the source address to be valid on the
outgoing interface.

I'm not sure how to fix this yet, as it's fundamentally tied to how IPv6
routing behaves.

Thanks
Hangbin
> 
> I can reproduce this issue. I guess it's because the IPv6 route code is
> different with IPv4. I will check this issue.
> 
> Thanks
> Hangbin
> 

  reply	other threads:[~2025-08-07  4:38 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-27 20:17 [PATCH net-next v4 0/7] bonding: Extend arp_ip_target format to allow for a list of vlan tags David Wilder
2025-06-27 20:17 ` [PATCH net-next v4 1/7] bonding: Adding struct bond_arp_target David Wilder
2025-06-27 20:17 ` [PATCH net-next v4 2/7] bonding: Adding extra_len field to struct bond_opt_value David Wilder
2025-06-27 20:17 ` [PATCH net-next v4 3/7] bonding: arp_ip_target helpers David Wilder
2025-06-27 20:17 ` [PATCH net-next v4 4/7] bonding: Processing extended arp_ip_target from user space David Wilder
2025-06-27 20:17 ` [PATCH net-next v4 5/7] bonding: Update to bond_arp_send_all() to use supplied vlan tags David Wilder
2025-06-27 20:17 ` [PATCH net-next v4 6/7] bonding: Update to bond's sysfs and procfs for extended arp_ip_target format David Wilder
2025-07-02 18:32   ` Jay Vosburgh
2025-07-03 18:07     ` David Wilder
2025-06-27 20:17 ` [PATCH net-next v4 7/7] bonding: Selftest and documentation for the arp_ip_target parameter David Wilder
2025-06-28  1:03 ` [PATCH net-next v4 0/7] bonding: Extend arp_ip_target format to allow for a list of vlan tags Jakub Kicinski
2025-06-30 10:18 ` Hangbin Liu
2025-06-30 16:19   ` David Wilder
2025-07-01  7:13     ` Hangbin Liu
2025-08-07  4:38       ` Hangbin Liu [this message]
2025-08-07 16:24         ` David Wilder
2025-08-07 18:10           ` Jay Vosburgh
2025-08-08 10:17             ` Hangbin Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aJQtzYe0XyFAEKFz@fedora \
    --to=liuhangbin@gmail.com \
    --cc=amorenoz@redhat.com \
    --cc=i.maximets@ovn.org \
    --cc=jv@jvosburgh.net \
    --cc=netdev@vger.kernel.org \
    --cc=pradeep@us.ibm.com \
    --cc=pradeeps@linux.vnet.ibm.com \
    --cc=wilder@us.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox