Johannes Berg | 7 Oct 18:57
Favicon

mac80211 driver API

Hi,

Another thing I noticed when looking at the short slot stuff is that a
number of drivers do not use the use_short_preamble flag but also do not
set IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE; this seems like a bug
affecting at least b43legacy, ath5k, at76_usb, rtl8180, rtl8187.

You should review the mac80211 driver API for things you aren't using
but should be using, this affects a number of drivers, for example
adm8211, p54, stlc45xx, ath5k, ath9k, libertas_tf, rtl8180, rtl8187
don't use radio_enabled; a number of drivers don't use power_level.

There are also still drivers (ath5k, adm8211, rtl8180, iwlwifi,
libertas_tf, zd1211rw, mac80211_hwsim, ...?) not using the
IEEE80211_TX_CTL_ASSIGN_SEQ flag, I can fix those since I broke them,
but help from the authors would be appreciated since I don't know the hw
in all cases, I know that stlc45xx for example can use a corresponding
firmware flag for it.

Do we need a document that indicates which parts of the API must be
implemented? Or should we mark such things in mac80211.h? Would
something like this help? I've thrown this together quickly so it
probably isn't complete yet...

A driver must (alternatives in order of preference)
 * either honour the IEEE80211_TX_CTL_USE_RTS_CTS flag
   or implement the set_rts_threshold call
 * either honour the IEEE80211_TX_CTL_USE_CTS_PROTECT flag
   or honour bss_conf's use_cts_prot value
 * either honour IEEE80211_TX_CTL_SHORT_PREAMBLE
(Continue reading)

John W. Linville | 7 Oct 19:21
Favicon

Re: mac80211 driver API

On Tue, Oct 07, 2008 at 07:01:25PM +0200, Johannes Berg wrote:

> Another thing I noticed when looking at the short slot stuff is that a
> number of drivers do not use the use_short_preamble flag but also do not
> set IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE; this seems like a bug
> affecting at least b43legacy, ath5k, at76_usb, rtl8180, rtl8187.
> 
> You should review the mac80211 driver API for things you aren't using
> but should be using, this affects a number of drivers, for example
> adm8211, p54, stlc45xx, ath5k, ath9k, libertas_tf, rtl8180, rtl8187
> don't use radio_enabled; a number of drivers don't use power_level.
> 
> There are also still drivers (ath5k, adm8211, rtl8180, iwlwifi,
> libertas_tf, zd1211rw, mac80211_hwsim, ...?) not using the
> IEEE80211_TX_CTL_ASSIGN_SEQ flag, I can fix those since I broke them,
> but help from the authors would be appreciated since I don't know the hw
> in all cases, I know that stlc45xx for example can use a corresponding
> firmware flag for it.

Should we recruit janitor's (or gregkh's army) to help with stuff
like the above?

> Do we need a document that indicates which parts of the API must be
> implemented? Or should we mark such things in mac80211.h? Would
> something like this help? I've thrown this together quickly so it
> probably isn't complete yet...

<snip>

Looks like a good start, and I would definitely value such a list.
(Continue reading)

Johannes Berg | 7 Oct 19:39
Favicon

Re: mac80211 driver API

On Tue, 2008-10-07 at 13:21 -0400, John W. Linville wrote:
> On Tue, Oct 07, 2008 at 07:01:25PM +0200, Johannes Berg wrote:
> 
> > Another thing I noticed when looking at the short slot stuff is that a
> > number of drivers do not use the use_short_preamble flag but also do not
> > set IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE; this seems like a bug
> > affecting at least b43legacy, ath5k, at76_usb, rtl8180, rtl8187.
> > 
> > You should review the mac80211 driver API for things you aren't using
> > but should be using, this affects a number of drivers, for example
> > adm8211, p54, stlc45xx, ath5k, ath9k, libertas_tf, rtl8180, rtl8187
> > don't use radio_enabled; a number of drivers don't use power_level.
> > 
> > There are also still drivers (ath5k, adm8211, rtl8180, iwlwifi,
> > libertas_tf, zd1211rw, mac80211_hwsim, ...?) not using the
> > IEEE80211_TX_CTL_ASSIGN_SEQ flag, I can fix those since I broke them,
> > but help from the authors would be appreciated since I don't know the hw
> > in all cases, I know that stlc45xx for example can use a corresponding
> > firmware flag for it.
> 
> Should we recruit janitor's (or gregkh's army) to help with stuff
> like the above?

Not sure that's possible, they'd have to ask a lot about how the hw
works.

> > Do we need a document that indicates which parts of the API must be
> > implemented? Or should we mark such things in mac80211.h? Would
> > something like this help? I've thrown this together quickly so it
> > probably isn't complete yet...
(Continue reading)


Gmane