From owner-svn-src-all@FreeBSD.ORG Thu Jun 11 04:43:43 2009 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 82FBF1065670; Thu, 11 Jun 2009 04:43:43 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 711A48FC23; Thu, 11 Jun 2009 04:43:43 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n5B4hhqR035519; Thu, 11 Jun 2009 04:43:43 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n5B4hhvD035516; Thu, 11 Jun 2009 04:43:43 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200906110443.n5B4hhvD035516@svn.freebsd.org> From: Sam Leffler Date: Thu, 11 Jun 2009 04:43:43 +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: r193966 - 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, 11 Jun 2009 04:43:43 -0000 Author: sam Date: Thu Jun 11 04:43:42 2009 New Revision: 193966 URL: http://svn.freebsd.org/changeset/base/193966 Log: When associating to an AP we don't know if HT is negotiated until we receive the AssocResp, so we can only set ni_txparms properly at that point. To make this possible make node_setuptxparms public as ieee80211_node_setuptxparms. Modified: head/sys/net80211/ieee80211_node.c head/sys/net80211/ieee80211_node.h head/sys/net80211/ieee80211_sta.c Modified: head/sys/net80211/ieee80211_node.c ============================================================================== --- head/sys/net80211/ieee80211_node.c Thu Jun 11 00:42:53 2009 (r193965) +++ head/sys/net80211/ieee80211_node.c Thu Jun 11 04:43:42 2009 (r193966) @@ -225,8 +225,8 @@ ieee80211_node_unauthorize(struct ieee80 /* * Fix tx parameters for a node according to ``association state''. */ -static void -node_setuptxparms(struct ieee80211_node *ni) +void +ieee80211_node_setuptxparms(struct ieee80211_node *ni) { struct ieee80211vap *vap = ni->ni_vap; enum ieee80211_phymode mode; @@ -794,7 +794,7 @@ ieee80211_sta_join(struct ieee80211vap * IEEE80211_F_DOSORT); if (ieee80211_iserp_rateset(&ni->ni_rates)) ni->ni_flags |= IEEE80211_NODE_ERP; - node_setuptxparms(ni); + ieee80211_node_setuptxparms(ni); return ieee80211_sta_join1(ieee80211_ref_node(ni)); } @@ -1364,7 +1364,7 @@ ieee80211_fakeup_adhoc_node(struct ieee8 ni->ni_flags |= IEEE80211_NODE_FF; #endif } - node_setuptxparms(ni); + ieee80211_node_setuptxparms(ni); if (ic->ic_newassoc != NULL) ic->ic_newassoc(ni, 1); /* XXX not right for 802.1x/WPA */ @@ -1430,7 +1430,7 @@ ieee80211_add_neighbor(struct ieee80211v ieee80211_init_neighbor(ni, wh, sp); if (ieee80211_iserp_rateset(&ni->ni_rates)) ni->ni_flags |= IEEE80211_NODE_ERP; - node_setuptxparms(ni); + ieee80211_node_setuptxparms(ni); if (ic->ic_newassoc != NULL) ic->ic_newassoc(ni, 1); /* XXX not right for 802.1x/WPA */ @@ -2297,7 +2297,7 @@ ieee80211_node_join(struct ieee80211_nod ", turbo" : "" ); - node_setuptxparms(ni); + ieee80211_node_setuptxparms(ni); /* give driver a chance to setup state like ni_txrate */ if (ic->ic_newassoc != NULL) ic->ic_newassoc(ni, newassoc); Modified: head/sys/net80211/ieee80211_node.h ============================================================================== --- head/sys/net80211/ieee80211_node.h Thu Jun 11 00:42:53 2009 (r193965) +++ head/sys/net80211/ieee80211_node.h Thu Jun 11 04:43:42 2009 (r193966) @@ -286,6 +286,7 @@ ieee80211_node_is_authorized(const struc void ieee80211_node_authorize(struct ieee80211_node *); void ieee80211_node_unauthorize(struct ieee80211_node *); +void ieee80211_node_setuptxparms(struct ieee80211_node *); void ieee80211_node_set_chan(struct ieee80211_node *, struct ieee80211_channel *); void ieee80211_create_ibss(struct ieee80211vap*, struct ieee80211_channel *); Modified: head/sys/net80211/ieee80211_sta.c ============================================================================== --- head/sys/net80211/ieee80211_sta.c Thu Jun 11 00:42:53 2009 (r193965) +++ head/sys/net80211/ieee80211_sta.c Thu Jun 11 04:43:42 2009 (r193966) @@ -1594,6 +1594,7 @@ sta_recv_mgmt(struct ieee80211_node *ni, ieee80211_setup_htrates(ni, htcap, IEEE80211_F_JOIN | IEEE80211_F_DOBRS); ieee80211_setup_basic_htrates(ni, htinfo); + ieee80211_node_setuptxparms(ni); } else { #ifdef IEEE80211_SUPPORT_SUPERG if (IEEE80211_ATH_CAP(vap, ni, IEEE80211_NODE_ATH))