Re: CARP broken on -CURRENT?

From: Xin LI <delphij_at_delphij.net>
Date: Fri, 17 Jul 2009 21:49:18 -0700
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I got it.  It was the cached llentry that preventing ether_output() to
choose the right broadcast/multicast address and use the default
gateway's L2 address.  Here is a proposed patch.

Cheers,
- --
Xin LI <delphij_at_delphij.net>	http://www.delphij.net/
FreeBSD - The Power to Serve!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.12 (FreeBSD)

iEYEARECAAYFAkphVE0ACgkQi+vbBBjt66CghgCeOeqa4vLb+oW1qiZCKAggSdKM
O7wAoIF/JL1DNQ/EcuOi8TkNPofJyGLN
=hP2w
-----END PGP SIGNATURE-----

Index: sys/net/if_ethersubr.c
===================================================================
--- sys/net/if_ethersubr.c	(revision 195748)
+++ sys/net/if_ethersubr.c	(working copy)
_at__at_ -194,7 +194,8 _at__at_
 	switch (dst->sa_family) {
 #ifdef INET
 	case AF_INET:
-		if (lle != NULL && (lle->la_flags & LLE_VALID))
+		if (lle != NULL && (lle->la_flags & LLE_VALID) &&
+		    !(m->m_flags & (M_BCAST | M_MCAST)))
 			memcpy(edst, &lle->ll_addr.mac16, sizeof(edst));
 		else
 			error = arpresolve(ifp, rt0, m, dst, edst, &lle);
Received on Sat Jul 18 2009 - 02:50:36 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:52 UTC