CARP broken on -CURRENT?
    Xin LI 
    delphij at delphij.net
       
    Sat Jul 18 04:50:37 UTC 2009
    
    
  
-----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-----
-------------- next part --------------
Index: sys/net/if_ethersubr.c
===================================================================
--- sys/net/if_ethersubr.c	(revision 195748)
+++ sys/net/if_ethersubr.c	(working copy)
@@ -194,7 +194,8 @@
 	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);
    
    
More information about the freebsd-current
mailing list