madwifi/net80211/if_athproto.h

99 lines
2.3 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)
/*
* 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_ */