ether82557: don't turn off promisc mode when mcast table is not empty
the driver doesnt implement multicast filter, but just turns on promiscuous mode when a multicast address is added. but this breaks when one actually enables and then disables promiscuous mode with say, running snoopy. we have to keep promisc mode active as long as multicast table is not empty.
This commit is contained in:
parent
ba87e58876
commit
ad36593a99
1 changed files with 5 additions and 10 deletions
|
@ -588,20 +588,15 @@ configure(Ether* ether, int promiscuous)
|
|||
static void
|
||||
promiscuous(void* arg, int on)
|
||||
{
|
||||
configure(arg, on);
|
||||
Ether *ether = arg;
|
||||
configure(ether, on || ether->nmaddr > 0);
|
||||
}
|
||||
|
||||
static void
|
||||
multicast(void* ether, uchar *addr, int add)
|
||||
multicast(void* arg, uchar *, int)
|
||||
{
|
||||
USED(addr);
|
||||
/*
|
||||
* TODO: if (add) add addr to list of mcast addrs in controller
|
||||
* else remove addr from list of mcast addrs in controller
|
||||
* enable multicast input (see CbMAS) instead of promiscuous mode.
|
||||
*/
|
||||
if (add)
|
||||
configure(ether, 1);
|
||||
Ether *ether = arg;
|
||||
configure(ether, ether->prom || ether->nmaddr > 0);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue