cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

hostap_80211.h (2409B)


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