00001 #ifndef HOSTAP_80211_H
00002 #define HOSTAP_80211_H
00003
00004 struct hostap_ieee80211_hdr {
00005 u16 frame_control;
00006 u16 duration_id;
00007 u8 addr1[6];
00008 u8 addr2[6];
00009 u8 addr3[6];
00010 u16 seq_ctrl;
00011 u8 addr4[6];
00012 } __attribute__ ((packed));
00013
00014 #define IEEE80211_MGMT_HDR_LEN 24
00015 #define IEEE80211_DATA_HDR3_LEN 24
00016 #define IEEE80211_DATA_HDR4_LEN 30
00017
00018
00019 struct hostap_80211_rx_status {
00020 u32 mac_time;
00021 u8 signal;
00022 u8 noise;
00023 u16 rate;
00024 };
00025
00026
00027 void hostap_80211_rx(struct net_device *dev, struct sk_buff *skb,
00028 struct hostap_80211_rx_status *rx_stats);
00029
00030
00031
00032 enum {
00033 PRISM2_RX_MONITOR, PRISM2_RX_MGMT, PRISM2_RX_NON_ASSOC,
00034 PRISM2_RX_NULLFUNC_ACK
00035 };
00036
00037 int prism2_rx_80211(struct net_device *dev, struct sk_buff *skb,
00038 struct hostap_80211_rx_status *rx_stats, int type);
00039 void hostap_80211_rx(struct net_device *dev, struct sk_buff *skb,
00040 struct hostap_80211_rx_status *rx_stats);
00041 void hostap_dump_rx_80211(const char *name, struct sk_buff *skb,
00042 struct hostap_80211_rx_status *rx_stats);
00043
00044 #endif