Search Linux Wireless

Re: [PATCH 18/24] rt2x00: Add Multicast/Broadcast filtering

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2007-07-31 at 20:37 +0200, Ivo van Doorn wrote:

> +	if (is_monitor_present(intf)) {
> +		filter = IFF_PROMISC | IFF_MULTICAST | IFF_BROADCAST;
> +		if (intf->filter != filter)
> +			__set_bit(PACKET_FILTER_PENDING, &rt2x00dev->flags);
> +	}

Don't do that. There's no requirement that monitor mode interfaces
always be promisc. Also, earlier in the code:


> +       int promisc = !!(filter & IFF_PROMISC);
> +       int multicast = !!(filter & IFF_MULTICAST);
> +       int broadcast = !!(filter & IFF_BROADCAST);
>         u32 reg;
>  
>         rt2x00pci_register_read(rt2x00dev, RXCSR0, &reg);
>         rt2x00_set_field32(&reg, RXCSR0_DROP_NOT_TO_ME, !promisc);
> +       rt2x00_set_field32(&reg, RXCSR0_DROP_MCAST, !multicast);
> +       rt2x00_set_field32(&reg, RXCSR0_DROP_BCAST, !broadcast);
>         rt2x00pci_register_write(rt2x00dev, RXCSR0, reg);

Depending on how the hardware behaves I think promisc should imply the
other two, it seems likely that even with DROP_NOT_TO_ME turned off you
won't be getting multicast traffic and promisc should see that too.

johannes

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux