diff options
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 02a8753a4eca..1b1fc53dad36 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -237,8 +237,6 @@ struct ieee80211_if_ap { | |||
237 | struct sk_buff_head ps_bc_buf; | 237 | struct sk_buff_head ps_bc_buf; |
238 | atomic_t num_sta_ps; /* number of stations in PS mode */ | 238 | atomic_t num_sta_ps; /* number of stations in PS mode */ |
239 | int dtim_count; | 239 | int dtim_count; |
240 | int force_unicast_rateidx; /* forced TX rateidx for unicast frames */ | ||
241 | int max_ratectrl_rateidx; /* max TX rateidx for rate control */ | ||
242 | int num_beacons; /* number of TXed beacon frames for this BSS */ | 240 | int num_beacons; /* number of TXed beacon frames for this BSS */ |
243 | }; | 241 | }; |
244 | 242 | ||
@@ -248,7 +246,6 @@ struct ieee80211_if_wds { | |||
248 | }; | 246 | }; |
249 | 247 | ||
250 | struct ieee80211_if_vlan { | 248 | struct ieee80211_if_vlan { |
251 | struct ieee80211_sub_if_data *ap; | ||
252 | struct list_head list; | 249 | struct list_head list; |
253 | }; | 250 | }; |
254 | 251 | ||
@@ -432,16 +429,18 @@ struct ieee80211_sub_if_data { | |||
432 | struct ieee80211_key *keys[NUM_DEFAULT_KEYS]; | 429 | struct ieee80211_key *keys[NUM_DEFAULT_KEYS]; |
433 | struct ieee80211_key *default_key; | 430 | struct ieee80211_key *default_key; |
434 | 431 | ||
432 | /* BSS configuration for this interface. */ | ||
433 | struct ieee80211_bss_conf bss_conf; | ||
434 | |||
435 | /* | 435 | /* |
436 | * BSS configuration for this interface. | 436 | * AP this belongs to: self in AP mode and |
437 | * | 437 | * corresponding AP in VLAN mode, NULL for |
438 | * FIXME: I feel bad putting this here when we already have a | 438 | * all others (might be needed later in IBSS) |
439 | * bss pointer, but the bss pointer is just wrong when | ||
440 | * you have multiple virtual STA mode interfaces... | ||
441 | * This needs to be fixed. | ||
442 | */ | 439 | */ |
443 | struct ieee80211_bss_conf bss_conf; | 440 | struct ieee80211_if_ap *bss; |
444 | struct ieee80211_if_ap *bss; /* BSS that this device belongs to */ | 441 | |
442 | int force_unicast_rateidx; /* forced TX rateidx for unicast frames */ | ||
443 | int max_ratectrl_rateidx; /* max TX rateidx for rate control */ | ||
445 | 444 | ||
446 | union { | 445 | union { |
447 | struct ieee80211_if_ap ap; | 446 | struct ieee80211_if_ap ap; |
@@ -533,8 +532,6 @@ struct ieee80211_sub_if_data *vif_to_sdata(struct ieee80211_vif *p) | |||
533 | return container_of(p, struct ieee80211_sub_if_data, vif); | 532 | return container_of(p, struct ieee80211_sub_if_data, vif); |
534 | } | 533 | } |
535 | 534 | ||
536 | #define IEEE80211_DEV_TO_SUB_IF(dev) netdev_priv(dev) | ||
537 | |||
538 | enum { | 535 | enum { |
539 | IEEE80211_RX_MSG = 1, | 536 | IEEE80211_RX_MSG = 1, |
540 | IEEE80211_TX_STATUS_MSG = 2, | 537 | IEEE80211_TX_STATUS_MSG = 2, |
@@ -760,6 +757,16 @@ static inline int ieee80211_is_multiqueue(struct ieee80211_local *local) | |||
760 | #endif | 757 | #endif |
761 | } | 758 | } |
762 | 759 | ||
760 | static inline struct ieee80211_sub_if_data * | ||
761 | IEEE80211_DEV_TO_SUB_IF(struct net_device *dev) | ||
762 | { | ||
763 | struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); | ||
764 | |||
765 | BUG_ON(!local || local->mdev == dev); | ||
766 | |||
767 | return netdev_priv(dev); | ||
768 | } | ||
769 | |||
763 | /* this struct represents 802.11n's RA/TID combination */ | 770 | /* this struct represents 802.11n's RA/TID combination */ |
764 | struct ieee80211_ra_tid { | 771 | struct ieee80211_ra_tid { |
765 | u8 ra[ETH_ALEN]; | 772 | u8 ra[ETH_ALEN]; |
@@ -883,8 +890,8 @@ int ieee80211_sta_scan_results(struct net_device *dev, | |||
883 | ieee80211_rx_result ieee80211_sta_rx_scan( | 890 | ieee80211_rx_result ieee80211_sta_rx_scan( |
884 | struct net_device *dev, struct sk_buff *skb, | 891 | struct net_device *dev, struct sk_buff *skb, |
885 | struct ieee80211_rx_status *rx_status); | 892 | struct ieee80211_rx_status *rx_status); |
886 | void ieee80211_rx_bss_list_init(struct net_device *dev); | 893 | void ieee80211_rx_bss_list_init(struct ieee80211_local *local); |
887 | void ieee80211_rx_bss_list_deinit(struct net_device *dev); | 894 | void ieee80211_rx_bss_list_deinit(struct ieee80211_local *local); |
888 | int ieee80211_sta_set_extra_ie(struct net_device *dev, char *ie, size_t len); | 895 | int ieee80211_sta_set_extra_ie(struct net_device *dev, char *ie, size_t len); |
889 | struct sta_info *ieee80211_ibss_add_sta(struct net_device *dev, | 896 | struct sta_info *ieee80211_ibss_add_sta(struct net_device *dev, |
890 | struct sk_buff *skb, u8 *bssid, | 897 | struct sk_buff *skb, u8 *bssid, |
@@ -925,8 +932,8 @@ static inline void ieee80211_start_mesh(struct net_device *dev) | |||
925 | {} | 932 | {} |
926 | #endif | 933 | #endif |
927 | 934 | ||
928 | /* ieee80211_iface.c */ | 935 | /* interface handling */ |
929 | int ieee80211_if_add(struct net_device *dev, const char *name, | 936 | int ieee80211_if_add(struct ieee80211_local *local, const char *name, |
930 | struct net_device **new_dev, int type, | 937 | struct net_device **new_dev, int type, |
931 | struct vif_params *params); | 938 | struct vif_params *params); |
932 | void ieee80211_if_set_type(struct net_device *dev, int type); | 939 | void ieee80211_if_set_type(struct net_device *dev, int type); |