2589
2378
/* ieee80211.c */
2590
extern void free_ieee80211(struct net_device *dev);
2591
extern struct net_device *alloc_ieee80211(int sizeof_priv);
2379
void free_ieee80211(struct net_device *dev);
2380
struct net_device *alloc_ieee80211(int sizeof_priv);
2593
extern int ieee80211_set_encryption(struct ieee80211_device *ieee);
2382
int ieee80211_set_encryption(struct ieee80211_device *ieee);
2595
2384
/* ieee80211_tx.c */
2597
extern int ieee80211_encrypt_fragment(
2386
int ieee80211_encrypt_fragment(
2598
2387
struct ieee80211_device *ieee,
2599
2388
struct sk_buff *frag,
2602
extern int ieee80211_rtl_xmit(struct sk_buff *skb,
2391
int ieee80211_rtl_xmit(struct sk_buff *skb,
2603
2392
struct net_device *dev);
2604
extern void ieee80211_txb_free(struct ieee80211_txb *);
2393
void ieee80211_txb_free(struct ieee80211_txb *);
2607
2396
/* ieee80211_rx.c */
2608
extern int ieee80211_rtl_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
2397
int ieee80211_rtl_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
2609
2398
struct ieee80211_rx_stats *rx_stats);
2610
extern void ieee80211_rx_mgt(struct ieee80211_device *ieee,
2399
void ieee80211_rx_mgt(struct ieee80211_device *ieee,
2611
2400
struct ieee80211_hdr_4addr *header,
2612
2401
struct ieee80211_rx_stats *stats);
2614
2403
/* ieee80211_wx.c */
2615
extern int ieee80211_wx_get_scan(struct ieee80211_device *ieee,
2404
int ieee80211_wx_get_scan(struct ieee80211_device *ieee,
2616
2405
struct iw_request_info *info,
2617
2406
union iwreq_data *wrqu, char *key);
2618
extern int ieee80211_wx_set_encode(struct ieee80211_device *ieee,
2619
struct iw_request_info *info,
2620
union iwreq_data *wrqu, char *key);
2621
extern int ieee80211_wx_get_encode(struct ieee80211_device *ieee,
2622
struct iw_request_info *info,
2623
union iwreq_data *wrqu, char *key);
2624
#if WIRELESS_EXT >= 18
2625
extern int ieee80211_wx_get_encode_ext(struct ieee80211_device *ieee,
2626
struct iw_request_info *info,
2627
union iwreq_data* wrqu, char *extra);
2628
extern int ieee80211_wx_set_encode_ext(struct ieee80211_device *ieee,
2629
struct iw_request_info *info,
2630
union iwreq_data* wrqu, char *extra);
2631
extern int ieee80211_wx_set_auth(struct ieee80211_device *ieee,
2407
int ieee80211_wx_set_encode(struct ieee80211_device *ieee,
2408
struct iw_request_info *info,
2409
union iwreq_data *wrqu, char *key);
2410
int ieee80211_wx_get_encode(struct ieee80211_device *ieee,
2411
struct iw_request_info *info,
2412
union iwreq_data *wrqu, char *key);
2413
int ieee80211_wx_get_encode_ext(struct ieee80211_device *ieee,
2414
struct iw_request_info *info,
2415
union iwreq_data* wrqu, char *extra);
2416
int ieee80211_wx_set_encode_ext(struct ieee80211_device *ieee,
2417
struct iw_request_info *info,
2418
union iwreq_data* wrqu, char *extra);
2419
int ieee80211_wx_set_auth(struct ieee80211_device *ieee,
2632
2420
struct iw_request_info *info,
2633
2421
struct iw_param *data, char *extra);
2634
extern int ieee80211_wx_set_mlme(struct ieee80211_device *ieee,
2422
int ieee80211_wx_set_mlme(struct ieee80211_device *ieee,
2635
2423
struct iw_request_info *info,
2636
2424
union iwreq_data *wrqu, char *extra);
2638
extern int ieee80211_wx_set_gen_ie(struct ieee80211_device *ieee, u8 *ie, size_t len);
2425
int ieee80211_wx_set_gen_ie(struct ieee80211_device *ieee, u8 *ie, size_t len);
2640
2427
/* ieee80211_softmac.c */
2641
extern short ieee80211_is_54g(struct ieee80211_network net);
2642
extern short ieee80211_is_shortslot(struct ieee80211_network net);
2643
extern int ieee80211_rx_frame_softmac(struct ieee80211_device *ieee, struct sk_buff *skb,
2428
short ieee80211_is_54g(struct ieee80211_network net);
2429
short ieee80211_is_shortslot(struct ieee80211_network net);
2430
int ieee80211_rx_frame_softmac(struct ieee80211_device *ieee, struct sk_buff *skb,
2644
2431
struct ieee80211_rx_stats *rx_stats, u16 type,
2646
extern void ieee80211_softmac_new_net(struct ieee80211_device *ieee, struct ieee80211_network *net);
2433
void ieee80211_softmac_new_net(struct ieee80211_device *ieee, struct ieee80211_network *net);
2648
2435
void SendDisassociation(struct ieee80211_device *ieee, u8* asSta, u8 asRsn);
2649
extern void ieee80211_softmac_xmit(struct ieee80211_txb *txb, struct ieee80211_device *ieee);
2651
extern void ieee80211_stop_send_beacons(struct ieee80211_device *ieee);
2652
extern void notify_wx_assoc_event(struct ieee80211_device *ieee);
2653
extern void ieee80211_softmac_check_all_nets(struct ieee80211_device *ieee);
2654
extern void ieee80211_start_bss(struct ieee80211_device *ieee);
2655
extern void ieee80211_start_master_bss(struct ieee80211_device *ieee);
2656
extern void ieee80211_start_ibss(struct ieee80211_device *ieee);
2657
extern void ieee80211_softmac_init(struct ieee80211_device *ieee);
2658
extern void ieee80211_softmac_free(struct ieee80211_device *ieee);
2659
extern void ieee80211_associate_abort(struct ieee80211_device *ieee);
2660
extern void ieee80211_disassociate(struct ieee80211_device *ieee);
2661
extern void ieee80211_stop_scan(struct ieee80211_device *ieee);
2662
extern void ieee80211_start_scan_syncro(struct ieee80211_device *ieee);
2663
extern void ieee80211_check_all_nets(struct ieee80211_device *ieee);
2664
extern void ieee80211_start_protocol(struct ieee80211_device *ieee);
2665
extern void ieee80211_stop_protocol(struct ieee80211_device *ieee,u8 shutdown);
2666
extern void ieee80211_softmac_start_protocol(struct ieee80211_device *ieee);
2667
extern void ieee80211_softmac_stop_protocol(struct ieee80211_device *ieee,u8 shutdown);
2668
extern void ieee80211_reset_queue(struct ieee80211_device *ieee);
2669
extern void ieee80211_rtl_wake_queue(struct ieee80211_device *ieee);
2670
extern void ieee80211_rtl_stop_queue(struct ieee80211_device *ieee);
2671
extern struct sk_buff *ieee80211_get_beacon(struct ieee80211_device *ieee);
2672
extern void ieee80211_start_send_beacons(struct ieee80211_device *ieee);
2673
extern void ieee80211_stop_send_beacons(struct ieee80211_device *ieee);
2674
extern int ieee80211_wpa_supplicant_ioctl(struct ieee80211_device *ieee, struct iw_point *p);
2675
extern void notify_wx_assoc_event(struct ieee80211_device *ieee);
2676
extern void ieee80211_ps_tx_ack(struct ieee80211_device *ieee, short success);
2678
extern void softmac_mgmt_xmit(struct sk_buff *skb, struct ieee80211_device *ieee);
2436
void ieee80211_softmac_xmit(struct ieee80211_txb *txb, struct ieee80211_device *ieee);
2438
void ieee80211_stop_send_beacons(struct ieee80211_device *ieee);
2439
void notify_wx_assoc_event(struct ieee80211_device *ieee);
2440
void ieee80211_softmac_check_all_nets(struct ieee80211_device *ieee);
2441
void ieee80211_start_bss(struct ieee80211_device *ieee);
2442
void ieee80211_start_master_bss(struct ieee80211_device *ieee);
2443
void ieee80211_start_ibss(struct ieee80211_device *ieee);
2444
void ieee80211_softmac_init(struct ieee80211_device *ieee);
2445
void ieee80211_softmac_free(struct ieee80211_device *ieee);
2446
void ieee80211_associate_abort(struct ieee80211_device *ieee);
2447
void ieee80211_disassociate(struct ieee80211_device *ieee);
2448
void ieee80211_stop_scan(struct ieee80211_device *ieee);
2449
void ieee80211_start_scan_syncro(struct ieee80211_device *ieee);
2450
void ieee80211_check_all_nets(struct ieee80211_device *ieee);
2451
void ieee80211_start_protocol(struct ieee80211_device *ieee);
2452
void ieee80211_stop_protocol(struct ieee80211_device *ieee,u8 shutdown);
2453
void ieee80211_softmac_start_protocol(struct ieee80211_device *ieee);
2454
void ieee80211_softmac_stop_protocol(struct ieee80211_device *ieee,u8 shutdown);
2455
void ieee80211_reset_queue(struct ieee80211_device *ieee);
2456
void ieee80211_rtl_wake_queue(struct ieee80211_device *ieee);
2457
void ieee80211_rtl_stop_queue(struct ieee80211_device *ieee);
2458
struct sk_buff *ieee80211_get_beacon(struct ieee80211_device *ieee);
2459
void ieee80211_start_send_beacons(struct ieee80211_device *ieee);
2460
void ieee80211_stop_send_beacons(struct ieee80211_device *ieee);
2461
int ieee80211_wpa_supplicant_ioctl(struct ieee80211_device *ieee, struct iw_point *p);
2462
void notify_wx_assoc_event(struct ieee80211_device *ieee);
2463
void ieee80211_ps_tx_ack(struct ieee80211_device *ieee, short success);
2465
void softmac_mgmt_xmit(struct sk_buff *skb, struct ieee80211_device *ieee);
2680
2467
/* ieee80211_crypt_ccmp&tkip&wep.c */
2681
extern void ieee80211_tkip_null(void);
2682
extern void ieee80211_wep_null(void);
2683
extern void ieee80211_ccmp_null(void);
2468
void ieee80211_tkip_null(void);
2469
void ieee80211_wep_null(void);
2470
void ieee80211_ccmp_null(void);
2685
2472
/* ieee80211_softmac_wx.c */
2687
extern int ieee80211_wx_get_wap(struct ieee80211_device *ieee,
2474
int ieee80211_wx_get_wap(struct ieee80211_device *ieee,
2688
2475
struct iw_request_info *info,
2689
2476
union iwreq_data *wrqu, char *ext);
2691
extern int ieee80211_wx_set_wap(struct ieee80211_device *ieee,
2478
int ieee80211_wx_set_wap(struct ieee80211_device *ieee,
2692
2479
struct iw_request_info *info,
2693
2480
union iwreq_data *awrq,
2696
extern int ieee80211_wx_get_essid(struct ieee80211_device *ieee, struct iw_request_info *a,union iwreq_data *wrqu,char *b);
2698
extern int ieee80211_wx_set_rate(struct ieee80211_device *ieee,
2699
struct iw_request_info *info,
2700
union iwreq_data *wrqu, char *extra);
2702
extern int ieee80211_wx_get_rate(struct ieee80211_device *ieee,
2703
struct iw_request_info *info,
2704
union iwreq_data *wrqu, char *extra);
2706
extern int ieee80211_wx_set_mode(struct ieee80211_device *ieee, struct iw_request_info *a,
2707
union iwreq_data *wrqu, char *b);
2709
extern int ieee80211_wx_set_scan(struct ieee80211_device *ieee, struct iw_request_info *a,
2710
union iwreq_data *wrqu, char *b);
2712
extern int ieee80211_wx_set_essid(struct ieee80211_device *ieee,
2483
int ieee80211_wx_get_essid(struct ieee80211_device *ieee, struct iw_request_info *a,union iwreq_data *wrqu,char *b);
2485
int ieee80211_wx_set_rate(struct ieee80211_device *ieee,
2486
struct iw_request_info *info,
2487
union iwreq_data *wrqu, char *extra);
2489
int ieee80211_wx_get_rate(struct ieee80211_device *ieee,
2490
struct iw_request_info *info,
2491
union iwreq_data *wrqu, char *extra);
2493
int ieee80211_wx_set_mode(struct ieee80211_device *ieee, struct iw_request_info *a,
2494
union iwreq_data *wrqu, char *b);
2496
int ieee80211_wx_set_scan(struct ieee80211_device *ieee, struct iw_request_info *a,
2497
union iwreq_data *wrqu, char *b);
2499
int ieee80211_wx_set_essid(struct ieee80211_device *ieee,
2713
2500
struct iw_request_info *a,
2714
2501
union iwreq_data *wrqu, char *extra);
2716
extern int ieee80211_wx_get_mode(struct ieee80211_device *ieee, struct iw_request_info *a,
2717
union iwreq_data *wrqu, char *b);
2719
extern int ieee80211_wx_set_freq(struct ieee80211_device *ieee, struct iw_request_info *a,
2720
union iwreq_data *wrqu, char *b);
2722
extern int ieee80211_wx_get_freq(struct ieee80211_device *ieee, struct iw_request_info *a,
2723
union iwreq_data *wrqu, char *b);
2725
//extern void ieee80211_wx_sync_scan_wq(struct ieee80211_device *ieee);
2726
extern void ieee80211_wx_sync_scan_wq(struct work_struct *work);
2729
extern int ieee80211_wx_set_rawtx(struct ieee80211_device *ieee,
2503
int ieee80211_wx_get_mode(struct ieee80211_device *ieee, struct iw_request_info *a,
2504
union iwreq_data *wrqu, char *b);
2506
int ieee80211_wx_set_freq(struct ieee80211_device *ieee, struct iw_request_info *a,
2507
union iwreq_data *wrqu, char *b);
2509
int ieee80211_wx_get_freq(struct ieee80211_device *ieee, struct iw_request_info *a,
2510
union iwreq_data *wrqu, char *b);
2512
void ieee80211_wx_sync_scan_wq(struct work_struct *work);
2514
int ieee80211_wx_set_rawtx(struct ieee80211_device *ieee,
2730
2515
struct iw_request_info *info,
2731
2516
union iwreq_data *wrqu, char *extra);
2733
extern int ieee80211_wx_get_name(struct ieee80211_device *ieee,
2734
struct iw_request_info *info,
2735
union iwreq_data *wrqu, char *extra);
2737
extern int ieee80211_wx_set_power(struct ieee80211_device *ieee,
2738
struct iw_request_info *info,
2739
union iwreq_data *wrqu, char *extra);
2741
extern int ieee80211_wx_get_power(struct ieee80211_device *ieee,
2742
struct iw_request_info *info,
2743
union iwreq_data *wrqu, char *extra);
2745
extern int ieee80211_wx_set_rts(struct ieee80211_device *ieee,
2746
struct iw_request_info *info,
2747
union iwreq_data *wrqu, char *extra);
2749
extern int ieee80211_wx_get_rts(struct ieee80211_device *ieee,
2518
int ieee80211_wx_get_name(struct ieee80211_device *ieee,
2519
struct iw_request_info *info,
2520
union iwreq_data *wrqu, char *extra);
2522
int ieee80211_wx_set_power(struct ieee80211_device *ieee,
2523
struct iw_request_info *info,
2524
union iwreq_data *wrqu, char *extra);
2526
int ieee80211_wx_get_power(struct ieee80211_device *ieee,
2527
struct iw_request_info *info,
2528
union iwreq_data *wrqu, char *extra);
2530
int ieee80211_wx_set_rts(struct ieee80211_device *ieee,
2531
struct iw_request_info *info,
2532
union iwreq_data *wrqu, char *extra);
2534
int ieee80211_wx_get_rts(struct ieee80211_device *ieee,
2750
2535
struct iw_request_info *info,
2751
2536
union iwreq_data *wrqu, char *extra);
2753
#define MAX_RECEIVE_BUFFER_SIZE 9100 //
2754
extern void HTDebugHTCapability(u8* CapIE, u8* TitleString );
2755
extern void HTDebugHTInfo(u8* InfoIE, u8* TitleString);
2538
#define MAX_RECEIVE_BUFFER_SIZE 9100
2539
void HTDebugHTCapability(u8 *CapIE, u8 *TitleString );
2540
void HTDebugHTInfo(u8 *InfoIE, u8 *TitleString);
2757
void HTSetConnectBwMode(struct ieee80211_device* ieee, HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset);
2758
extern void HTUpdateDefaultSetting(struct ieee80211_device* ieee);
2759
extern void HTConstructCapabilityElement(struct ieee80211_device* ieee, u8* posHTCap, u8* len, u8 isEncrypt);
2760
extern void HTConstructInfoElement(struct ieee80211_device* ieee, u8* posHTInfo, u8* len, u8 isEncrypt);
2761
extern void HTConstructRT2RTAggElement(struct ieee80211_device* ieee, u8* posRT2RTAgg, u8* len);
2762
extern void HTOnAssocRsp(struct ieee80211_device *ieee);
2763
extern void HTInitializeHTInfo(struct ieee80211_device* ieee);
2764
extern void HTInitializeBssDesc(PBSS_HT pBssHT);
2765
extern void HTResetSelfAndSavePeerSetting(struct ieee80211_device* ieee, struct ieee80211_network * pNetwork);
2766
extern void HTUpdateSelfAndPeerSetting(struct ieee80211_device* ieee, struct ieee80211_network * pNetwork);
2767
extern u8 HTGetHighestMCSRate(struct ieee80211_device* ieee, u8* pMCSRateSet, u8* pMCSFilter);
2542
void HTSetConnectBwMode(struct ieee80211_device *ieee, HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset);
2543
void HTUpdateDefaultSetting(struct ieee80211_device *ieee);
2544
void HTConstructCapabilityElement(struct ieee80211_device *ieee, u8 *posHTCap, u8 *len, u8 isEncrypt);
2545
void HTConstructInfoElement(struct ieee80211_device *ieee, u8 *posHTInfo, u8 *len, u8 isEncrypt);
2546
void HTConstructRT2RTAggElement(struct ieee80211_device *ieee, u8 *posRT2RTAgg, u8 *len);
2547
void HTOnAssocRsp(struct ieee80211_device *ieee);
2548
void HTInitializeHTInfo(struct ieee80211_device *ieee);
2549
void HTInitializeBssDesc(PBSS_HT pBssHT);
2550
void HTResetSelfAndSavePeerSetting(struct ieee80211_device *ieee, struct ieee80211_network *pNetwork);
2551
void HTUpdateSelfAndPeerSetting(struct ieee80211_device *ieee, struct ieee80211_network *pNetwork);
2552
u8 HTGetHighestMCSRate(struct ieee80211_device *ieee, u8 *pMCSRateSet, u8 *pMCSFilter);
2768
2553
extern u8 MCS_FILTER_ALL[];
2769
2554
extern u16 MCS_DATA_RATE[2][2][77] ;
2770
extern u8 HTCCheck(struct ieee80211_device* ieee, u8* pFrame);
2771
//extern void HTSetConnectBwModeCallback(unsigned long data);
2772
extern void HTResetIOTSetting(PRT_HIGH_THROUGHPUT pHTInfo);
2773
extern bool IsHTHalfNmodeAPs(struct ieee80211_device* ieee);
2774
extern u16 HTHalfMcsToDataRate(struct ieee80211_device* ieee, u8 nMcsRate);
2775
extern u16 HTMcsToDataRate( struct ieee80211_device* ieee, u8 nMcsRate);
2776
extern u16 TxCountToDataRate( struct ieee80211_device* ieee, u8 nDataRate);
2777
//function in BAPROC.c
2778
extern int ieee80211_rx_ADDBAReq( struct ieee80211_device* ieee, struct sk_buff *skb);
2779
extern int ieee80211_rx_ADDBARsp( struct ieee80211_device* ieee, struct sk_buff *skb);
2780
extern int ieee80211_rx_DELBA(struct ieee80211_device* ieee,struct sk_buff *skb);
2781
extern void TsInitAddBA( struct ieee80211_device* ieee, PTX_TS_RECORD pTS, u8 Policy, u8 bOverwritePending);
2782
extern void TsInitDelBA( struct ieee80211_device* ieee, PTS_COMMON_INFO pTsCommonInfo, TR_SELECT TxRxSelect);
2783
extern void BaSetupTimeOut(unsigned long data);
2784
extern void TxBaInactTimeout(unsigned long data);
2785
extern void RxBaInactTimeout(unsigned long data);
2786
extern void ResetBaEntry( PBA_RECORD pBA);
2556
u8 HTCCheck(struct ieee80211_device *ieee, u8 *pFrame);
2557
void HTResetIOTSetting(PRT_HIGH_THROUGHPUT pHTInfo);
2558
bool IsHTHalfNmodeAPs(struct ieee80211_device *ieee);
2559
u16 HTHalfMcsToDataRate(struct ieee80211_device *ieee, u8 nMcsRate);
2560
u16 HTMcsToDataRate( struct ieee80211_device *ieee, u8 nMcsRate);
2561
u16 TxCountToDataRate( struct ieee80211_device *ieee, u8 nDataRate);
2562
int ieee80211_rx_ADDBAReq( struct ieee80211_device *ieee, struct sk_buff *skb);
2563
int ieee80211_rx_ADDBARsp( struct ieee80211_device *ieee, struct sk_buff *skb);
2564
int ieee80211_rx_DELBA(struct ieee80211_device *ieee, struct sk_buff *skb);
2565
void TsInitAddBA( struct ieee80211_device *ieee, PTX_TS_RECORD pTS, u8 Policy, u8 bOverwritePending);
2566
void TsInitDelBA( struct ieee80211_device *ieee, PTS_COMMON_INFO pTsCommonInfo, TR_SELECT TxRxSelect);
2567
void BaSetupTimeOut(unsigned long data);
2568
void TxBaInactTimeout(unsigned long data);
2569
void RxBaInactTimeout(unsigned long data);
2570
void ResetBaEntry( PBA_RECORD pBA);
2787
2571
//function in TS.c
2789
2573
struct ieee80211_device* ieee,
2790
2574
PTS_COMMON_INFO *ppTS,