linux/drivers/net/wireless/hostap/hostap_80211.h
<<
>>
Prefs
   1#ifndef HOSTAP_80211_H
   2#define HOSTAP_80211_H
   3
   4#include <linux/types.h>
   5#include <linux/skbuff.h>
   6#include <linux/netdevice.h>
   7
   8struct hostap_ieee80211_mgmt {
   9        __le16 frame_control;
  10        __le16 duration;
  11        u8 da[6];
  12        u8 sa[6];
  13        u8 bssid[6];
  14        __le16 seq_ctrl;
  15        union {
  16                struct {
  17                        __le16 auth_alg;
  18                        __le16 auth_transaction;
  19                        __le16 status_code;
  20                        /* possibly followed by Challenge text */
  21                        u8 variable[0];
  22                } __attribute__ ((packed)) auth;
  23                struct {
  24                        __le16 reason_code;
  25                } __attribute__ ((packed)) deauth;
  26                struct {
  27                        __le16 capab_info;
  28                        __le16 listen_interval;
  29                        /* followed by SSID and Supported rates */
  30                        u8 variable[0];
  31                } __attribute__ ((packed)) assoc_req;
  32                struct {
  33                        __le16 capab_info;
  34                        __le16 status_code;
  35                        __le16 aid;
  36                        /* followed by Supported rates */
  37                        u8 variable[0];
  38                } __attribute__ ((packed)) assoc_resp, reassoc_resp;
  39                struct {
  40                        __le16 capab_info;
  41                        __le16 listen_interval;
  42                        u8 current_ap[6];
  43                        /* followed by SSID and Supported rates */
  44                        u8 variable[0];
  45                } __attribute__ ((packed)) reassoc_req;
  46                struct {
  47                        __le16 reason_code;
  48                } __attribute__ ((packed)) disassoc;
  49                struct {
  50                } __attribute__ ((packed)) probe_req;
  51                struct {
  52                        u8 timestamp[8];
  53                        __le16 beacon_int;
  54                        __le16 capab_info;
  55                        /* followed by some of SSID, Supported rates,
  56                         * FH Params, DS Params, CF Params, IBSS Params, TIM */
  57                        u8 variable[0];
  58                } __attribute__ ((packed)) beacon, probe_resp;
  59        } u;
  60} __attribute__ ((packed));
  61
  62
  63#define IEEE80211_MGMT_HDR_LEN 24
  64#define IEEE80211_DATA_HDR3_LEN 24
  65#define IEEE80211_DATA_HDR4_LEN 30
  66
  67
  68struct hostap_80211_rx_status {
  69        u32 mac_time;
  70        u8 signal;
  71        u8 noise;
  72        u16 rate; /* in 100 kbps */
  73};
  74
  75/* prism2_rx_80211 'type' argument */
  76enum {
  77        PRISM2_RX_MONITOR, PRISM2_RX_MGMT, PRISM2_RX_NON_ASSOC,
  78        PRISM2_RX_NULLFUNC_ACK
  79};
  80
  81int prism2_rx_80211(struct net_device *dev, struct sk_buff *skb,
  82                    struct hostap_80211_rx_status *rx_stats, int type);
  83void hostap_80211_rx(struct net_device *dev, struct sk_buff *skb,
  84                     struct hostap_80211_rx_status *rx_stats);
  85void hostap_dump_rx_80211(const char *name, struct sk_buff *skb,
  86                          struct hostap_80211_rx_status *rx_stats);
  87
  88void hostap_dump_tx_80211(const char *name, struct sk_buff *skb);
  89netdev_tx_t hostap_data_start_xmit(struct sk_buff *skb,
  90                                   struct net_device *dev);
  91netdev_tx_t hostap_mgmt_start_xmit(struct sk_buff *skb,
  92                                   struct net_device *dev);
  93netdev_tx_t hostap_master_start_xmit(struct sk_buff *skb,
  94                                     struct net_device *dev);
  95
  96#endif /* HOSTAP_80211_H */
  97