On 22/09/2016 16:09, Gleb Smirnoff wrote:
On Thu, Sep 22, 2016 at 08:21:08AM +0100, Steven Hartland wrote:
S> On 22/09/2016 03:58, Gleb Smirnoff wrote:
S> > On Wed, Sep 21, 2016 at 09:12:11PM -0400, Ryan Stone wrote:
S> > R> > IMHO, the original patch was absolutely evil hack touching multiple
S> > R> > layers, for the sake of a very special problem.
S> > R> >
S> > R> > I think, that in order to kick forwarding table on switches, lagg
S> > R> > should:
S> > R> >
S> > R> > - allocate an mbuf itself
S> > R> > - set its source hardware address to its own
S> > R> > - set destination hardware to broadcast
S> > R> > - put some payload in there, to make packet of valid size. Why should 
it be
S> > R> >   gratuitous ARP? A machine can be running IPv6 only, or may even use
S> > R> > whatever
S> > R> >   higher level protocol, e.g. PPPoE. We shouldn't involve IP into this
S> > R> > Layer 2
S> > R> >   problem at all.
S> > R> > - Finally, send the prepared mbuf down the lagg member(s).
S> > R> >
S> > R> > And please don't hack half of the network stack to achieve that :)
S> > R>
S> > R> The original report in this thread is about a system where it takes 
S> > R> 15 minutes for the network to start working again after a failover.  
S> > R> does not sound to me like a switch problem.  That sounds to me like the 
S> > R> cache on the remote system.  To fix such a case we have to touch L3.
S> >
S> > Does lagg(4) hardware address change when it failovers?
S> >
S> It moves the address between interfaces which typically moves it between
S> switches too.

So, the address doesn't change, which means ARP cache doesn't need to
change as well. If it moves between switches, all that needs to be done
is to send whatever packet from proper hardware address to broadcast.

That would be nice but unfortunately in the wild that won't work as without GARP devices can and do ignore :(

freebsd-net@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to