blob: a8337f5c54c9ec68802fc26b734f0e2ed6b024b6 [file] [log] [blame]
/**
Copyright (c) 2008 - 2013 Quantenna Communications Inc
All Rights Reserved
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
#ifndef _QDRV_DEBUG_H
#define _QDRV_DEBUG_H
#include <qtn/qtn_debug.h>
/* Global debug log messsage function mask definition of the moudle qdrv */
#define QDRV_LF_TRACE DBG_LF_00
#define QDRV_LF_BRIDGE DBG_LF_01
#define QDRV_LF_RADAR DBG_LF_02
#define QDRV_LF_IGMP DBG_LF_03
#define QDRV_LF_PKT_TX DBG_LF_04
#define QDRV_LF_PKT_RX DBG_LF_05
#define QDRV_LF_CALCMD DBG_LF_06
#define QDRV_LF_HLINK DBG_LF_07
#define QDRV_LF_TXBF DBG_LF_08
#define QDRV_LF_WLAN DBG_LF_09
#define QDRV_LF_VAP DBG_LF_10
#define QDRV_LF_DUMP_RX_PKT DBG_LF_11
#define QDRV_LF_DUMP_TX_PKT DBG_LF_12
#define QDRV_LF_DUMP_MGT DBG_LF_13 /* management frames except for beacon and action */
#define QDRV_LF_DUMP_BEACON DBG_LF_14 /* beacon frame */
#define QDRV_LF_DUMP_ACTION DBG_LF_15 /* action frame */
#define QDRV_LF_DUMP_DATA DBG_LF_16 /* data frame */
#define QDRV_LF_DFS_QUICKTIMER DBG_LF_17
#define QDRV_LF_DFS_DONTCAREDOTH DBG_LF_18
#define QDRV_LF_DFS_TESTMODE DBG_LF_19
#define QDRV_LF_DFS_DISALLOWRADARDETECT DBG_LF_20
#define QDRV_LF_QCTRL DBG_LF_21 /* qdrv control */
#define QDRV_LF_CMM DBG_LF_22
#define QDRV_LF_DSP DBG_LF_23
#define QDRV_LF_AUC DBG_LF_24
#define QDRV_LF_VSP DBG_LF_24
#define QDRV_LF_ALL DBG_LF_ALL
#define DBG_LM DBG_LM_QDRV
extern unsigned int g_dbg_dump_pkt_len;
#define IS_BEACON(wh) \
(((wh)->i_fc[0] & (IEEE80211_FC0_TYPE_MASK|IEEE80211_FC0_SUBTYPE_MASK)) == \
(IEEE80211_FC0_TYPE_MGT|IEEE80211_FC0_SUBTYPE_BEACON))
#define IS_ACTION(wh) \
(((wh)->i_fc[0] & (IEEE80211_FC0_TYPE_MASK|IEEE80211_FC0_SUBTYPE_MASK)) == \
(IEEE80211_FC0_TYPE_MGT|IEEE80211_FC0_SUBTYPE_ACTION))
#define IS_MGT(wh) \
(((wh)->i_fc[0] & (IEEE80211_FC0_TYPE_MASK)) == (IEEE80211_FC0_TYPE_MGT))
#define IS_DATA(wh) \
(((wh)->i_fc[0] & (IEEE80211_FC0_TYPE_MASK)) == (IEEE80211_FC0_TYPE_DATA))
#define IFF_DUMPPKTS_RECV(wh, f) \
(((DBG_LOG_FUNC_TEST(QDRV_LF_PKT_RX)) && \
((DBG_LOG_LEVEL >= (DBG_LL_TRIAL)) || \
((!IS_BEACON(wh)) && (IS_MGT(wh)) && DBG_LOG_LEVEL >= (DBG_LL_INFO)))) || \
((f & QDRV_LF_DUMP_RX_PKT) && \
(((IS_MGT(wh)) && \
(((f & QDRV_LF_DUMP_MGT) && !IS_BEACON(wh) && !IS_ACTION(wh)) \
|| ((f & QDRV_LF_DUMP_BEACON) && (IS_BEACON(wh))) \
|| ((f & QDRV_LF_DUMP_ACTION) && (IS_ACTION(wh))))) \
|| ((f & QDRV_LF_DUMP_DATA) && IS_DATA(wh)))))
#define IFF_DUMPPKTS_XMIT_MGT(wh, f) \
(((DBG_LOG_FUNC_TEST(QDRV_LF_PKT_TX)) && \
(DBG_LOG_LEVEL >= (DBG_LL_INFO))) || \
((f & QDRV_LF_DUMP_TX_PKT) && \
(((f & QDRV_LF_DUMP_MGT) && !(IS_ACTION(wh))) \
|| ((f & QDRV_LF_DUMP_ACTION) && (IS_ACTION(wh))))))
#define IFF_DUMPPKTS_XMIT_DATA(f) \
(((DBG_LOG_FUNC_TEST(QDRV_LF_PKT_TX)) && \
(DBG_LOG_LEVEL >= (DBG_LL_INFO))) || \
((f & QDRV_LF_DUMP_TX_PKT) && \
(f & QDRV_LF_DUMP_DATA)))
#endif