From owner-p4-projects@FreeBSD.ORG Sun Jan 27 19:25:53 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7D20D16A469; Sun, 27 Jan 2008 19:25:53 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 42DDF16A419 for ; Sun, 27 Jan 2008 19:25:53 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3071F13C4CE for ; Sun, 27 Jan 2008 19:25:53 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m0RJPrOn033195 for ; Sun, 27 Jan 2008 19:25:53 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m0RJPrku033192 for perforce@freebsd.org; Sun, 27 Jan 2008 19:25:53 GMT (envelope-from sam@freebsd.org) Date: Sun, 27 Jan 2008 19:25:53 GMT Message-Id: <200801271925.m0RJPrku033192@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 134230 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2008 19:25:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=134230 Change 134230 by sam@sam_ebb on 2008/01/27 19:25:41 o change ieee80211_node_set_chan api to take an explicit channel instead of using ic_bsschan and remove hack to fallback to ic_curchan if the bss channel has not been set yet o promote it to a public api Affected files ... .. //depot/projects/vap/sys/net80211/ieee80211_node.c#21 edit .. //depot/projects/vap/sys/net80211/ieee80211_node.h#14 edit Differences ... ==== //depot/projects/vap/sys/net80211/ieee80211_node.c#21 (text+ko) ==== @@ -200,17 +200,14 @@ * Set/change the channel. The rate set is also updated as * to insure a consistent view by drivers. */ -static void -ieee80211_node_set_chan(struct ieee80211com *ic, struct ieee80211_node *ni) +void +ieee80211_node_set_chan(struct ieee80211_node *ni, + struct ieee80211_channel *chan) { - struct ieee80211_channel *chan = ic->ic_bsschan; + struct ieee80211com *ic = ni->ni_ic; + + KASSERT(chan != IEEE80211_CHAN_ANYC, ("no channel")); -#if 0 - KASSERT(chan != IEEE80211_CHAN_ANYC, ("bss channel not setup")); -#else - if (chan == IEEE80211_CHAN_ANYC) /* XXX while scanning */ - chan = ic->ic_curchan; -#endif ni->ni_chan = chan; if (IEEE80211_IS_CHAN_HT(chan)) { /* @@ -288,7 +285,7 @@ IEEE80211_IS_CHAN_CACDONE(ic->ic_bsschan)) ieee80211_dfs_cac_clear(ic, ic->ic_bsschan); ic->ic_bsschan = chan; - ieee80211_node_set_chan(ic, ni); + ieee80211_node_set_chan(ni, chan); ic->ic_curmode = ieee80211_chan2mode(chan); /* * Do mode-specific setup. @@ -987,20 +984,20 @@ IEEE80211_DPRINTF(vap, IEEE80211_MSG_NODE, "%s %p<%s>\n", __func__, ni, ether_sprintf(macaddr)); + ni->ni_table = NULL; /* NB: pedantic */ + ni->ni_ic = ic; /* NB: needed to set channel */ + ni->ni_vap = vap; + IEEE80211_ADDR_COPY(ni->ni_macaddr, macaddr); IEEE80211_ADDR_COPY(ni->ni_bssid, vap->iv_bss->ni_bssid); ieee80211_node_initref(ni); /* mark referenced */ /* NB: required by ieee80211_fix_rate */ - ieee80211_node_set_chan(ic, ni); + ieee80211_node_set_chan(ni, ic->ic_bsschan); ni->ni_txpower = vap->iv_bss->ni_txpower; ieee80211_crypto_resetkey(vap, &ni->ni_ucastkey, IEEE80211_KEYIX_NONE); /* XXX optimize away */ IEEE80211_NODE_SAVEQ_INIT(ni, "unknown"); - - ni->ni_table = NULL; /* NB: pedantic */ - ni->ni_ic = ic; - ni->ni_vap = vap; } else { /* XXX msg */ vap->iv_stats.is_rx_nodealloc++; @@ -1024,7 +1021,7 @@ ni->ni_txpower = vap->iv_bss->ni_txpower; ni->ni_vlan = vap->iv_bss->ni_vlan; /* XXX?? */ IEEE80211_ADDR_COPY(ni->ni_bssid, vap->iv_bss->ni_bssid); - ieee80211_node_set_chan(ic, ni); + ieee80211_node_set_chan(ni, ic->ic_bsschan); } return ni; } ==== //depot/projects/vap/sys/net80211/ieee80211_node.h#14 (text+ko) ==== @@ -266,6 +266,8 @@ void ieee80211_node_authorize(struct ieee80211_node *); void ieee80211_node_unauthorize(struct ieee80211_node *); +void ieee80211_node_set_chan(struct ieee80211_node *, + struct ieee80211_channel *); void ieee80211_create_ibss(struct ieee80211vap*, struct ieee80211_channel *); void ieee80211_reset_bss(struct ieee80211vap *); void ieee80211_sync_curchan(struct ieee80211com *);