questions regarding removing the depencency on CONFIG_IEEE80211

Holger Schurig hs4233 at mail.mn-solutions.de
Tue Dec 4 05:40:07 EST 2007


Last friday I was asked on IRC about the dependency of libertas 
on CONFIG_IEEE80211. I gave a quick question, but today I had 
time to look into this further.


1. simply things

* remove "select IEEE80211" in wireless/KConfig
* remove "#include <net/ieee80211.h>"


2. MAX_WPA_IE_LEN

This was defined in net/ieee80211.h, but is not defined in 
linux/ieee80211.h. I have two options, which one should I go:

* define it locally in some libertas header file
* define it as IEEE80211_MAX_WPA_IE_LEN in linux/ieee80211.h


3. MAX_NETWORK_COUNT

libertas has a list of found BSSses during scanning. It keeps 
them in an kzalloc()'ed array. However, it doesn't use any of
ieee80211's code for BSS or associating, so I guess I make this a 
private define, e.g. LBS_MAX_BSS_COUNT.


4. DEFAULT_MAX_SCAN_AGE

Again, libertas doesn't use any aging code from ieee80211, so I 
guess I make this a libertas-private define.


5. MFIE_TYPE_xxxx enum

They are easily substituded with the proper WLAN_EID_xxx ones.


6. struct ieee80211_info_element

In scan.c, libertas uses heavily the "struct 
ieee80211_info_element". As this struct might be useful for 
other non-max80211 drivers, I'd suggest putting it in 
include/linux/ieee80211.h.


7. RADIOTAP

Libertas contains lot's of code for it's monitoring mode, which 
uses radiotap. It used "struct net_device *rtap_net_dev" 
and "struct ieee80211_device *ieee". It contains code like

   priv->rtap_net_dev = alloc_ieee80211(0);
   priv->ieee = netdev_priv(priv->rtap_net_dev);

and I don't have any knowledge about radiotap and how to 
substitue the alloc_ieee80211(). All I could currently to is to 
put those sections into #ifdef CONFIG_IEEE80211.



More information about the libertas-dev mailing list