提交 1a873342 编写于 作者: H Hante Meuleman 提交者: John W. Linville

brcmfmac: add hostap supoort.

This patch adds support for host AP mode.
Reviewed-by: NArend Van Spriel <arend@broadcom.com>
Reviewed-by: NFranky (Zhenhui) Lin <frankyl@broadcom.com>
Reviewed-by: NPieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: NHante Meuleman <meuleman@broadcom.com>
Signed-off-by: NArend van Spriel <arend@broadcom.com>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 5db6e956
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
* IO codes that are interpreted by dongle firmware * IO codes that are interpreted by dongle firmware
******************************************************************************/ ******************************************************************************/
#define BRCMF_C_UP 2 #define BRCMF_C_UP 2
#define BRCMF_C_DOWN 3
#define BRCMF_C_SET_PROMISC 10 #define BRCMF_C_SET_PROMISC 10
#define BRCMF_C_GET_RATE 12 #define BRCMF_C_GET_RATE 12
#define BRCMF_C_GET_INFRA 19 #define BRCMF_C_GET_INFRA 19
...@@ -50,7 +51,10 @@ ...@@ -50,7 +51,10 @@
#define BRCMF_C_REASSOC 53 #define BRCMF_C_REASSOC 53
#define BRCMF_C_SET_ROAM_TRIGGER 55 #define BRCMF_C_SET_ROAM_TRIGGER 55
#define BRCMF_C_SET_ROAM_DELTA 57 #define BRCMF_C_SET_ROAM_DELTA 57
#define BRCMF_C_GET_BCNPRD 75
#define BRCMF_C_SET_BCNPRD 76
#define BRCMF_C_GET_DTIMPRD 77 #define BRCMF_C_GET_DTIMPRD 77
#define BRCMF_C_SET_DTIMPRD 78
#define BRCMF_C_SET_COUNTRY 84 #define BRCMF_C_SET_COUNTRY 84
#define BRCMF_C_GET_PM 85 #define BRCMF_C_GET_PM 85
#define BRCMF_C_SET_PM 86 #define BRCMF_C_SET_PM 86
...@@ -134,6 +138,9 @@ ...@@ -134,6 +138,9 @@
#define WLC_BSS_RSSI_ON_CHANNEL 0x0002 #define WLC_BSS_RSSI_ON_CHANNEL 0x0002
#define BRCMF_MAXRATES_IN_SET 16 /* max # of rates in rateset */
#define BRCMF_STA_ASSOC 0x10 /* Associated */
struct brcmf_event_msg { struct brcmf_event_msg {
__be16 version; __be16 version;
__be16 flags; __be16 flags;
...@@ -566,6 +573,28 @@ struct brcmf_channel_info_le { ...@@ -566,6 +573,28 @@ struct brcmf_channel_info_le {
__le32 scan_channel; __le32 scan_channel;
}; };
struct brcmf_sta_info_le {
__le16 ver; /* version of this struct */
__le16 len; /* length in bytes of this structure */
__le16 cap; /* sta's advertised capabilities */
__le32 flags; /* flags defined below */
__le32 idle; /* time since data pkt rx'd from sta */
u8 ea[ETH_ALEN]; /* Station address */
__le32 count; /* # rates in this set */
u8 rates[BRCMF_MAXRATES_IN_SET]; /* rates in 500kbps units */
/* w/hi bit set if basic */
__le32 in; /* seconds elapsed since associated */
__le32 listen_interval_inms; /* Min Listen interval in ms for STA */
__le32 tx_pkts; /* # of packets transmitted */
__le32 tx_failures; /* # of packets failed */
__le32 rx_ucast_pkts; /* # of unicast packets received */
__le32 rx_mcast_pkts; /* # of multicast packets received */
__le32 tx_rate; /* Rate of last successful tx frame */
__le32 rx_rate; /* Rate of last successful rx frame */
__le32 rx_decrypt_succeeds; /* # of packet decrypted successfully */
__le32 rx_decrypt_failures; /* # of packet decrypted failed */
};
/* Bus independent dongle command */ /* Bus independent dongle command */
struct brcmf_dcmd { struct brcmf_dcmd {
uint cmd; /* common dongle cmd definition */ uint cmd; /* common dongle cmd definition */
......
...@@ -125,6 +125,7 @@ do { \ ...@@ -125,6 +125,7 @@ do { \
#define WL_ESCAN_ACTION_ABORT 3 #define WL_ESCAN_ACTION_ABORT 3
#define WL_AUTH_SHARED_KEY 1 /* d11 shared authentication */ #define WL_AUTH_SHARED_KEY 1 /* d11 shared authentication */
#define IE_MAX_LEN 512
/* dongle status */ /* dongle status */
enum wl_status { enum wl_status {
...@@ -132,7 +133,9 @@ enum wl_status { ...@@ -132,7 +133,9 @@ enum wl_status {
WL_STATUS_SCANNING, WL_STATUS_SCANNING,
WL_STATUS_SCAN_ABORTING, WL_STATUS_SCAN_ABORTING,
WL_STATUS_CONNECTING, WL_STATUS_CONNECTING,
WL_STATUS_CONNECTED WL_STATUS_CONNECTED,
WL_STATUS_AP_CREATING,
WL_STATUS_AP_CREATED
}; };
/* wi-fi mode */ /* wi-fi mode */
...@@ -285,6 +288,17 @@ struct escan_info { ...@@ -285,6 +288,17 @@ struct escan_info {
struct net_device *ndev; struct net_device *ndev;
}; };
/* Structure to hold WPS, WPA IEs for a AP */
struct ap_info {
u8 probe_res_ie[IE_MAX_LEN];
u8 beacon_ie[IE_MAX_LEN];
u32 probe_res_ie_len;
u32 beacon_ie_len;
u8 *wpa_ie;
u8 *rsn_ie;
bool security_mode;
};
/** /**
* struct brcmf_pno_param_le - PNO scan configuration parameters * struct brcmf_pno_param_le - PNO scan configuration parameters
* *
...@@ -407,6 +421,7 @@ struct brcmf_pno_scanresults_le { ...@@ -407,6 +421,7 @@ struct brcmf_pno_scanresults_le {
* @escan_timeout: Timer for catch scan timeout. * @escan_timeout: Timer for catch scan timeout.
* @escan_timeout_work: scan timeout worker. * @escan_timeout_work: scan timeout worker.
* @escan_ioctl_buf: dongle command buffer for escan commands. * @escan_ioctl_buf: dongle command buffer for escan commands.
* @ap_info: host ap information.
* @ci: used to link this structure to netdev private data. * @ci: used to link this structure to netdev private data.
*/ */
struct brcmf_cfg80211_priv { struct brcmf_cfg80211_priv {
...@@ -448,6 +463,7 @@ struct brcmf_cfg80211_priv { ...@@ -448,6 +463,7 @@ struct brcmf_cfg80211_priv {
struct timer_list escan_timeout; struct timer_list escan_timeout;
struct work_struct escan_timeout_work; struct work_struct escan_timeout_work;
u8 *escan_ioctl_buf; u8 *escan_ioctl_buf;
struct ap_info *ap_info;
}; };
static inline struct wiphy *cfg_to_wiphy(struct brcmf_cfg80211_priv *w) static inline struct wiphy *cfg_to_wiphy(struct brcmf_cfg80211_priv *w)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册