By definition promiscuous mode should see all unicast frames as well
as multicast/broadcast frames. Previously re(4) ignored multicast frames in promiscuous mode. The RTL8169 datasheet was not clear how it handles multicast frames in promiscuous mode. PR: kern/118572 MFC after: 3 days
This commit is contained in:
parent
9ba01c866b
commit
a0637caa3f
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=174809
@ -643,8 +643,12 @@ re_setmulti(sc)
|
||||
if (ifp->if_flags & IFF_ALLMULTI || ifp->if_flags & IFF_PROMISC) {
|
||||
if (ifp->if_flags & IFF_PROMISC)
|
||||
rxfilt |= RL_RXCFG_RX_ALLPHYS;
|
||||
if (ifp->if_flags & IFF_ALLMULTI)
|
||||
rxfilt |= RL_RXCFG_RX_MULTI;
|
||||
/*
|
||||
* Unlike other hardwares, we have to explicitly set
|
||||
* RL_RXCFG_RX_MULTI to receive multicast frames in
|
||||
* promiscuous mode.
|
||||
*/
|
||||
rxfilt |= RL_RXCFG_RX_MULTI;
|
||||
CSR_WRITE_4(sc, RL_RXCFG, rxfilt);
|
||||
CSR_WRITE_4(sc, RL_MAR0, 0xFFFFFFFF);
|
||||
CSR_WRITE_4(sc, RL_MAR4, 0xFFFFFFFF);
|
||||
|
Loading…
Reference in New Issue
Block a user