> 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;
-- 
This message posted from opensolaris.org
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss

Reply via email to