I have currently no way to compile kernel/modules for Solaris, but I would be happy to try my test case if there was a compiled module. (preferably 64 bit though).
Lund Masayuki Murayama wrote:
I have loaded the gani-2.6.4 driver instead of the rge driver. I can confirm that multicast and broadcast packets work just fine with this driver without any special changes. I would propose this as a work-around for now.I investigated the multicast hash register setting in gani and rge, and found the difference that rge doesn't set the multicast hash to accept all multicast packets in promiscuous mode. Could you test a patch bellow? -masa %diff -c rge_chip.c.b116 rge_chip.c.mcast *** rge_chip.c.b116 Sat Oct 3 11:08:00 2009 --- rge_chip.c.mcast Sat Oct 3 11:33:28 2009 *************** *** 1203,1210 **** if (rgep->chipid.mac_ver == MAC_VER_8169SC) { rge_reg_set8(rgep, RT_93c46_COMMOND_REG, RT_93c46_MODE_CONFIG); } ! rge_reg_put32(rgep, MULTICAST_0_REG, RGE_BSWAP_32(hashp[0])); ! rge_reg_put32(rgep, MULTICAST_4_REG, RGE_BSWAP_32(hashp[1])); /* * Return to normal network/host communication mode --- 1203,1215 ---- if (rgep->chipid.mac_ver == MAC_VER_8169SC) { rge_reg_set8(rgep, RT_93c46_COMMOND_REG, RT_93c46_MODE_CONFIG); } ! if (rgep->promisc) { ! rge_reg_put32(rgep, MULTICAST_0_REG, 0xffffffffU); ! rge_reg_put32(rgep, MULTICAST_4_REG, 0xffffffffU); ! } else { ! rge_reg_put32(rgep, MULTICAST_0_REG, RGE_BSWAP_32(hashp[0])); ! rge_reg_put32(rgep, MULTICAST_4_REG, RGE_BSWAP_32(hashp[1])); ! } /* * Return to normal network/host communication mode *************** *** 1252,1257 **** --- 1257,1263 ---- case RGE_SET_PROMISC: /* Set or clear the PROMISCUOUS mode bit */ rge_set_promisc(rgep); + rge_set_multi_addr(rgep); break; default: break;
-- Jorgen Lundman | <[email protected]> Unix Administrator | +81 (0)3 -5456-2687 ext 1017 (work) Shibuya-ku, Tokyo | +81 (0)90-5578-8500 (cell) Japan | +81 (0)3 -3375-1767 (home) _______________________________________________ driver-discuss mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/driver-discuss
