Search Linux Wireless

further plan wrt. monitor interfaces

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

 



After my recent patch drivers can now tell the stack that a frame was
damaged. That doesn't do much good, however, if the user cannot tell the
stack to generate such frames. But we need to go level by level so first
mac80211 needs to know about it.

After some discussion and review of Daniel's document (thanks!) we came
up with the following ideas:

1)
Define new filter flags
 * FIF_PROMISC_IN_BSS	(BSS filters still on, but otherwise promisc)
 * FIF_ALLMULTI		(all multicast frames are allowed through)
 * FIF_BROADCAST	(broadcast frames are allowed through)
 * FIF_FCSFAIL		(frames with bad FCS are allowed through)
 * FIF_PLCPFAIL		(frames with bad PLCP checksum are allowed through)
 * FIF_CONTROL		(control frames are shown)
 * FIF_OTHER_BSS	(frames from other BSSes are shown, subject to the
			 other filters)
[missing anything?]

It should be permitted to silently 'upgrade', say if a driver can't
support PROMISC_IN_BSS but only get all packets then it does that
instead, but PROMISC_IN_BSS is still useful if possible.

2)
Remove IEEE80211_HW_MONITOR_DURING_OPER, it becomes useless; same with
soft monitor mode interface stuff

3)
When a monitor interface is added, set FIF_OTHER_BSS and FIF_CONTROL;
depending on the interface flags set FIF_PROMISC_IN_BSS, FIF_MCAST,
FIF_BCAST. No longer tell drivers about monitor interfaces with
add_interface/remove_interface, but rather call set_multicast_list()
with changed flags when a monitor interface comes on.

4)
Change the "int flags" argument to the set_multicast_list callback to
"int *flags" so drivers can indicate whether they supported a flag or
not by clearing all flags they did not honour. Additional advantage:
drivers break and people will be forced to re-examine their code to use
the new flags.

5) [FUTURE]
Introduce cfg80211/nl80211 API to ask for bad FCS/bad PLCP on a monitor
interface.

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