ieee80211_i.h (4a80f2788952055a627f2093a0174537d70aec1b) | ieee80211_i.h (ee3858551ae6d044578f598f8001db5f1a9fd52e) |
---|---|
1/* 2 * Copyright 2002-2005, Instant802 Networks, Inc. 3 * Copyright 2005, Devicescape Software, Inc. 4 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. --- 76 unchanged lines hidden (view full) --- 85 u8 *wpa_ie; 86 size_t wpa_ie_len; 87 u8 *rsn_ie; 88 size_t rsn_ie_len; 89 u8 *wmm_ie; 90 size_t wmm_ie_len; 91 u8 *ht_ie; 92 size_t ht_ie_len; | 1/* 2 * Copyright 2002-2005, Instant802 Networks, Inc. 3 * Copyright 2005, Devicescape Software, Inc. 4 * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. --- 76 unchanged lines hidden (view full) --- 85 u8 *wpa_ie; 86 size_t wpa_ie_len; 87 u8 *rsn_ie; 88 size_t rsn_ie_len; 89 u8 *wmm_ie; 90 size_t wmm_ie_len; 91 u8 *ht_ie; 92 size_t ht_ie_len; |
93#ifdef CONFIG_MAC80211_MESH 94 u8 *mesh_id; 95 size_t mesh_id_len; 96#endif 97 /* mesh_cfg left out the ifdef to reduce clutter on bss handling */ 98 u8 *mesh_cfg; |
|
93#define IEEE80211_MAX_SUPP_RATES 32 94 u8 supp_rates[IEEE80211_MAX_SUPP_RATES]; 95 size_t supp_rates_len; 96 int beacon_int; 97 u64 timestamp; 98 99 int probe_resp; 100 unsigned long last_update; --- 121 unchanged lines hidden (view full) --- 222 struct sta_info *sta; 223}; 224 225struct ieee80211_if_vlan { 226 struct ieee80211_sub_if_data *ap; 227 struct list_head list; 228}; 229 | 99#define IEEE80211_MAX_SUPP_RATES 32 100 u8 supp_rates[IEEE80211_MAX_SUPP_RATES]; 101 size_t supp_rates_len; 102 int beacon_int; 103 u64 timestamp; 104 105 int probe_resp; 106 unsigned long last_update; --- 121 unchanged lines hidden (view full) --- 228 struct sta_info *sta; 229}; 230 231struct ieee80211_if_vlan { 232 struct ieee80211_sub_if_data *ap; 233 struct list_head list; 234}; 235 |
236#ifdef CONFIG_MAC80211_MESH 237struct mesh_stats { 238 __u32 fwded_frames; /* Mesh forwarded frames */ 239 __u32 dropped_frames_ttl; /* Not transmitted since mesh_ttl == 0*/ 240 __u32 dropped_frames_no_route; /* Not transmitted, no route found */ 241 atomic_t estab_plinks; 242}; 243 244#define PREQ_Q_F_START 0x1 245#define PREQ_Q_F_REFRESH 0x2 246struct mesh_preq_queue { 247 struct list_head list; 248 u8 dst[ETH_ALEN]; 249 u8 flags; 250}; 251 252 253struct mesh_config { 254 /* Timeouts in ms */ 255 /* Mesh plink management parameters */ 256 u16 dot11MeshRetryTimeout; 257 u16 dot11MeshConfirmTimeout; 258 u16 dot11MeshHoldingTimeout; 259 u16 dot11MeshMaxPeerLinks; 260 u8 dot11MeshMaxRetries; 261 u8 dot11MeshTTL; 262 bool auto_open_plinks; 263 /* HWMP parameters */ 264 u32 dot11MeshHWMPactivePathTimeout; 265 u16 dot11MeshHWMPpreqMinInterval; 266 u16 dot11MeshHWMPnetDiameterTraversalTime; 267 u8 dot11MeshHWMPmaxPREQretries; 268 u32 path_refresh_time; 269 u16 min_discovery_timeout; 270}; 271#endif 272 |
|
230/* flags used in struct ieee80211_if_sta.flags */ 231#define IEEE80211_STA_SSID_SET BIT(0) 232#define IEEE80211_STA_BSSID_SET BIT(1) 233#define IEEE80211_STA_PREV_BSSID_SET BIT(2) 234#define IEEE80211_STA_AUTHENTICATED BIT(3) 235#define IEEE80211_STA_ASSOCIATED BIT(4) 236#define IEEE80211_STA_PROBEREQ_POLL BIT(5) 237#define IEEE80211_STA_CREATE_IBSS BIT(6) 238#define IEEE80211_STA_MIXED_CELL BIT(7) 239#define IEEE80211_STA_WMM_ENABLED BIT(8) 240#define IEEE80211_STA_AUTO_SSID_SEL BIT(10) 241#define IEEE80211_STA_AUTO_BSSID_SEL BIT(11) 242#define IEEE80211_STA_AUTO_CHANNEL_SEL BIT(12) 243#define IEEE80211_STA_PRIVACY_INVOKED BIT(13) 244struct ieee80211_if_sta { 245 enum { 246 IEEE80211_DISABLED, IEEE80211_AUTHENTICATE, 247 IEEE80211_ASSOCIATE, IEEE80211_ASSOCIATED, | 273/* flags used in struct ieee80211_if_sta.flags */ 274#define IEEE80211_STA_SSID_SET BIT(0) 275#define IEEE80211_STA_BSSID_SET BIT(1) 276#define IEEE80211_STA_PREV_BSSID_SET BIT(2) 277#define IEEE80211_STA_AUTHENTICATED BIT(3) 278#define IEEE80211_STA_ASSOCIATED BIT(4) 279#define IEEE80211_STA_PROBEREQ_POLL BIT(5) 280#define IEEE80211_STA_CREATE_IBSS BIT(6) 281#define IEEE80211_STA_MIXED_CELL BIT(7) 282#define IEEE80211_STA_WMM_ENABLED BIT(8) 283#define IEEE80211_STA_AUTO_SSID_SEL BIT(10) 284#define IEEE80211_STA_AUTO_BSSID_SEL BIT(11) 285#define IEEE80211_STA_AUTO_CHANNEL_SEL BIT(12) 286#define IEEE80211_STA_PRIVACY_INVOKED BIT(13) 287struct ieee80211_if_sta { 288 enum { 289 IEEE80211_DISABLED, IEEE80211_AUTHENTICATE, 290 IEEE80211_ASSOCIATE, IEEE80211_ASSOCIATED, |
248 IEEE80211_IBSS_SEARCH, IEEE80211_IBSS_JOINED | 291 IEEE80211_IBSS_SEARCH, IEEE80211_IBSS_JOINED, 292 IEEE80211_MESH_UP |
249 } state; 250 struct timer_list timer; 251 struct work_struct work; 252 u8 bssid[ETH_ALEN], prev_bssid[ETH_ALEN]; 253 u8 ssid[IEEE80211_MAX_SSID_LEN]; 254 size_t ssid_len; 255 u8 scan_ssid[IEEE80211_MAX_SSID_LEN]; 256 size_t scan_ssid_len; | 293 } state; 294 struct timer_list timer; 295 struct work_struct work; 296 u8 bssid[ETH_ALEN], prev_bssid[ETH_ALEN]; 297 u8 ssid[IEEE80211_MAX_SSID_LEN]; 298 size_t ssid_len; 299 u8 scan_ssid[IEEE80211_MAX_SSID_LEN]; 300 size_t scan_ssid_len; |
301#ifdef CONFIG_MAC80211_MESH 302 struct timer_list mesh_path_timer; 303 u8 mesh_id[IEEE80211_MAX_MESH_ID_LEN]; 304 bool accepting_plinks; 305 size_t mesh_id_len; 306 /* Active Path Selection Protocol Identifier */ 307 u8 mesh_pp_id[4]; 308 /* Active Path Selection Metric Identifier */ 309 u8 mesh_pm_id[4]; 310 /* Congestion Control Mode Identifier */ 311 u8 mesh_cc_id[4]; 312 /* Local mesh Destination Sequence Number */ 313 u32 dsn; 314 /* Last used PREQ ID */ 315 u32 preq_id; 316 atomic_t mpaths; 317 /* Timestamp of last DSN update */ 318 unsigned long last_dsn_update; 319 /* Timestamp of last DSN sent */ 320 unsigned long last_preq; 321 struct mesh_rmc *rmc; 322 spinlock_t mesh_preq_queue_lock; 323 struct mesh_preq_queue preq_queue; 324 int preq_queue_len; 325 struct mesh_stats mshstats; 326 struct mesh_config mshcfg; 327 u8 mesh_seqnum[3]; 328#endif |
|
257 u16 aid; 258 u16 ap_capab, capab; 259 u8 *extra_ie; /* to be added to the end of AssocReq */ 260 size_t extra_ie_len; 261 262 /* The last AssocReq/Resp IEs */ 263 u8 *assocreq_ies, *assocresp_ies; 264 size_t assocreq_ies_len, assocresp_ies_len; --- 16 unchanged lines hidden (view full) --- 281 int auth_alg; /* currently used IEEE 802.11 authentication algorithm */ 282 int auth_transaction; 283 284 unsigned long ibss_join_req; 285 struct sk_buff *probe_resp; /* ProbeResp template for IBSS */ 286 u32 supp_rates_bits[IEEE80211_NUM_BANDS]; 287 288 int wmm_last_param_set; | 329 u16 aid; 330 u16 ap_capab, capab; 331 u8 *extra_ie; /* to be added to the end of AssocReq */ 332 size_t extra_ie_len; 333 334 /* The last AssocReq/Resp IEs */ 335 u8 *assocreq_ies, *assocresp_ies; 336 size_t assocreq_ies_len, assocresp_ies_len; --- 16 unchanged lines hidden (view full) --- 353 int auth_alg; /* currently used IEEE 802.11 authentication algorithm */ 354 int auth_transaction; 355 356 unsigned long ibss_join_req; 357 struct sk_buff *probe_resp; /* ProbeResp template for IBSS */ 358 u32 supp_rates_bits[IEEE80211_NUM_BANDS]; 359 360 int wmm_last_param_set; |
361 int num_beacons; /* number of TXed beacon frames by this STA */ |
|
289}; 290 291 292/* flags used in struct ieee80211_sub_if_data.flags */ 293#define IEEE80211_SDATA_ALLMULTI BIT(0) 294#define IEEE80211_SDATA_PROMISC BIT(1) 295#define IEEE80211_SDATA_USERSPACE_MLME BIT(2) 296#define IEEE80211_SDATA_OPERATING_GMODE BIT(3) --- 63 unchanged lines hidden (view full) --- 360 struct dentry *capab; 361 struct dentry *extra_ie_len; 362 struct dentry *auth_tries; 363 struct dentry *assoc_tries; 364 struct dentry *auth_algs; 365 struct dentry *auth_alg; 366 struct dentry *auth_transaction; 367 struct dentry *flags; | 362}; 363 364 365/* flags used in struct ieee80211_sub_if_data.flags */ 366#define IEEE80211_SDATA_ALLMULTI BIT(0) 367#define IEEE80211_SDATA_PROMISC BIT(1) 368#define IEEE80211_SDATA_USERSPACE_MLME BIT(2) 369#define IEEE80211_SDATA_OPERATING_GMODE BIT(3) --- 63 unchanged lines hidden (view full) --- 433 struct dentry *capab; 434 struct dentry *extra_ie_len; 435 struct dentry *auth_tries; 436 struct dentry *assoc_tries; 437 struct dentry *auth_algs; 438 struct dentry *auth_alg; 439 struct dentry *auth_transaction; 440 struct dentry *flags; |
441 struct dentry *num_beacons_sta; |
|
368 } sta; 369 struct { 370 struct dentry *channel_use; 371 struct dentry *drop_unencrypted; 372 struct dentry *num_sta_ps; 373 struct dentry *dtim_count; 374 struct dentry *num_beacons; 375 struct dentry *force_unicast_rateidx; --- 9 unchanged lines hidden (view full) --- 385 struct dentry *channel_use; 386 struct dentry *drop_unencrypted; 387 } vlan; 388 struct { 389 struct dentry *mode; 390 } monitor; 391 struct dentry *default_key; 392 } debugfs; | 442 } sta; 443 struct { 444 struct dentry *channel_use; 445 struct dentry *drop_unencrypted; 446 struct dentry *num_sta_ps; 447 struct dentry *dtim_count; 448 struct dentry *num_beacons; 449 struct dentry *force_unicast_rateidx; --- 9 unchanged lines hidden (view full) --- 459 struct dentry *channel_use; 460 struct dentry *drop_unencrypted; 461 } vlan; 462 struct { 463 struct dentry *mode; 464 } monitor; 465 struct dentry *default_key; 466 } debugfs; |
467 468#ifdef CONFIG_MAC80211_MESH 469 struct dentry *mesh_stats_dir; 470 struct { 471 struct dentry *fwded_frames; 472 struct dentry *dropped_frames_ttl; 473 struct dentry *dropped_frames_no_route; 474 struct dentry *estab_plinks; 475 struct timer_list mesh_path_timer; 476 } mesh_stats; 477 478 struct dentry *mesh_config_dir; 479 struct { 480 struct dentry *dot11MeshRetryTimeout; 481 struct dentry *dot11MeshConfirmTimeout; 482 struct dentry *dot11MeshHoldingTimeout; 483 struct dentry *dot11MeshMaxRetries; 484 struct dentry *dot11MeshTTL; 485 struct dentry *auto_open_plinks; 486 struct dentry *dot11MeshMaxPeerLinks; 487 struct dentry *dot11MeshHWMPactivePathTimeout; 488 struct dentry *dot11MeshHWMPpreqMinInterval; 489 struct dentry *dot11MeshHWMPnetDiameterTraversalTime; 490 struct dentry *dot11MeshHWMPmaxPREQretries; 491 struct dentry *path_refresh_time; 492 struct dentry *min_discovery_timeout; 493 } mesh_config; |
|
393#endif | 494#endif |
495 496#endif |
|
394 /* must be last, dynamically sized area in this! */ 395 struct ieee80211_vif vif; 396}; 397 398static inline 399struct ieee80211_sub_if_data *vif_to_sdata(struct ieee80211_vif *p) 400{ 401 return container_of(p, struct ieee80211_sub_if_data, vif); --- 210 unchanged lines hidden (view full) --- 612}; 613 614/* this struct represents 802.11n's RA/TID combination */ 615struct ieee80211_ra_tid { 616 u8 ra[ETH_ALEN]; 617 u16 tid; 618}; 619 | 497 /* must be last, dynamically sized area in this! */ 498 struct ieee80211_vif vif; 499}; 500 501static inline 502struct ieee80211_sub_if_data *vif_to_sdata(struct ieee80211_vif *p) 503{ 504 return container_of(p, struct ieee80211_sub_if_data, vif); --- 210 unchanged lines hidden (view full) --- 715}; 716 717/* this struct represents 802.11n's RA/TID combination */ 718struct ieee80211_ra_tid { 719 u8 ra[ETH_ALEN]; 720 u16 tid; 721}; 722 |
723/* Parsed Information Elements */ 724struct ieee802_11_elems { 725 /* pointers to IEs */ 726 u8 *ssid; 727 u8 *supp_rates; 728 u8 *fh_params; 729 u8 *ds_params; 730 u8 *cf_params; 731 u8 *tim; 732 u8 *ibss_params; 733 u8 *challenge; 734 u8 *wpa; 735 u8 *rsn; 736 u8 *erp_info; 737 u8 *ext_supp_rates; 738 u8 *wmm_info; 739 u8 *wmm_param; 740 u8 *ht_cap_elem; 741 u8 *ht_info_elem; 742 u8 *mesh_config; 743 u8 *mesh_id; 744 u8 *peer_link; 745 u8 *preq; 746 u8 *prep; 747 u8 *perr; 748 749 /* length of them, respectively */ 750 u8 ssid_len; 751 u8 supp_rates_len; 752 u8 fh_params_len; 753 u8 ds_params_len; 754 u8 cf_params_len; 755 u8 tim_len; 756 u8 ibss_params_len; 757 u8 challenge_len; 758 u8 wpa_len; 759 u8 rsn_len; 760 u8 erp_info_len; 761 u8 ext_supp_rates_len; 762 u8 wmm_info_len; 763 u8 wmm_param_len; 764 u8 ht_cap_elem_len; 765 u8 ht_info_elem_len; 766 u8 mesh_config_len; 767 u8 mesh_id_len; 768 u8 peer_link_len; 769 u8 preq_len; 770 u8 prep_len; 771 u8 perr_len; 772}; 773 |
|
620static inline struct ieee80211_local *hw_to_local( 621 struct ieee80211_hw *hw) 622{ 623 return container_of(hw, struct ieee80211_local, hw); 624} 625 626static inline struct ieee80211_hw *local_to_hw( 627 struct ieee80211_local *local) --- 53 unchanged lines hidden (view full) --- 681#define CHAN_UTIL_HDR_SHORT (40 * CHAN_UTIL_PER_USEC) 682 683 684/* ieee80211_ioctl.c */ 685int ieee80211_set_compression(struct ieee80211_local *local, 686 struct net_device *dev, struct sta_info *sta); 687int ieee80211_set_freq(struct ieee80211_local *local, int freq); 688/* ieee80211_sta.c */ | 774static inline struct ieee80211_local *hw_to_local( 775 struct ieee80211_hw *hw) 776{ 777 return container_of(hw, struct ieee80211_local, hw); 778} 779 780static inline struct ieee80211_hw *local_to_hw( 781 struct ieee80211_local *local) --- 53 unchanged lines hidden (view full) --- 835#define CHAN_UTIL_HDR_SHORT (40 * CHAN_UTIL_PER_USEC) 836 837 838/* ieee80211_ioctl.c */ 839int ieee80211_set_compression(struct ieee80211_local *local, 840 struct net_device *dev, struct sta_info *sta); 841int ieee80211_set_freq(struct ieee80211_local *local, int freq); 842/* ieee80211_sta.c */ |
843#define IEEE80211_FC(type, stype) cpu_to_le16(type | stype) |
|
689void ieee80211_sta_timer(unsigned long data); 690void ieee80211_sta_work(struct work_struct *work); 691void ieee80211_sta_scan_work(struct work_struct *work); 692void ieee80211_sta_rx_mgmt(struct net_device *dev, struct sk_buff *skb, 693 struct ieee80211_rx_status *rx_status); 694int ieee80211_sta_set_ssid(struct net_device *dev, char *ssid, size_t len); 695int ieee80211_sta_get_ssid(struct net_device *dev, char *ssid, size_t *len); 696int ieee80211_sta_set_bssid(struct net_device *dev, u8 *bssid); --- 24 unchanged lines hidden (view full) --- 721 u16 tid, u8 dialog_token, u16 start_seq_num, 722 u16 agg_size, u16 timeout); 723void ieee80211_send_delba(struct net_device *dev, const u8 *da, u16 tid, 724 u16 initiator, u16 reason_code); 725void ieee80211_sta_stop_rx_ba_session(struct net_device *dev, u8 *da, 726 u16 tid, u16 initiator, u16 reason); 727void sta_rx_agg_session_timer_expired(unsigned long data); 728void sta_addba_resp_timer_expired(unsigned long data); | 844void ieee80211_sta_timer(unsigned long data); 845void ieee80211_sta_work(struct work_struct *work); 846void ieee80211_sta_scan_work(struct work_struct *work); 847void ieee80211_sta_rx_mgmt(struct net_device *dev, struct sk_buff *skb, 848 struct ieee80211_rx_status *rx_status); 849int ieee80211_sta_set_ssid(struct net_device *dev, char *ssid, size_t len); 850int ieee80211_sta_get_ssid(struct net_device *dev, char *ssid, size_t *len); 851int ieee80211_sta_set_bssid(struct net_device *dev, u8 *bssid); --- 24 unchanged lines hidden (view full) --- 876 u16 tid, u8 dialog_token, u16 start_seq_num, 877 u16 agg_size, u16 timeout); 878void ieee80211_send_delba(struct net_device *dev, const u8 *da, u16 tid, 879 u16 initiator, u16 reason_code); 880void ieee80211_sta_stop_rx_ba_session(struct net_device *dev, u8 *da, 881 u16 tid, u16 initiator, u16 reason); 882void sta_rx_agg_session_timer_expired(unsigned long data); 883void sta_addba_resp_timer_expired(unsigned long data); |
884u64 ieee80211_sta_get_rates(struct ieee80211_local *local, 885 struct ieee802_11_elems *elems, 886 enum ieee80211_band band); 887void ieee80211_start_mesh(struct net_device *dev); 888void ieee80211_sta_tx(struct net_device *dev, struct sk_buff *skb, 889 int encrypt); 890void ieee802_11_parse_elems(u8 *start, size_t len, 891 struct ieee802_11_elems *elems); 892 893 |
|
729/* ieee80211_iface.c */ 730int ieee80211_if_add(struct net_device *dev, const char *name, | 894/* ieee80211_iface.c */ 895int ieee80211_if_add(struct net_device *dev, const char *name, |
731 struct net_device **new_dev, int type); | 896 struct net_device **new_dev, int type, 897 struct vif_params *params); |
732void ieee80211_if_set_type(struct net_device *dev, int type); 733void ieee80211_if_reinit(struct net_device *dev); 734void __ieee80211_if_del(struct ieee80211_local *local, 735 struct ieee80211_sub_if_data *sdata); 736int ieee80211_if_remove(struct net_device *dev, const char *name, int id); 737void ieee80211_if_free(struct net_device *dev); 738void ieee80211_if_sdata_init(struct ieee80211_sub_if_data *sdata); 739 --- 19 unchanged lines hidden --- | 898void ieee80211_if_set_type(struct net_device *dev, int type); 899void ieee80211_if_reinit(struct net_device *dev); 900void __ieee80211_if_del(struct ieee80211_local *local, 901 struct ieee80211_sub_if_data *sdata); 902int ieee80211_if_remove(struct net_device *dev, const char *name, int id); 903void ieee80211_if_free(struct net_device *dev); 904void ieee80211_if_sdata_init(struct ieee80211_sub_if_data *sdata); 905 --- 19 unchanged lines hidden --- |