From owner-p4-projects@FreeBSD.ORG Fri Mar 7 18:17:03 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7AB501065675; Fri, 7 Mar 2008 18:17:03 +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 39E831065671 for ; Fri, 7 Mar 2008 18:17:03 +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 27DD48FC12 for ; Fri, 7 Mar 2008 18:17:03 +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 m27IH333076340 for ; Fri, 7 Mar 2008 18:17:03 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m27IH3XL076338 for perforce@freebsd.org; Fri, 7 Mar 2008 18:17:03 GMT (envelope-from sam@freebsd.org) Date: Fri, 7 Mar 2008 18:17:03 GMT Message-Id: <200803071817.m27IH3XL076338@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 137099 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: Fri, 07 Mar 2008 18:17:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=137099 Change 137099 by sam@sam_ebb on 2008/03/07 18:17:01 consolidate and extend debug msgs for mlme ops; in particular add them to the state msgs as some cause subtle state changes that don't go through the normal state machine Affected files ... .. //depot/projects/vap/sys/net80211/ieee80211_ioctl.c#37 edit Differences ... ==== //depot/projects/vap/sys/net80211/ieee80211_ioctl.c#37 (text+ko) ==== @@ -1184,6 +1184,47 @@ }; static void +mlmedebug(struct ieee80211_node *ni, int op, int reason) +{ +#ifdef IEEE80211_DEBUG + static const struct { + int mask; + const char *opstr; + } ops[] = { + { 0, "op#0" }, + { IEEE80211_MSG_IOCTL | IEEE80211_MSG_STATE | + IEEE80211_MSG_ASSOC, "assoc" }, + { IEEE80211_MSG_IOCTL | IEEE80211_MSG_STATE | + IEEE80211_MSG_ASSOC, "disassoc" }, + { IEEE80211_MSG_IOCTL | IEEE80211_MSG_STATE | + IEEE80211_MSG_AUTH, "deauth" }, + { IEEE80211_MSG_IOCTL | IEEE80211_MSG_STATE | + IEEE80211_MSG_AUTH, "authorize" }, + { IEEE80211_MSG_IOCTL | IEEE80211_MSG_STATE | + IEEE80211_MSG_AUTH, "unauthorize" }, + }; + struct ieee80211vap *vap = ni->ni_vap; + + if (op == IEEE80211_MLME_AUTH) { + IEEE80211_NOTE(vap, IEEE80211_MSG_IOCTL | IEEE80211_MSG_STATE | + IEEE80211_MSG_AUTH, ni, + "station authenticate %s via MLME (reason %d)", + reason == IEEE80211_STATUS_SUCCESS ? "ACCEPT" : "REJECT", + reason); + } else if (!(IEEE80211_MLME_ASSOC <= op && op <= IEEE80211_MLME_AUTH)) { + IEEE80211_NOTE(vap, IEEE80211_MSG_ANY, ni, + "unknown MLME request %d (reason %d)", op, reason); + } else if (reason == IEEE80211_STATUS_SUCCESS) { + IEEE80211_NOTE(vap, ops[op].mask, ni, + "station %s via MLME", ops[op].opstr); + } else { + IEEE80211_NOTE(vap, ops[op].mask, ni, + "station %s via MLME (reason %d)", ops[op].opstr, reason); + } +#endif /* IEEE80211_DEBUG */ +} + +static void domlme(void *arg, struct ieee80211_node *ni) { struct mlmeop *mop = arg; @@ -1198,14 +1239,11 @@ */ if (ni->ni_associd == 0) return; + mlmedebug(ni, mop->op, mop->reason); if (mop->op == IEEE80211_MLME_DEAUTH) { - IEEE80211_NOTE(vap, IEEE80211_MSG_IOCTL | IEEE80211_MSG_AUTH, - ni, "%s", "station deauth via MLME"); IEEE80211_SEND_MGMT(ni, IEEE80211_FC0_SUBTYPE_DEAUTH, mop->reason); } else { - IEEE80211_NOTE(vap, IEEE80211_MSG_IOCTL | IEEE80211_MSG_ASSOC, - ni, "%s", "station disassoc via MLME"); IEEE80211_SEND_MGMT(ni, IEEE80211_FC0_SUBTYPE_DISASSOC, mop->reason); } @@ -1227,6 +1265,7 @@ case IEEE80211_MLME_DEAUTH: switch (vap->iv_opmode) { case IEEE80211_M_STA: + mlmedebug(vap->iv_bss, op, reason); /* XXX not quite right */ ieee80211_new_state(vap, IEEE80211_S_INIT, reason); break; @@ -1260,6 +1299,7 @@ break; } #endif + mlmedebug(vap->iv_bss, op, reason); ni = ieee80211_ref_node(vap->iv_bss); IEEE80211_SEND_MGMT(ni, IEEE80211_FC0_SUBTYPE_DEAUTH, reason); @@ -1279,10 +1319,7 @@ } ni = ieee80211_find_vap_node(&ic->ic_sta, vap, mac); if (ni != NULL) { - IEEE80211_NOTE(vap, - IEEE80211_MSG_IOCTL | IEEE80211_MSG_AUTH, - ni, "station %sauthorize via MLME", - op == IEEE80211_MLME_AUTHORIZE ? "" : "un"); + mlmedebug(ni, op, reason); if (op == IEEE80211_MLME_AUTHORIZE) ieee80211_node_authorize(ni); else @@ -1298,13 +1335,10 @@ } ni = ieee80211_find_vap_node(&ic->ic_sta, vap, mac); if (ni != NULL) { + mlmedebug(ni, op, reason); if (reason == IEEE80211_STATUS_SUCCESS) { IEEE80211_SEND_MGMT(ni, IEEE80211_FC0_SUBTYPE_AUTH, 2); - IEEE80211_NOTE(vap, - IEEE80211_MSG_IOCTL | IEEE80211_MSG_AUTH, - ni, "%s", - "station authenticate ACCEPT via MLME"); /* * For shared key auth, just continue the * exchange. Otherwise when 802.1x is not in @@ -1318,10 +1352,6 @@ vap->iv_stats.is_rx_acl++; ieee80211_send_error(ni, ni->ni_macaddr, IEEE80211_FC0_SUBTYPE_AUTH, 2|(reason<<16)); - IEEE80211_NOTE(vap, - IEEE80211_MSG_IOCTL | IEEE80211_MSG_AUTH, - ni, "station authenticate REJECT via MLME, " - "reason %d", reason); ieee80211_node_leave(ni); } ieee80211_free_node(ni); @@ -1379,6 +1409,7 @@ ieee80211_scan_iterate(vap, mlmelookup, &lookup); if (lookup.se == NULL) return ENOENT; + mlmedebug(vap->iv_bss, IEEE80211_MLME_ASSOC, 0); if (!ieee80211_sta_join(vap, lookup.se)) return EIO; /* XXX unique but could be better */ return 0;