NOTE: this page is for archival only, see the note at the end of the page.


  • Add support for customizing the MCS rate mask used

Regulatory database improvements

  • Implement new regulatory interpretation rules as discussed in this thread. In summary, using the notation outlined for mathematical intervals:

     0) for all 1 <= k < n : MAX_k <= MIN_{k+1}
     1) each rule in the regdomain covers the frequency range (MIN_1, MAX_1]
     2) given C = union (over all k = 1 .. n) of (MIN_k, MAX_k] it must be
       true that (CENTER - BW/2, CENTER + BW/2) is a subset of C
     3) it must be true for all 1 <= k <= n:
           if CENTER in (MIN_k, MAX_k] : BW <= BW_k   
     4) This is easier to formulate algorithmically:
       USE_FLAGS = 0
       for k = 1 .. n
           if (CENTER - BW/2, CENTER + BW/2) intersects (MIN_k, MAX_k]:
               USE_FLAGS |= FLAGS_k
  • allow for TPC
  • allow for spectral power limits (e.g. 10mW/MHz)


  • make scan timeout variable depending on scan length, in case scans take longer than the current 15 seconds



  • If we want to support MCS rates for unencrypted Mesh we need to make the following changes:
    • mac80211: when we establish a peer with NL80211_CMD_NEW_STATION we need to pass on the HT capabilities for the Mesh sta data. It can get this from the device's own HT capabilities.
    • iw: the iw mesh join command ((NL80211_CMD_JOIN_MESH)) needs to piggy back on the mesh IE the HT capabilities as an HT IE
  • If we want to support MCS rates for encrypted environments we need the following changes:
    • authsae: NL80211_CMD_NEW_STATION needs to pass the HT capabilities for the mesh sta data, it will obtain this from the get wiphy command for the phy.
    • authsae: When authsae submits the join mesh command (NL80211_CMD_JOIN_MESH)it needs to piggy back onto the mesh IE the HT capabilities as an HT IE

For both cases we should update the documentation of the mesh setup data structure to reflect that the mesh ie is not a vendor IE but can also contain standard IE data.

Aggregation requires more work.

AP support

  • injected frames need to be tied to another virtual interface to get the software sequence number and keys (only relevant for 11w) right
  • AP DFS or AP radar detection

  • WAPI support

  • EAPOL TX & status

  • mgmt TX do-not-encrypt flag for shared key auth?
  • class 3 from non-auth station event


  • fix TKIP IV/CCMP PN race (multiple TX modify/use shared state w/o locking) – preferably use atomic64_t, but for phase 1 key lock might be necessary (?)

  • drivers with IV offload do not correctly report IV/PN to nl80211
  • Need to stop TX/RX when a radar is detected for the duration of scan for a new channel.
  • fix race in ap_sta_ps_end (it first clears the PS bit and then tells the driver etc.)


  • improve paged skb RX for performance
  • reset the connection and beacon monitor timers when we are able to successfully TX data to an AP (we currently do it on RX)
  • move survey caching code from ath9k to mac80211 so that other drivers can simply update channel survey data once and all cached data can be sent back to userspace as ath9k does it

power saving

  • move checking for broadcast / multicast frames to mac80211 before going to PS. ath9k already has some code for this, this should be moved to mac80211.
  • uAPSD support – AP side (Intel has old AP u-APSD patches)

  • 11v support (eventually)


  • mac80211 drivers use userspace (wpa_supplicant) for roaming (in wpa_supplicant specify ap_scan=1)
  • need to export roaming capabilities of device (mac80211 has none, but fullmac cards might be able to autonomously select the best BSS) so that we don't need to configure wpa_supplicant and it can do the right thing automatically

Offchannel work

  • optimise "offchannel" to not stop beaconing/traffic/etc. when using the operating channel
  • implement addBA in terms off "offchannel" on the operating channel so it blocks other offchannel while waiting for a response
  • don't time out RX BA agreements while offchannel
  • do TX flushing as appropriate
  • Wait for DTIM beacon and multicast traffic before going offchannel



  • q/a procedure for stack
  • winlab
  • info on test coverage
  • tests themselves need to be documented
  • instructions how to run tests site

  • fix CSS colours, for example link colours (if you want to start, look at the files in moin/linuxwireless/css/ and send diffs to <johannes AT sipsolutions DOT net>)

  • fix print view to include a black&white logo

This is a static dump of the wiki, taken after locking it in January 2015. The new wiki is at
versions of this page: last, v359, v358, v357, v356, v355, v354, v353, v352, v351, v350, v349, v348, v347, v346, v345, v344, v343, v342, v341, v340, v339, v338, v337, v336, v335, v334, v333, v332, v331, v330, v329, v328, v327, v326, v325, v324, v323, v322, v321, v320, v319, v318, v317, v316, v315, v314, v313, v312, v311, v310, v309, v308, v307, v306, v305, v304, v303, v302, v301, v300, v299, v298, v297, v296, v295, v294, v293, v292, v291, v290, v289, v288, v287, v286, v285, v284, v283, v282, v281, v280, v279, v278, v277, v276, v275, v274, v273, v272, v271, v270, v269, v268, v267, v266, v265, v264, v263, v262, v261, v260, v259, v258, v257, v256, v255, v254, v253, v252, v251, v250, v249, v248, v247, v246, v245, v244, v243, v242, v241, v240, v239, v238, v237, v236, v235, v234, v233, v232, v231, v230, v229, v228, v227, v226, v225, v224, v223, v222, v221, v220, v219, v218, v217, v216, v215, v214, v213, v212, v211, v210, v209, v208, v207, v206, v205, v204, v203, v202, v201, v200, v199, v198, v197, v196, v195, v194, v193, v192, v191, v190, v189, v188, v187, v186, v185, v184, v183, v182, v181, v180, v179, v178, v177, v176, v175, v174, v173, v172, v171, v170, v169, v168, v167, v166, v165, v164, v163, v162, v161, v160, v159, v158, v157, v156, v155, v154, v153, v152, v151, v150, v149, v148, v147, v146, v145, v144, v143, v142, v141, v140, v139, v138, v137, v136, v135, v134, v133, v132, v131, v130, v129, v128, v127, v126, v125, v124, v123, v122, v121, v120, v119, v118, v117, v116, v115, v114, v113, v112, v111, v110, v109, v108, v107, v106, v105, v104, v103, v102, v101, v100, v99, v98, v97, v96, v95, v94, v93, v92, v91, v90, v89, v88, v87, v86, v85, v84, v83, v82, v81, v80, v79, v78, v77, v76, v75, v74, v73, v72, v71, v70, v69, v68, v67, v66, v65, v64, v63, v62, v61, v60, v59, v58, v57, v56, v55, v54, v53, v52, v51, v50, v49, v48, v47, v46, v45, v44, v43, v42, v41, v40, v39, v38, v37, v36, v35, v34, v33, v32, v31, v30, v29, v28, v27, v26, v25, v24, v23, v22, v21, v20, v19, v18, v17, v16, v15, v14, v13, v12, v11, v10, v9, v8, v7, v6, v5, v4, v3, v2, v1