Main Page | Data Structures | Directories | File List | Data Fields | Globals

hostap.c File Reference

#include <linux/config.h>
#include <linux/version.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/proc_fs.h>
#include <linux/if_arp.h>
#include <linux/delay.h>
#include <linux/random.h>
#include <linux/tqueue.h>
#include <linux/kmod.h>
#include <linux/rtnetlink.h>
#include "hostap_wext.h"
#include <asm/uaccess.h>
#include "hostap_wlan.h"
#include "hostap_80211.h"
#include "hostap_ap.h"
#include "hostap.h"
#include "hostap_crypt.h"
#include "hostap_crypt.c"
#include "hostap_ap.c"
#include "hostap_info.c"
#include "hostap_ioctl.c"
#include "hostap_proc.c"
#include "hostap_80211_rx.c"

Include dependency graph for hostap.c:

Go to the source code of this file.

Defines

#define TX_TIMEOUT   (2 * HZ)
#define PRISM2_MAX_FRAME_SIZE   2304
#define PRISM2_MIN_MTU   256
#define PRISM2_MAX_MTU   (PRISM2_MAX_FRAME_SIZE - (6 /* LLC */ + 8 /* WEP */))

Functions

 MODULE_AUTHOR ("Jouni Malinen")
 MODULE_DESCRIPTION ("Host AP common routines")
 MODULE_LICENSE ("GPL")
static int prism2_wds_add (local_info_t *local, u8 *remote_addr, int rtnl_locked)
static int prism2_wds_del (local_info_t *local, u8 *remote_addr, int rtnl_locked, int do_not_remove)
static int prism2_hostapd (struct ap_data *ap, struct prism2_hostapd_param *param)
static void * ap_crypt_get_ptrs (struct ap_data *ap, u8 *addr, int permanent, struct prism2_crypt_data ***crypt)
static void ap_control_kickall (struct ap_data *ap)
static int ap_control_add_mac (struct mac_restrictions *mac_restrictions, u8 *mac)
static int ap_control_del_mac (struct mac_restrictions *mac_restrictions, u8 *mac)
static void ap_control_flush_macs (struct mac_restrictions *mac_restrictions)
static int ap_control_kick_mac (struct ap_data *ap, struct net_device *dev, u8 *mac)
net_device * hostap_add_interface (struct local_info *local, int type, int rtnl_locked, const char *name)
void hostap_remove_interface (struct net_device *dev, int rtnl_locked, int remove_from_list)
static int prism2_wds_special_addr (u8 *addr)
u16 hostap_tx_callback_register (local_info_t *local, void(*func)(struct sk_buff *, int ok, void *), void *data)
int hostap_tx_callback_unregister (local_info_t *local, u16 idx)
int hostap_set_word (struct net_device *dev, int rid, u16 val)
int hostap_set_string (struct net_device *dev, int rid, const char *val)
u16 hostap_get_porttype (local_info_t *local)
int hostap_set_encryption (local_info_t *local)
int hostap_set_antsel (local_info_t *local)
int hostap_set_roaming (local_info_t *local)
int hostap_set_auth_algs (local_info_t *local)
void hostap_dump_rx_header (const char *name, const struct hfa384x_rx_frame *rx)
void hostap_dump_tx_header (const char *name, const struct hfa384x_tx_frame *tx)
void hostap_netif_wake_queues (struct net_device *dev)
void hostap_netif_stop_queues (struct net_device *dev)
int hostap_80211_header_parse (struct sk_buff *skb, unsigned char *haddr)
int hostap_80211_prism_header_parse (struct sk_buff *skb, unsigned char *haddr)
int hostap_80211_get_hdrlen (u16 fc)
net_device_stats * hostap_get_stats (struct net_device *dev)
static int prism2_close (struct net_device *dev)
static int prism2_open (struct net_device *dev)
void hostap_set_multicast_list_queue (void *data)
static void hostap_set_multicast_list (struct net_device *dev)
static int prism2_change_mtu (struct net_device *dev, int new_mtu)
void hostap_setup_dev (struct net_device *dev, local_info_t *local, int main_dev)
static int hostap_enable_hostapd (local_info_t *local, int rtnl_locked)
static int hostap_disable_hostapd (local_info_t *local, int rtnl_locked)
int hostap_set_hostapd (local_info_t *local, int val, int rtnl_locked)
static int __init hostap_init (void)
static void __exit hostap_exit (void)
 EXPORT_SYMBOL (hostap_set_word)
 EXPORT_SYMBOL (hostap_set_string)
 EXPORT_SYMBOL (hostap_get_porttype)
 EXPORT_SYMBOL (hostap_set_encryption)
 EXPORT_SYMBOL (hostap_set_antsel)
 EXPORT_SYMBOL (hostap_set_roaming)
 EXPORT_SYMBOL (hostap_set_auth_algs)
 EXPORT_SYMBOL (hostap_dump_rx_header)
 EXPORT_SYMBOL (hostap_dump_tx_header)
 EXPORT_SYMBOL (hostap_netif_wake_queues)
 EXPORT_SYMBOL (hostap_netif_stop_queues)
 EXPORT_SYMBOL (hostap_80211_header_parse)
 EXPORT_SYMBOL (hostap_80211_prism_header_parse)
 EXPORT_SYMBOL (hostap_80211_get_hdrlen)
 EXPORT_SYMBOL (hostap_get_stats)
 EXPORT_SYMBOL (hostap_setup_dev)
 EXPORT_SYMBOL (hostap_proc)
 EXPORT_SYMBOL (hostap_set_multicast_list_queue)
 EXPORT_SYMBOL (hostap_set_hostapd)
 EXPORT_SYMBOL (hostap_add_interface)
 EXPORT_SYMBOL (hostap_remove_interface)
 module_init (hostap_init)
 module_exit (hostap_exit)

Variables

static unsigned char rfc1042_header []
static unsigned char bridge_tunnel_header []
proc_dir_entry * hostap_proc


Define Documentation

#define PRISM2_MAX_FRAME_SIZE   2304
 

Definition at line 58 of file hostap.c.

#define PRISM2_MAX_MTU   (PRISM2_MAX_FRAME_SIZE - (6 /* LLC */ + 8 /* WEP */))
 

Definition at line 61 of file hostap.c.

Referenced by prism2_change_mtu().

#define PRISM2_MIN_MTU   256
 

Definition at line 59 of file hostap.c.

#define TX_TIMEOUT   (2 * HZ)
 

Definition at line 56 of file hostap.c.

Referenced by hostap_setup_dev().


Function Documentation

static int ap_control_add_mac struct mac_restrictionsmac_restrictions,
u8 * mac
[static]
 

static int ap_control_del_mac struct mac_restrictionsmac_restrictions,
u8 * mac
[static]
 

static void ap_control_flush_macs struct mac_restrictionsmac_restrictions  ) [static]
 

Referenced by hostap_free_data().

static int ap_control_kick_mac struct ap_dataap,
struct net_device * dev,
u8 * mac
[static]
 

static void ap_control_kickall struct ap_dataap  ) [static]
 

Referenced by prism2_hostapd().

static void* ap_crypt_get_ptrs struct ap_dataap,
u8 * addr,
int permanent,
struct prism2_crypt_data *** crypt
[static]
 

EXPORT_SYMBOL hostap_remove_interface  ) 
 

EXPORT_SYMBOL hostap_add_interface  ) 
 

EXPORT_SYMBOL hostap_set_hostapd  ) 
 

EXPORT_SYMBOL hostap_set_multicast_list_queue  ) 
 

EXPORT_SYMBOL hostap_proc  ) 
 

EXPORT_SYMBOL hostap_setup_dev  ) 
 

EXPORT_SYMBOL hostap_get_stats  ) 
 

EXPORT_SYMBOL hostap_80211_get_hdrlen  ) 
 

EXPORT_SYMBOL hostap_80211_prism_header_parse  ) 
 

EXPORT_SYMBOL hostap_80211_header_parse  ) 
 

EXPORT_SYMBOL hostap_netif_stop_queues  ) 
 

EXPORT_SYMBOL hostap_netif_wake_queues  ) 
 

EXPORT_SYMBOL hostap_dump_tx_header  ) 
 

EXPORT_SYMBOL hostap_dump_rx_header  ) 
 

EXPORT_SYMBOL hostap_set_auth_algs  ) 
 

EXPORT_SYMBOL hostap_set_roaming  ) 
 

EXPORT_SYMBOL hostap_set_antsel  ) 
 

EXPORT_SYMBOL hostap_set_encryption  ) 
 

EXPORT_SYMBOL hostap_get_porttype  ) 
 

EXPORT_SYMBOL hostap_set_string  ) 
 

EXPORT_SYMBOL hostap_set_word  ) 
 

int hostap_80211_get_hdrlen u16 fc  ) 
 

Definition at line 720 of file hostap.c.

References WLAN_FC_FROMDS, WLAN_FC_GET_STYPE, WLAN_FC_GET_TYPE, WLAN_FC_STYPE_ACK, WLAN_FC_STYPE_CTS, WLAN_FC_TODS, WLAN_FC_TYPE_CTRL, and WLAN_FC_TYPE_DATA.

Referenced by click_tx_callback(), hostap_80211_rx(), hostap_ap_tx_cb(), hostap_rx_frame_decrypt(), hostap_rx_skb(), hostap_tx_callback(), and prism2_rx_80211().

int hostap_80211_header_parse struct sk_buff * skb,
unsigned char * haddr
 

Definition at line 698 of file hostap.c.

Referenced by hostap_enable_hostapd().

int hostap_80211_prism_header_parse struct sk_buff * skb,
unsigned char * haddr
 

Definition at line 705 of file hostap.c.

References LWNG_CAP_DID_BASE.

struct net_device* hostap_add_interface struct local_info * local,
int type,
int rtnl_locked,
const char * name
 

Definition at line 120 of file hostap.c.

References hostap_setup_dev().

Referenced by hostap_enable_hostapd(), and prism2_wds_add().

Here is the call graph for this function:

static int hostap_disable_hostapd local_info_t * local,
int rtnl_locked
[static]
 

Definition at line 992 of file hostap.c.

References hostap_remove_interface().

Referenced by hostap_set_hostapd().

Here is the call graph for this function:

void hostap_dump_rx_header const char * name,
const struct hfa384x_rx_framerx
 

Definition at line 601 of file hostap.c.

References MAC2STR, MACSTR, WLAN_FC_FROMDS, WLAN_FC_GET_STYPE, WLAN_FC_GET_TYPE, and WLAN_FC_TODS.

Referenced by hostap_rx_skb(), and prism2_rx().

void hostap_dump_tx_header const char * name,
const struct hfa384x_tx_frametx
 

Definition at line 633 of file hostap.c.

References MAC2STR, MACSTR, WLAN_FC_FROMDS, WLAN_FC_GET_STYPE, WLAN_FC_GET_TYPE, and WLAN_FC_TODS.

Referenced by prism2_tx().

static int hostap_enable_hostapd local_info_t * local,
int rtnl_locked
[static]
 

Definition at line 965 of file hostap.c.

References ARPHRD_IEEE80211_PRISM, hostap_80211_header_parse(), and hostap_add_interface().

Referenced by hostap_set_hostapd().

Here is the call graph for this function:

static void __exit hostap_exit void  ) [static]
 

Definition at line 1043 of file hostap.c.

References hostap_crypto_deinit(), and hostap_proc.

Here is the call graph for this function:

u16 hostap_get_porttype local_info_t * local  ) 
 

Definition at line 399 of file hostap.c.

References HFA384X_PORTTYPE_BSS, HFA384X_PORTTYPE_HOSTAP, HFA384X_PORTTYPE_IBSS, HFA384X_PORTTYPE_PSEUDO_IBSS, HFA384X_PORTTYPE_WDS, IW_MODE_ADHOC, IW_MODE_INFRA, IW_MODE_MONITOR, and IW_MODE_REPEAT.

Referenced by prism2_setup_rids().

struct net_device_stats* hostap_get_stats struct net_device * dev  ) 
 

Definition at line 746 of file hostap.c.

Referenced by hostap_80211_rx(), hostap_rx_skb(), hostap_setup_dev(), monitor_rx(), prism2_rx(), prism2_transmit(), and prism2_tx().

static int __init hostap_init void  ) [static]
 

Definition at line 1027 of file hostap.c.

References hostap_crypto_init(), and hostap_proc.

Here is the call graph for this function:

void hostap_netif_stop_queues struct net_device * dev  ) 
 

Definition at line 682 of file hostap.c.

Referenced by prism2_event(), prism2_transmit(), prism2_transmit_cb(), and prism2_tx().

void hostap_netif_wake_queues struct net_device * dev  ) 
 

Definition at line 665 of file hostap.c.

Referenced by handle_reset_queue(), prism2_alloc_ev(), prism2_hw_enable(), prism2_transmit(), and prism2_transmit_cb().

void hostap_remove_interface struct net_device * dev,
int rtnl_locked,
int remove_from_list
 

Definition at line 187 of file hostap.c.

Referenced by hostap_disable_hostapd(), prism2_free_local_data(), and prism2_wds_del().

int hostap_set_antsel local_info_t * local  ) 
 

Definition at line 501 of file hostap.c.

References BIT, HFA384X_CMDCODE_READMIF, HFA384X_CMDCODE_WRITEMIF, HFA386X_CR_RX_CONFIGURE, HFA386X_CR_TX_CONFIGURE, HOSTAP_ANTSEL_DIVERSITY, HOSTAP_ANTSEL_DO_NOT_TOUCH, HOSTAP_ANTSEL_HIGH, and HOSTAP_ANTSEL_LOW.

Referenced by prism2_setup_rids().

int hostap_set_auth_algs local_info_t * local  ) 
 

Definition at line 579 of file hostap.c.

References HFA384X_RID_CNFAUTHENTICATION, hostap_set_word(), PRISM2_AUTH_OPEN, and PRISM2_AUTH_SHARED_KEY.

Referenced by prism2_setup_rids().

Here is the call graph for this function:

int hostap_set_encryption local_info_t * local  ) 
 

Definition at line 415 of file hostap.c.

References HFA384X_RID_CNFDEFAULTKEY0, HFA384X_RID_CNFWEPDEFAULTKEYID, HFA384X_RID_CNFWEPFLAGS, HFA384X_WEPFLAGS_EXCLUDEUNENCRYPTED, HFA384X_WEPFLAGS_HOSTDECRYPT, HFA384X_WEPFLAGS_HOSTENCRYPT, HFA384X_WEPFLAGS_PRIVACYINVOKED, hostap_set_word(), WEP_KEY_LEN, and WEP_KEYS.

Referenced by prism2_setup_rids().

Here is the call graph for this function:

int hostap_set_hostapd local_info_t * local,
int val,
int rtnl_locked
 

Definition at line 1008 of file hostap.c.

References hostap_disable_hostapd(), and hostap_enable_hostapd().

Referenced by prism2_free_local_data().

Here is the call graph for this function:

static void hostap_set_multicast_list struct net_device * dev  ) [static]
 

Definition at line 870 of file hostap.c.

References PRISM2_SCHEDULE_TASK.

Referenced by hostap_setup_dev().

void hostap_set_multicast_list_queue void * data  ) 
 

Definition at line 852 of file hostap.c.

References HFA384X_RID_PROMISCUOUSMODE, and hostap_set_word().

Referenced by prism2_init_local_data().

Here is the call graph for this function:

int hostap_set_roaming local_info_t * local  ) 
 

Definition at line 558 of file hostap.c.

References HFA384X_RID_CNFROAMINGMODE, HFA384X_ROAMING_DISABLED, HFA384X_ROAMING_FIRMWARE, HFA384X_ROAMING_HOST, and hostap_set_word().

Referenced by prism2_setup_rids().

Here is the call graph for this function:

int hostap_set_string struct net_device * dev,
int rid,
const char * val
 

Definition at line 382 of file hostap.c.

Referenced by prism2_setup_rids().

int hostap_set_word struct net_device * dev,
int rid,
u16 val
 

Definition at line 374 of file hostap.c.

Referenced by handle_set_tim_queue(), hostap_set_auth_algs(), hostap_set_encryption(), hostap_set_multicast_list_queue(), hostap_set_roaming(), prism2_reset_port(), and prism2_setup_rids().

void hostap_setup_dev struct net_device * dev,
local_info_t * local,
int main_dev
 

Definition at line 922 of file hostap.c.

References hostap_get_stats(), hostap_set_multicast_list(), prism2_change_mtu(), prism2_close(), prism2_open(), and TX_TIMEOUT.

Referenced by hostap_add_interface(), and prism2_init_local_data().

Here is the call graph for this function:

u16 hostap_tx_callback_register local_info_t * local,
void(*)(struct sk_buff *, int ok, void *) func,
void * data
 

Definition at line 324 of file hostap.c.

Referenced by hostap_init_data().

int hostap_tx_callback_unregister local_info_t * local,
u16 idx
 

Definition at line 349 of file hostap.c.

MODULE_AUTHOR "Jouni Malinen"  ) 
 

MODULE_DESCRIPTION "Host AP common routines"  ) 
 

module_exit hostap_exit  ) 
 

module_init hostap_init  ) 
 

MODULE_LICENSE "GPL"  ) 
 

static int prism2_change_mtu struct net_device * dev,
int new_mtu
[static]
 

Definition at line 891 of file hostap.c.

References PRISM2_MAX_MTU.

Referenced by hostap_setup_dev().

static int prism2_close struct net_device * dev  ) [static]
 

Definition at line 753 of file hostap.c.

References flush_scheduled_work(), hostap_deauth_all_stas(), and IW_MODE_MASTER.

Referenced by hostap_setup_dev(), and prism2_open().

Here is the call graph for this function:

static int prism2_hostapd struct ap_dataap,
struct prism2_hostapd_paramparam
[static]
 

static int prism2_open struct net_device * dev  ) [static]
 

Definition at line 791 of file hostap.c.

References prism2_close().

Referenced by hostap_setup_dev().

Here is the call graph for this function:

static int prism2_wds_add local_info_t * local,
u8 * remote_addr,
int rtnl_locked
[static]
 

Definition at line 222 of file hostap.c.

References hostap_add_interface(), hostap_add_sta(), and prism2_wds_special_addr().

Referenced by handle_wds_oper_queue().

Here is the call graph for this function:

static int prism2_wds_del local_info_t * local,
u8 * remote_addr,
int rtnl_locked,
int do_not_remove
[static]
 

Definition at line 288 of file hostap.c.

References hostap_remove_interface().

Referenced by handle_wds_oper_queue().

Here is the call graph for this function:

static int prism2_wds_special_addr u8 * addr  ) [inline, static]
 

Definition at line 213 of file hostap.c.

Referenced by prism2_wds_add().


Variable Documentation

unsigned char bridge_tunnel_header[] [static]
 

Initial value:

{ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0xf8 }

Definition at line 107 of file hostap.c.

struct proc_dir_entry* hostap_proc
 

Definition at line 1025 of file hostap.c.

Referenced by hostap_exit(), hostap_init(), hostap_init_proc(), and hostap_remove_proc().

unsigned char rfc1042_header[] [static]
 

Initial value:

{ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00 }

Definition at line 104 of file hostap.c.


Generated on Mon Nov 21 15:58:25 2005 for openwifi by  doxygen 1.4.1