mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.4 KiB
97 lines
2.4 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#ifndef HOSTAP_80211_H |
|
#define HOSTAP_80211_H |
|
|
|
#include <linux/types.h> |
|
#include <linux/skbuff.h> |
|
#include <linux/netdevice.h> |
|
|
|
struct hostap_ieee80211_mgmt { |
|
__le16 frame_control; |
|
__le16 duration; |
|
u8 da[6]; |
|
u8 sa[6]; |
|
u8 bssid[6]; |
|
__le16 seq_ctrl; |
|
union { |
|
struct { |
|
__le16 auth_alg; |
|
__le16 auth_transaction; |
|
__le16 status_code; |
|
/* possibly followed by Challenge text */ |
|
u8 variable[0]; |
|
} __packed auth; |
|
struct { |
|
__le16 reason_code; |
|
} __packed deauth; |
|
struct { |
|
__le16 capab_info; |
|
__le16 listen_interval; |
|
/* followed by SSID and Supported rates */ |
|
u8 variable[0]; |
|
} __packed assoc_req; |
|
struct { |
|
__le16 capab_info; |
|
__le16 status_code; |
|
__le16 aid; |
|
/* followed by Supported rates */ |
|
u8 variable[0]; |
|
} __packed assoc_resp, reassoc_resp; |
|
struct { |
|
__le16 capab_info; |
|
__le16 listen_interval; |
|
u8 current_ap[6]; |
|
/* followed by SSID and Supported rates */ |
|
u8 variable[0]; |
|
} __packed reassoc_req; |
|
struct { |
|
__le16 reason_code; |
|
} __packed disassoc; |
|
struct { |
|
} __packed probe_req; |
|
struct { |
|
u8 timestamp[8]; |
|
__le16 beacon_int; |
|
__le16 capab_info; |
|
/* followed by some of SSID, Supported rates, |
|
* FH Params, DS Params, CF Params, IBSS Params, TIM */ |
|
u8 variable[0]; |
|
} __packed beacon, probe_resp; |
|
} u; |
|
} __packed; |
|
|
|
|
|
#define IEEE80211_MGMT_HDR_LEN 24 |
|
#define IEEE80211_DATA_HDR3_LEN 24 |
|
#define IEEE80211_DATA_HDR4_LEN 30 |
|
|
|
|
|
struct hostap_80211_rx_status { |
|
u32 mac_time; |
|
u8 signal; |
|
u8 noise; |
|
u16 rate; /* in 100 kbps */ |
|
}; |
|
|
|
/* prism2_rx_80211 'type' argument */ |
|
enum { |
|
PRISM2_RX_MONITOR, PRISM2_RX_MGMT, PRISM2_RX_NON_ASSOC, |
|
PRISM2_RX_NULLFUNC_ACK |
|
}; |
|
|
|
int prism2_rx_80211(struct net_device *dev, struct sk_buff *skb, |
|
struct hostap_80211_rx_status *rx_stats, int type); |
|
void hostap_80211_rx(struct net_device *dev, struct sk_buff *skb, |
|
struct hostap_80211_rx_status *rx_stats); |
|
void hostap_dump_rx_80211(const char *name, struct sk_buff *skb, |
|
struct hostap_80211_rx_status *rx_stats); |
|
|
|
void hostap_dump_tx_80211(const char *name, struct sk_buff *skb); |
|
netdev_tx_t hostap_data_start_xmit(struct sk_buff *skb, |
|
struct net_device *dev); |
|
netdev_tx_t hostap_mgmt_start_xmit(struct sk_buff *skb, |
|
struct net_device *dev); |
|
netdev_tx_t hostap_master_start_xmit(struct sk_buff *skb, |
|
struct net_device *dev); |
|
|
|
#endif /* HOSTAP_80211_H */
|
|
|