From owner-svn-src-all@FreeBSD.ORG Thu Mar 10 18:17:24 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8CD1C106564A; Thu, 10 Mar 2011 18:17:24 +0000 (UTC) (envelope-from bschmidt@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7A9CD8FC0C; Thu, 10 Mar 2011 18:17:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p2AIHOas052089; Thu, 10 Mar 2011 18:17:24 GMT (envelope-from bschmidt@svn.freebsd.org) Received: (from bschmidt@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p2AIHOT8052084; Thu, 10 Mar 2011 18:17:24 GMT (envelope-from bschmidt@svn.freebsd.org) Message-Id: <201103101817.p2AIHOT8052084@svn.freebsd.org> From: Bernhard Schmidt Date: Thu, 10 Mar 2011 18:17:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r219456 - head/sys/net80211 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Mar 2011 18:17:24 -0000 Author: bschmidt Date: Thu Mar 10 18:17:24 2011 New Revision: 219456 URL: http://svn.freebsd.org/changeset/base/219456 Log: Complete the MCS rate table based on the final 802.11n std. While here adjust the IEEE80211_HTRATE_MAXSIZE constant, only MCS0 - 76 are valid the other bits in the mcsset IE (77 - 127) are either reserved or used for TX parameters. Modified: head/sys/net80211/_ieee80211.h head/sys/net80211/ieee80211.c head/sys/net80211/ieee80211_ht.c head/sys/net80211/ieee80211_ht.h Modified: head/sys/net80211/_ieee80211.h ============================================================================== --- head/sys/net80211/_ieee80211.h Thu Mar 10 18:00:47 2011 (r219455) +++ head/sys/net80211/_ieee80211.h Thu Mar 10 18:17:24 2011 (r219456) @@ -335,7 +335,7 @@ struct ieee80211_rateset { * the structure such that it can be used interchangeably * with an ieee80211_rateset (modulo structure size). */ -#define IEEE80211_HTRATE_MAXSIZE 127 +#define IEEE80211_HTRATE_MAXSIZE 77 struct ieee80211_htrateset { uint8_t rs_nrates; Modified: head/sys/net80211/ieee80211.c ============================================================================== --- head/sys/net80211/ieee80211.c Thu Mar 10 18:00:47 2011 (r219455) +++ head/sys/net80211/ieee80211.c Thu Mar 10 18:17:24 2011 (r219456) @@ -1513,6 +1513,67 @@ ieee80211_rate2media(struct ieee80211com { 13, IFM_IEEE80211_MCS }, { 14, IFM_IEEE80211_MCS }, { 15, IFM_IEEE80211_MCS }, + { 16, IFM_IEEE80211_MCS }, + { 17, IFM_IEEE80211_MCS }, + { 18, IFM_IEEE80211_MCS }, + { 19, IFM_IEEE80211_MCS }, + { 20, IFM_IEEE80211_MCS }, + { 21, IFM_IEEE80211_MCS }, + { 22, IFM_IEEE80211_MCS }, + { 23, IFM_IEEE80211_MCS }, + { 24, IFM_IEEE80211_MCS }, + { 25, IFM_IEEE80211_MCS }, + { 26, IFM_IEEE80211_MCS }, + { 27, IFM_IEEE80211_MCS }, + { 28, IFM_IEEE80211_MCS }, + { 29, IFM_IEEE80211_MCS }, + { 30, IFM_IEEE80211_MCS }, + { 31, IFM_IEEE80211_MCS }, + { 32, IFM_IEEE80211_MCS }, + { 33, IFM_IEEE80211_MCS }, + { 34, IFM_IEEE80211_MCS }, + { 35, IFM_IEEE80211_MCS }, + { 36, IFM_IEEE80211_MCS }, + { 37, IFM_IEEE80211_MCS }, + { 38, IFM_IEEE80211_MCS }, + { 39, IFM_IEEE80211_MCS }, + { 40, IFM_IEEE80211_MCS }, + { 41, IFM_IEEE80211_MCS }, + { 42, IFM_IEEE80211_MCS }, + { 43, IFM_IEEE80211_MCS }, + { 44, IFM_IEEE80211_MCS }, + { 45, IFM_IEEE80211_MCS }, + { 46, IFM_IEEE80211_MCS }, + { 47, IFM_IEEE80211_MCS }, + { 48, IFM_IEEE80211_MCS }, + { 49, IFM_IEEE80211_MCS }, + { 50, IFM_IEEE80211_MCS }, + { 51, IFM_IEEE80211_MCS }, + { 52, IFM_IEEE80211_MCS }, + { 53, IFM_IEEE80211_MCS }, + { 54, IFM_IEEE80211_MCS }, + { 55, IFM_IEEE80211_MCS }, + { 56, IFM_IEEE80211_MCS }, + { 57, IFM_IEEE80211_MCS }, + { 58, IFM_IEEE80211_MCS }, + { 59, IFM_IEEE80211_MCS }, + { 60, IFM_IEEE80211_MCS }, + { 61, IFM_IEEE80211_MCS }, + { 62, IFM_IEEE80211_MCS }, + { 63, IFM_IEEE80211_MCS }, + { 64, IFM_IEEE80211_MCS }, + { 65, IFM_IEEE80211_MCS }, + { 66, IFM_IEEE80211_MCS }, + { 67, IFM_IEEE80211_MCS }, + { 68, IFM_IEEE80211_MCS }, + { 69, IFM_IEEE80211_MCS }, + { 70, IFM_IEEE80211_MCS }, + { 71, IFM_IEEE80211_MCS }, + { 72, IFM_IEEE80211_MCS }, + { 73, IFM_IEEE80211_MCS }, + { 74, IFM_IEEE80211_MCS }, + { 75, IFM_IEEE80211_MCS }, + { 76, IFM_IEEE80211_MCS }, }; int m; Modified: head/sys/net80211/ieee80211_ht.c ============================================================================== --- head/sys/net80211/ieee80211_ht.c Thu Mar 10 18:00:47 2011 (r219455) +++ head/sys/net80211/ieee80211_ht.c Thu Mar 10 18:17:24 2011 (r219456) @@ -54,24 +54,84 @@ __FBSDID("$FreeBSD$"); #define MS(_v, _f) (((_v) & _f) >> _f##_S) #define SM(_v, _f) (((_v) << _f##_S) & _f) -const struct ieee80211_mcs_rates ieee80211_htrates[16] = { - /* 20Mhz SGI 40Mhz SGI */ - { 13, 14, 27, 30 }, /* MCS 0 */ - { 26, 29, 54, 60 }, /* MCS 1 */ - { 39, 43, 81, 90 }, /* MCS 2 */ - { 52, 58, 108, 120 }, /* MCS 3 */ - { 78, 87, 162, 180 }, /* MCS 4 */ - { 104, 116, 216, 240 }, /* MCS 5 */ - { 117, 130, 243, 270 }, /* MCS 6 */ - { 130, 144, 270, 300 }, /* MCS 7 */ - { 26, 29, 54, 60 }, /* MCS 8 */ - { 52, 58, 108, 120 }, /* MCS 9 */ - { 78, 87, 162, 180 }, /* MCS 10 */ - { 104, 116, 216, 240 }, /* MCS 11 */ - { 156, 173, 324, 360 }, /* MCS 12 */ - { 208, 231, 432, 480 }, /* MCS 13 */ - { 234, 260, 486, 540 }, /* MCS 14 */ - { 260, 289, 540, 600 } /* MCS 15 */ +const struct ieee80211_mcs_rates ieee80211_htrates[IEEE80211_HTRATE_MAXSIZE] = { + { 13, 14, 27, 30 }, /* MCS 0 */ + { 26, 29, 54, 60 }, /* MCS 1 */ + { 39, 43, 81, 90 }, /* MCS 2 */ + { 52, 58, 108, 120 }, /* MCS 3 */ + { 78, 87, 162, 180 }, /* MCS 4 */ + { 104, 116, 216, 240 }, /* MCS 5 */ + { 117, 130, 243, 270 }, /* MCS 6 */ + { 130, 144, 270, 300 }, /* MCS 7 */ + { 26, 29, 54, 60 }, /* MCS 8 */ + { 52, 58, 108, 120 }, /* MCS 9 */ + { 78, 87, 162, 180 }, /* MCS 10 */ + { 104, 116, 216, 240 }, /* MCS 11 */ + { 156, 173, 324, 360 }, /* MCS 12 */ + { 208, 231, 432, 480 }, /* MCS 13 */ + { 234, 260, 486, 540 }, /* MCS 14 */ + { 260, 289, 540, 600 }, /* MCS 15 */ + { 39, 43, 81, 90 }, /* MCS 16 */ + { 78, 87, 162, 180 }, /* MCS 17 */ + { 117, 130, 243, 270 }, /* MCS 18 */ + { 156, 173, 324, 360 }, /* MCS 19 */ + { 234, 260, 486, 540 }, /* MCS 20 */ + { 312, 347, 648, 720 }, /* MCS 21 */ + { 351, 390, 729, 810 }, /* MCS 22 */ + { 390, 433, 810, 900 }, /* MCS 23 */ + { 52, 58, 108, 120 }, /* MCS 24 */ + { 104, 116, 216, 240 }, /* MCS 25 */ + { 156, 173, 324, 360 }, /* MCS 26 */ + { 208, 231, 432, 480 }, /* MCS 27 */ + { 312, 347, 648, 720 }, /* MCS 28 */ + { 416, 462, 864, 960 }, /* MCS 29 */ + { 468, 520, 972, 1080 }, /* MCS 30 */ + { 520, 578, 1080, 1200 }, /* MCS 31 */ + { 0, 0, 12, 13 }, /* MCS 32 */ + { 78, 87, 162, 180 }, /* MCS 33 */ + { 104, 116, 216, 240 }, /* MCS 34 */ + { 130, 144, 270, 300 }, /* MCS 35 */ + { 117, 130, 243, 270 }, /* MCS 36 */ + { 156, 173, 324, 360 }, /* MCS 37 */ + { 195, 217, 405, 450 }, /* MCS 38 */ + { 104, 116, 216, 240 }, /* MCS 39 */ + { 130, 144, 270, 300 }, /* MCS 40 */ + { 130, 144, 270, 300 }, /* MCS 41 */ + { 156, 173, 324, 360 }, /* MCS 42 */ + { 182, 202, 378, 420 }, /* MCS 43 */ + { 182, 202, 378, 420 }, /* MCS 44 */ + { 208, 231, 432, 480 }, /* MCS 45 */ + { 156, 173, 324, 360 }, /* MCS 46 */ + { 195, 217, 405, 450 }, /* MCS 47 */ + { 195, 217, 405, 450 }, /* MCS 48 */ + { 234, 260, 486, 540 }, /* MCS 49 */ + { 273, 303, 567, 630 }, /* MCS 50 */ + { 273, 303, 567, 630 }, /* MCS 51 */ + { 312, 347, 648, 720 }, /* MCS 52 */ + { 130, 144, 270, 300 }, /* MCS 53 */ + { 156, 173, 324, 360 }, /* MCS 54 */ + { 182, 202, 378, 420 }, /* MCS 55 */ + { 156, 173, 324, 360 }, /* MCS 56 */ + { 182, 202, 378, 420 }, /* MCS 57 */ + { 208, 231, 432, 480 }, /* MCS 58 */ + { 234, 260, 486, 540 }, /* MCS 59 */ + { 208, 231, 432, 480 }, /* MCS 60 */ + { 234, 260, 486, 540 }, /* MCS 61 */ + { 260, 289, 540, 600 }, /* MCS 62 */ + { 260, 289, 540, 600 }, /* MCS 63 */ + { 286, 318, 594, 660 }, /* MCS 64 */ + { 195, 217, 405, 450 }, /* MCS 65 */ + { 234, 260, 486, 540 }, /* MCS 66 */ + { 273, 303, 567, 630 }, /* MCS 67 */ + { 234, 260, 486, 540 }, /* MCS 68 */ + { 273, 303, 567, 630 }, /* MCS 69 */ + { 312, 347, 648, 720 }, /* MCS 70 */ + { 351, 390, 729, 810 }, /* MCS 71 */ + { 312, 347, 648, 720 }, /* MCS 72 */ + { 351, 390, 729, 810 }, /* MCS 73 */ + { 390, 433, 810, 900 }, /* MCS 74 */ + { 390, 433, 810, 900 }, /* MCS 75 */ + { 429, 477, 891, 990 }, /* MCS 76 */ }; static const struct ieee80211_htrateset ieee80211_rateset_11n = Modified: head/sys/net80211/ieee80211_ht.h ============================================================================== --- head/sys/net80211/ieee80211_ht.h Thu Mar 10 18:00:47 2011 (r219455) +++ head/sys/net80211/ieee80211_ht.h Thu Mar 10 18:17:24 2011 (r219456) @@ -159,7 +159,7 @@ struct ieee80211_mcs_rates { uint16_t ht40_rate_800ns; uint16_t ht40_rate_400ns; }; -extern const struct ieee80211_mcs_rates ieee80211_htrates[16]; +extern const struct ieee80211_mcs_rates ieee80211_htrates[]; const struct ieee80211_htrateset *ieee80211_get_suphtrates( struct ieee80211com *, const struct ieee80211_channel *);