madwifi/net80211/if_athproto.h
mtaylor 76ef1fd56b Support for setting default VAP debug flags at module load time, so you can
catch messages that occur during VAP startup (before you can possibly invoke 
80211debug).

Support for shared debug flags where they take effect across all devices
(i.e. shared flags in athdebug), and when they take effect across all VAPs
(i.e. shared flags in 80211debug).

Some additional debugging flags, including some in preparation for more leak 
detection code to be merged shortly as well as some from madwifi-dfs.



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2888 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 10:45:58 +00:00

103 lines
2.4 KiB
C

/*
* Copyright (c) 2004 Atheros Communications Inc. All rights reserved.
*
* $Id$
*/
#ifndef _NET_IF_ATH_PROTO_H_
#define _NET_IF_ATH_PROTO_H_
/*
* Atheros proprietary protocol info.
*/
/*
* Atheros RSSI, Signal, Noise, etc.
*/
#define ATH_DEFAULT_NOISE -95 /* dBm */
/*
* Atheros proprietary SuperG defines.
*/
#define ATH_ETH_TYPE 0x88bd
#define ATH_SNAP_ORGCODE_0 0x00
#define ATH_SNAP_ORGCODE_1 0x03
#define ATH_SNAP_ORGCODE_2 0x7f
struct athl2p_tunnel_hdr {
#if (_BYTE_ORDER == _LITTLE_ENDIAN)
u_int32_t offset:11,
seqNum:11,
optHdrLen32:2,
frameType:2,
proto:6;
#else /* big endian */
u_int32_t proto:6,
frameType:2,
optHdrLen32:2,
seqNum:11,
offset:11;
#endif
} __packed;
/*
* The following defines control compiling Atheros-specific features
* (see BuildCaps.inc):
*
* ATH_SUPERG_FF
* set to 1 for fast-frame
*/
#define ATH_L2TUNNEL_PROTO_FF 0
/* FF max payload:
* 802.2 + FFHDR + HPAD + 802.3 + 802.2 + 1500 + SPAD + 802.3 + 802.2 + 1500:
* 8 + 4 + 4 + 14 + 8 + 1500 + 6 + 14 + 8 + 1500
* = 3066
*/
#define ATH_FF_MAX_HDR_PAD 4
#define ATH_FF_MAX_SEP_PAD 6
#define ATH_FF_MAX_HDR 30
#define ATH_FF_MAX_PAYLOAD 3066
#define ATH_FF_MAX_LEN (ATH_FF_MAX_PAYLOAD + IEEE80211_CRC_LEN + \
(IEEE80211_WEP_IVLEN + IEEE80211_WEP_KIDLEN + IEEE80211_WEP_CRCLEN))
/*
* Store a magic number in skb->cb[] area to indicate FF within driver.
* Offset of 8B into cb[] is used to preserve vlan tag info.
*/
#define ATH_FF_MAGIC_PUT(_skb) \
(SKB_CB(_skb)->flags |= M_FF)
#define ATH_FF_MAGIC_CLR(_skb) \
(SKB_CB(_skb)->flags &= ~M_FF)
#define ATH_FF_MAGIC_PRESENT(_skb) \
((SKB_CB(_skb)->flags & M_FF) != 0)
#define ATH_FF_NEXTSKB_PUT(_skb, _next) \
(SKB_CB(_skb)->next = _next)
#define ATH_FF_NEXTSKB_GET(_skb) \
(SKB_CB(_skb)->next)
/*
* default value for the minimum txq depth required for an ath_buf to be
* placed on the FF staging queue. this value should be >=3 due to interaction
* with HW compression.
*/
#define ATH_FF_TXQMIN 3
/*
* default maximum age an ath_buf is allowed to remain on the staging queue.
* When this number of ath_bufs have been queued on the txq, after an ath_buf
* was placed on the staging queue, that ath_buf on the staging queue will be
* flushed.
*/
#define ATH_FF_STAGEQAGEMAX 5
/*
* Reserve enough buffer header length to avoid reallocation on fast-frame
* rx and tx.
*/
#define USE_HEADERLEN_RESV 1
#endif /* _NET_IF_ATH_PROTO_H_ */