Author: bschmidt
Date: Sat Aug 14 20:12:10 2010
New Revision: 211314
URL: http://svn.freebsd.org/changeset/base/211314

Log:
  Introduce IEEE80211_C_RATECTL, drivers which use the ratectl framework
  should set this capability.
  
  MFC after:    2 weeks

Modified:
  head/sys/dev/bwi/if_bwi.c
  head/sys/dev/bwn/if_bwn.c
  head/sys/dev/iwn/if_iwn.c
  head/sys/dev/ral/rt2560.c
  head/sys/dev/ral/rt2661.c
  head/sys/dev/usb/wlan/if_rum.c
  head/sys/dev/usb/wlan/if_run.c
  head/sys/dev/usb/wlan/if_ural.c
  head/sys/dev/usb/wlan/if_zyd.c
  head/sys/dev/wpi/if_wpi.c
  head/sys/net80211/ieee80211.c
  head/sys/net80211/ieee80211_node.c
  head/sys/net80211/ieee80211_sta.c
  head/sys/net80211/ieee80211_var.h

Modified: head/sys/dev/bwi/if_bwi.c
==============================================================================
--- head/sys/dev/bwi/if_bwi.c   Sat Aug 14 20:03:32 2010        (r211313)
+++ head/sys/dev/bwi/if_bwi.c   Sat Aug 14 20:12:10 2010        (r211314)
@@ -511,7 +511,8 @@ bwi_attach(struct bwi_softc *sc)
                      IEEE80211_C_SHPREAMBLE |
                      IEEE80211_C_WPA |
                      IEEE80211_C_BGSCAN |
-                     IEEE80211_C_MONITOR;
+                     IEEE80211_C_MONITOR |
+                     IEEE80211_C_RATECTL;
        ic->ic_opmode = IEEE80211_M_STA;
        ieee80211_ifattach(ic, macaddr);
 

Modified: head/sys/dev/bwn/if_bwn.c
==============================================================================
--- head/sys/dev/bwn/if_bwn.c   Sat Aug 14 20:03:32 2010        (r211313)
+++ head/sys/dev/bwn/if_bwn.c   Sat Aug 14 20:12:10 2010        (r211314)
@@ -1070,6 +1070,7 @@ bwn_attach_post(struct bwn_softc *sc)
                | IEEE80211_C_WPA               /* capable of WPA1+WPA2 */
                | IEEE80211_C_BGSCAN            /* capable of bg scanning */
                | IEEE80211_C_TXPMGT            /* capable of txpow mgt */
+               | IEEE80211_C_RATECTL           /* use ratectl */
                ;
 
        ic->ic_flags_ext |= IEEE80211_FEXT_SWBMISS;     /* s/w bmiss */

Modified: head/sys/dev/iwn/if_iwn.c
==============================================================================
--- head/sys/dev/iwn/if_iwn.c   Sat Aug 14 20:03:32 2010        (r211313)
+++ head/sys/dev/iwn/if_iwn.c   Sat Aug 14 20:12:10 2010        (r211314)
@@ -580,6 +580,7 @@ iwn_attach(device_t dev)
                | IEEE80211_C_IBSS              /* ibss/adhoc mode */
 #endif
                | IEEE80211_C_WME               /* WME */
+               | IEEE80211_C_RATECTL           /* use ratectl */
                ;
 #if 0  /* HT */
        /* XXX disable until HT channel setup works */

Modified: head/sys/dev/ral/rt2560.c
==============================================================================
--- head/sys/dev/ral/rt2560.c   Sat Aug 14 20:03:32 2010        (r211313)
+++ head/sys/dev/ral/rt2560.c   Sat Aug 14 20:12:10 2010        (r211314)
@@ -291,6 +291,7 @@ rt2560_attach(device_t dev, int id)
 #ifdef notyet
                | IEEE80211_C_TXFRAG            /* handle tx frags */
 #endif
+               | IEEE80211_C_RATECTL           /* use ratectl */
                ;
 
        bands = 0;

Modified: head/sys/dev/ral/rt2661.c
==============================================================================
--- head/sys/dev/ral/rt2661.c   Sat Aug 14 20:03:32 2010        (r211313)
+++ head/sys/dev/ral/rt2661.c   Sat Aug 14 20:12:10 2010        (r211314)
@@ -294,6 +294,7 @@ rt2661_attach(device_t dev, int id)
                | IEEE80211_C_TXFRAG            /* handle tx frags */
                | IEEE80211_C_WME               /* 802.11e */
 #endif
+               | IEEE80211_C_RATECTL           /* use ratectl */
                ;
 
        bands = 0;

Modified: head/sys/dev/usb/wlan/if_rum.c
==============================================================================
--- head/sys/dev/usb/wlan/if_rum.c      Sat Aug 14 20:03:32 2010        
(r211313)
+++ head/sys/dev/usb/wlan/if_rum.c      Sat Aug 14 20:12:10 2010        
(r211314)
@@ -497,6 +497,7 @@ rum_attach(device_t self)
            | IEEE80211_C_SHSLOT        /* short slot time supported */
            | IEEE80211_C_BGSCAN        /* bg scanning supported */
            | IEEE80211_C_WPA           /* 802.11i */
+           | IEEE80211_C_RATECTL       /* use ratectl */
            ;
 
        bands = 0;

Modified: head/sys/dev/usb/wlan/if_run.c
==============================================================================
--- head/sys/dev/usb/wlan/if_run.c      Sat Aug 14 20:03:32 2010        
(r211313)
+++ head/sys/dev/usb/wlan/if_run.c      Sat Aug 14 20:12:10 2010        
(r211314)
@@ -636,7 +636,8 @@ run_attach(device_t self)
            IEEE80211_C_SHPREAMBLE |    /* short preamble supported */
            IEEE80211_C_SHSLOT |        /* short slot time supported */
            IEEE80211_C_WME |           /* WME */
-           IEEE80211_C_WPA;            /* WPA1|WPA2(RSN) */
+           IEEE80211_C_WPA |           /* WPA1|WPA2(RSN) */
+           IEEE80211_C_RATECTL;        /* use ratectl */
 
        ic->ic_cryptocaps =
            IEEE80211_CRYPTO_WEP |

Modified: head/sys/dev/usb/wlan/if_ural.c
==============================================================================
--- head/sys/dev/usb/wlan/if_ural.c     Sat Aug 14 20:03:32 2010        
(r211313)
+++ head/sys/dev/usb/wlan/if_ural.c     Sat Aug 14 20:12:10 2010        
(r211314)
@@ -485,6 +485,7 @@ ural_attach(device_t self)
            | IEEE80211_C_SHSLOT        /* short slot time supported */
            | IEEE80211_C_BGSCAN        /* bg scanning supported */
            | IEEE80211_C_WPA           /* 802.11i */
+           | IEEE80211_C_RATECTL       /* use ratectl */
            ;
 
        bands = 0;

Modified: head/sys/dev/usb/wlan/if_zyd.c
==============================================================================
--- head/sys/dev/usb/wlan/if_zyd.c      Sat Aug 14 20:03:32 2010        
(r211313)
+++ head/sys/dev/usb/wlan/if_zyd.c      Sat Aug 14 20:12:10 2010        
(r211314)
@@ -397,6 +397,7 @@ zyd_attach(device_t dev)
                | IEEE80211_C_SHSLOT            /* short slot time supported */
                | IEEE80211_C_BGSCAN            /* capable of bg scanning */
                | IEEE80211_C_WPA               /* 802.11i */
+               | IEEE80211_C_RATECTL           /* use ratectl */
                ;
 
        bands = 0;

Modified: head/sys/dev/wpi/if_wpi.c
==============================================================================
--- head/sys/dev/wpi/if_wpi.c   Sat Aug 14 20:03:32 2010        (r211313)
+++ head/sys/dev/wpi/if_wpi.c   Sat Aug 14 20:12:10 2010        (r211314)
@@ -634,6 +634,7 @@ wpi_attach(device_t dev)
                | IEEE80211_C_WME               /* 802.11e */
                | IEEE80211_C_HOSTAP            /* Host access point mode */
 #endif
+               | IEEE80211_C_RATECTL           /* use ratectl */
                ;
 
        /*

Modified: head/sys/net80211/ieee80211.c
==============================================================================
--- head/sys/net80211/ieee80211.c       Sat Aug 14 20:03:32 2010        
(r211313)
+++ head/sys/net80211/ieee80211.c       Sat Aug 14 20:12:10 2010        
(r211314)
@@ -487,7 +487,8 @@ ieee80211_vap_setup(struct ieee80211com 
        ieee80211_regdomain_vattach(vap);
        ieee80211_radiotap_vattach(vap);
 
-       ieee80211_ratectl_set(vap, IEEE80211_RATECTL_AMRR);
+       if (vap->iv_caps & IEEE80211_C_RATECTL)
+               ieee80211_ratectl_set(vap, IEEE80211_RATECTL_AMRR);
 
        return 0;
 }

Modified: head/sys/net80211/ieee80211_node.c
==============================================================================
--- head/sys/net80211/ieee80211_node.c  Sat Aug 14 20:03:32 2010        
(r211313)
+++ head/sys/net80211/ieee80211_node.c  Sat Aug 14 20:12:10 2010        
(r211314)
@@ -817,7 +817,8 @@ ieee80211_sta_join(struct ieee80211vap *
        if (ieee80211_iserp_rateset(&ni->ni_rates))
                ni->ni_flags |= IEEE80211_NODE_ERP;
        ieee80211_node_setuptxparms(ni);
-       ieee80211_ratectl_node_init(ni);
+       if (vap->iv_caps & IEEE80211_C_RATECTL)
+               ieee80211_ratectl_node_init(ni);
 
        return ieee80211_sta_join1(ieee80211_ref_node(ni));
 }
@@ -1037,7 +1038,8 @@ node_free(struct ieee80211_node *ni)
 {
        struct ieee80211com *ic = ni->ni_ic;
 
-       ieee80211_ratectl_node_deinit(ni);
+       if (ni->ni_vap->iv_caps & IEEE80211_C_RATECTL)
+               ieee80211_ratectl_node_deinit(ni);
        ic->ic_node_cleanup(ni);
        ieee80211_ies_cleanup(&ni->ni_ies);
        ieee80211_psq_cleanup(&ni->ni_psq);

Modified: head/sys/net80211/ieee80211_sta.c
==============================================================================
--- head/sys/net80211/ieee80211_sta.c   Sat Aug 14 20:03:32 2010        
(r211313)
+++ head/sys/net80211/ieee80211_sta.c   Sat Aug 14 20:12:10 2010        
(r211314)
@@ -1597,7 +1597,8 @@ sta_recv_mgmt(struct ieee80211_node *ni,
                             IEEE80211_F_JOIN | IEEE80211_F_DOBRS);
                        ieee80211_setup_basic_htrates(ni, htinfo);
                        ieee80211_node_setuptxparms(ni);
-                       ieee80211_ratectl_node_init(ni);
+                       if (vap->iv_caps & IEEE80211_C_RATECTL)
+                               ieee80211_ratectl_node_init(ni);
                } else {
 #ifdef IEEE80211_SUPPORT_SUPERG
                        if (IEEE80211_ATH_CAP(vap, ni, IEEE80211_NODE_ATH))

Modified: head/sys/net80211/ieee80211_var.h
==============================================================================
--- head/sys/net80211/ieee80211_var.h   Sat Aug 14 20:03:32 2010        
(r211313)
+++ head/sys/net80211/ieee80211_var.h   Sat Aug 14 20:12:10 2010        
(r211314)
@@ -601,7 +601,8 @@ MALLOC_DECLARE(M_80211_VAP);
 #define        IEEE80211_C_MONITOR     0x00010000      /* CAPABILITY: monitor 
mode */
 #define        IEEE80211_C_DFS         0x00020000      /* CAPABILITY: 
DFS/radar avail*/
 #define        IEEE80211_C_MBSS        0x00040000      /* CAPABILITY: MBSS 
available */
-/* 0x7c0000 available */
+#define        IEEE80211_C_RATECTL     0x00080000      /* CAPABILITY: use 
ratectl */
+/* 0x700000 available */
 #define        IEEE80211_C_WPA1        0x00800000      /* CAPABILITY: WPA1 
avail */
 #define        IEEE80211_C_WPA2        0x01000000      /* CAPABILITY: WPA2 
avail */
 #define        IEEE80211_C_WPA         0x01800000      /* CAPABILITY: 
WPA1+WPA2 avail*/
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to