mac80211: Extend filter flag documentation about unsupported flags
PATCH 1/1 mac80211: Extend filter flag documentation about unsupported flags
This extends the filter flags documentation to make it clear what clearing a flag really means.
Signed-off-by Michael Buesch <[email protected]>
Acked-by Johannes Berg <[email protected]>
include/net/mac80211.h +12 -2
@@ -790,14 +790,24 @@ static inline void SET_IEEE80211_PERM_AD* * If your device has no multicast address filters your driver will * need to check both the %FIF_ALLMULTI flag and the @mc_count * parameter to see whether multicast frames should be accepted * or dropped. * -* All unsupported flags in @total_flags must be cleared, i.e. you -* should clear all bits except those you honoured. +* All unsupported flags in @total_flags must be cleared. +* Hardware does not support a flag if it is incapable of _passing_ +* the frame to the stack. Otherwise the driver must ignore +* the flag, but not clear it. +* You must _only_ clear the flag (announce no support for the +* flag to mac80211) if you are not able to pass the packet type +* to the stack (so the hardware always filters it). +* So for example, you should clear @FIF_CONTROL, if your hardware +* always filters control frames. If your hardware always passes +* control frames to the kernel and is incapable of filtering them, +* you do _not_ clear the @FIF_CONTROL flag. +* This rule applies to all other FIF flags as well. */ /** * enum ieee80211_filter_flags - hardware filter flags * * These flags determine what the filter in hardware should be