~ubuntu-branches/ubuntu/trusty/linux-linaro-omap/trusty

« back to all changes in this revision

Viewing changes to include/net/cfg80211.h

  • Committer: Package Import Robot
  • Author(s): John Rigby, John Rigby
  • Date: 2011-09-26 10:44:23 UTC
  • Revision ID: package-import@ubuntu.com-20110926104423-57i0gl3v99b3lkfg
Tags: 3.0.0-1007.9
[ John Rigby ]

Enable crypto modules and remove crypto-modules from
exclude-module files
LP: #826021

Show diffs side-by-side

added added

removed removed

Lines of Context:
387
387
 * @listen_interval: listen interval or -1 for no change
388
388
 * @aid: AID or zero for no change
389
389
 * @plink_action: plink action to take
 
390
 * @plink_state: set the peer link state for a station
390
391
 * @ht_capa: HT capabilities of station
391
392
 */
392
393
struct station_parameters {
397
398
        u16 aid;
398
399
        u8 supported_rates_len;
399
400
        u8 plink_action;
 
401
        u8 plink_state;
400
402
        struct ieee80211_ht_cap *ht_capa;
401
403
};
402
404
 
422
424
 * @STATION_INFO_RX_DROP_MISC: @rx_dropped_misc filled
423
425
 * @STATION_INFO_SIGNAL_AVG: @signal_avg filled
424
426
 * @STATION_INFO_RX_BITRATE: @rxrate fields are filled
 
427
 * @STATION_INFO_BSS_PARAM: @bss_param filled
 
428
 * @STATION_INFO_CONNECTED_TIME: @connected_time filled
425
429
 */
426
430
enum station_info_flags {
427
431
        STATION_INFO_INACTIVE_TIME      = 1<<0,
439
443
        STATION_INFO_RX_DROP_MISC       = 1<<12,
440
444
        STATION_INFO_SIGNAL_AVG         = 1<<13,
441
445
        STATION_INFO_RX_BITRATE         = 1<<14,
 
446
        STATION_INFO_BSS_PARAM          = 1<<15,
 
447
        STATION_INFO_CONNECTED_TIME     = 1<<16
442
448
};
443
449
 
444
450
/**
473
479
};
474
480
 
475
481
/**
 
482
 * enum station_info_rate_flags - bitrate info flags
 
483
 *
 
484
 * Used by the driver to indicate the specific rate transmission
 
485
 * type for 802.11n transmissions.
 
486
 *
 
487
 * @BSS_PARAM_FLAGS_CTS_PROT: whether CTS protection is enabled
 
488
 * @BSS_PARAM_FLAGS_SHORT_PREAMBLE: whether short preamble is enabled
 
489
 * @BSS_PARAM_FLAGS_SHORT_SLOT_TIME: whether short slot time is enabled
 
490
 */
 
491
enum bss_param_flags {
 
492
        BSS_PARAM_FLAGS_CTS_PROT        = 1<<0,
 
493
        BSS_PARAM_FLAGS_SHORT_PREAMBLE  = 1<<1,
 
494
        BSS_PARAM_FLAGS_SHORT_SLOT_TIME = 1<<2,
 
495
};
 
496
 
 
497
/**
 
498
 * struct sta_bss_parameters - BSS parameters for the attached station
 
499
 *
 
500
 * Information about the currently associated BSS
 
501
 *
 
502
 * @flags: bitflag of flags from &enum bss_param_flags
 
503
 * @dtim_period: DTIM period for the BSS
 
504
 * @beacon_interval: beacon interval
 
505
 */
 
506
struct sta_bss_parameters {
 
507
        u8 flags;
 
508
        u8 dtim_period;
 
509
        u16 beacon_interval;
 
510
};
 
511
 
 
512
/**
476
513
 * struct station_info - station information
477
514
 *
478
515
 * Station information filled by driver for get_station() and dump_station.
479
516
 *
480
517
 * @filled: bitflag of flags from &enum station_info_flags
 
518
 * @connected_time: time(in secs) since a station is last connected
481
519
 * @inactive_time: time since last station activity (tx/rx) in milliseconds
482
520
 * @rx_bytes: bytes received from this station
483
521
 * @tx_bytes: bytes transmitted to this station
493
531
 * @tx_retries: cumulative retry counts
494
532
 * @tx_failed: number of failed transmissions (retries exceeded, no ACK)
495
533
 * @rx_dropped_misc:  Dropped for un-specified reason.
 
534
 * @bss_param: current BSS parameters
496
535
 * @generation: generation number for nl80211 dumps.
497
536
 *      This number should increase every time the list of stations
498
537
 *      changes, i.e. when a station is added or removed, so that
500
539
 */
501
540
struct station_info {
502
541
        u32 filled;
 
542
        u32 connected_time;
503
543
        u32 inactive_time;
504
544
        u32 rx_bytes;
505
545
        u32 tx_bytes;
515
555
        u32 tx_retries;
516
556
        u32 tx_failed;
517
557
        u32 rx_dropped_misc;
 
558
        struct sta_bss_parameters bss_param;
518
559
 
519
560
        int generation;
520
561
};
655
696
 * @mesh_id_len: length of the mesh ID, at least 1 and at most 32 bytes
656
697
 * @path_sel_proto: which path selection protocol to use
657
698
 * @path_metric: which metric to use
658
 
 * @vendor_ie: vendor information elements (optional)
659
 
 * @vendor_ie_len: length of vendor information elements
 
699
 * @ie: vendor information elements (optional)
 
700
 * @ie_len: length of vendor information elements
 
701
 * @is_authenticated: this mesh requires authentication
 
702
 * @is_secure: this mesh uses security
660
703
 *
661
704
 * These parameters are fixed when the mesh is created.
662
705
 */
665
708
        u8 mesh_id_len;
666
709
        u8  path_sel_proto;
667
710
        u8  path_metric;
668
 
        const u8 *vendor_ie;
669
 
        u8 vendor_ie_len;
 
711
        const u8 *ie;
 
712
        u8 ie_len;
 
713
        bool is_authenticated;
 
714
        bool is_secure;
670
715
};
671
716
 
672
717
/**
753
798
};
754
799
 
755
800
/**
 
801
 * struct cfg80211_sched_scan_request - scheduled scan request description
 
802
 *
 
803
 * @ssids: SSIDs to scan for (passed in the probe_reqs in active scans)
 
804
 * @n_ssids: number of SSIDs
 
805
 * @n_channels: total number of channels to scan
 
806
 * @interval: interval between each scheduled scan cycle
 
807
 * @ie: optional information element(s) to add into Probe Request or %NULL
 
808
 * @ie_len: length of ie in octets
 
809
 * @wiphy: the wiphy this was for
 
810
 * @dev: the interface
 
811
 * @channels: channels to scan
 
812
 */
 
813
struct cfg80211_sched_scan_request {
 
814
        struct cfg80211_ssid *ssids;
 
815
        int n_ssids;
 
816
        u32 n_channels;
 
817
        u32 interval;
 
818
        const u8 *ie;
 
819
        size_t ie_len;
 
820
 
 
821
        /* internal */
 
822
        struct wiphy *wiphy;
 
823
        struct net_device *dev;
 
824
 
 
825
        /* keep last */
 
826
        struct ieee80211_channel *channels[0];
 
827
};
 
828
 
 
829
/**
756
830
 * enum cfg80211_signal_type - signal type
757
831
 *
758
832
 * @CFG80211_SIGNAL_TYPE_NONE: no signal strength information available
1048
1122
};
1049
1123
 
1050
1124
/**
 
1125
 * struct cfg80211_wowlan_trig_pkt_pattern - packet pattern
 
1126
 * @mask: bitmask where to match pattern and where to ignore bytes,
 
1127
 *      one bit per byte, in same format as nl80211
 
1128
 * @pattern: bytes to match where bitmask is 1
 
1129
 * @pattern_len: length of pattern (in bytes)
 
1130
 *
 
1131
 * Internal note: @mask and @pattern are allocated in one chunk of
 
1132
 * memory, free @mask only!
 
1133
 */
 
1134
struct cfg80211_wowlan_trig_pkt_pattern {
 
1135
        u8 *mask, *pattern;
 
1136
        int pattern_len;
 
1137
};
 
1138
 
 
1139
/**
 
1140
 * struct cfg80211_wowlan - Wake on Wireless-LAN support info
 
1141
 *
 
1142
 * This structure defines the enabled WoWLAN triggers for the device.
 
1143
 * @any: wake up on any activity -- special trigger if device continues
 
1144
 *      operating as normal during suspend
 
1145
 * @disconnect: wake up if getting disconnected
 
1146
 * @magic_pkt: wake up on receiving magic packet
 
1147
 * @patterns: wake up on receiving packet matching a pattern
 
1148
 * @n_patterns: number of patterns
 
1149
 */
 
1150
struct cfg80211_wowlan {
 
1151
        bool any, disconnect, magic_pkt;
 
1152
        struct cfg80211_wowlan_trig_pkt_pattern *patterns;
 
1153
        int n_patterns;
 
1154
};
 
1155
 
 
1156
/**
1051
1157
 * struct cfg80211_ops - backend description for wireless configuration
1052
1158
 *
1053
1159
 * This struct is registered by fullmac card drivers and/or wireless stacks
1060
1166
 * wireless extensions but this is subject to reevaluation as soon as this
1061
1167
 * code is used more widely and we have a first user without wext.
1062
1168
 *
1063
 
 * @suspend: wiphy device needs to be suspended
 
1169
 * @suspend: wiphy device needs to be suspended. The variable @wow will
 
1170
 *      be %NULL or contain the enabled Wake-on-Wireless triggers that are
 
1171
 *      configured for the device.
1064
1172
 * @resume: wiphy device needs to be resumed
1065
1173
 *
1066
1174
 * @add_virtual_intf: create a new virtual interface with the given name,
1187
1295
 * @set_power_mgmt: Configure WLAN power management. A timeout value of -1
1188
1296
 *      allows the driver to adjust the dynamic ps timeout value.
1189
1297
 * @set_cqm_rssi_config: Configure connection quality monitor RSSI threshold.
 
1298
 * @sched_scan_start: Tell the driver to start a scheduled scan.
 
1299
 * @sched_scan_stop: Tell the driver to stop an ongoing scheduled
 
1300
 *      scan.  The driver_initiated flag specifies whether the driver
 
1301
 *      itself has informed that the scan has stopped.
1190
1302
 *
1191
1303
 * @mgmt_frame_register: Notify driver that a management frame type was
1192
1304
 *      registered. Note that this callback may not sleep, and cannot run
1204
1316
 * @get_ringparam: Get tx and rx ring current and maximum sizes.
1205
1317
 */
1206
1318
struct cfg80211_ops {
1207
 
        int     (*suspend)(struct wiphy *wiphy);
 
1319
        int     (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow);
1208
1320
        int     (*resume)(struct wiphy *wiphy);
1209
1321
 
1210
1322
        struct net_device * (*add_virtual_intf)(struct wiphy *wiphy,
1373
1485
        int     (*set_ringparam)(struct wiphy *wiphy, u32 tx, u32 rx);
1374
1486
        void    (*get_ringparam)(struct wiphy *wiphy,
1375
1487
                                 u32 *tx, u32 *tx_max, u32 *rx, u32 *rx_max);
 
1488
 
 
1489
        int     (*sched_scan_start)(struct wiphy *wiphy,
 
1490
                                struct net_device *dev,
 
1491
                                struct cfg80211_sched_scan_request *request);
 
1492
        int     (*sched_scan_stop)(struct wiphy *wiphy, struct net_device *dev);
1376
1493
};
1377
1494
 
1378
1495
/*
1404
1521
 *      hints read the documenation for regulatory_hint_found_beacon()
1405
1522
 * @WIPHY_FLAG_NETNS_OK: if not set, do not allow changing the netns of this
1406
1523
 *      wiphy at all
 
1524
 * @WIPHY_FLAG_ENFORCE_COMBINATIONS: Set this flag to enforce interface
 
1525
 *      combinations for this device. This flag is used for backward
 
1526
 *      compatibility only until all drivers advertise combinations and
 
1527
 *      they will always be enforced.
1407
1528
 * @WIPHY_FLAG_PS_ON_BY_DEFAULT: if set to true, powersave will be enabled
1408
1529
 *      by default -- this flag will be set depending on the kernel's default
1409
1530
 *      on wiphy_new(), but can be changed by the driver if it has a good
1415
1536
 *      control port protocol ethertype. The device also honours the
1416
1537
 *      control_port_no_encrypt flag.
1417
1538
 * @WIPHY_FLAG_IBSS_RSN: The device supports IBSS RSN.
1418
 
 * @WIPHY_FLAG_SUPPORTS_SEPARATE_DEFAULT_KEYS: The device supports separate
1419
 
 *      unicast and multicast TX keys.
 
1539
 * @WIPHY_FLAG_MESH_AUTH: The device supports mesh authentication by routing
 
1540
 *      auth frames to userspace. See @NL80211_MESH_SETUP_USERSPACE_AUTH.
 
1541
 * @WIPHY_FLAG_SUPPORTS_SCHED_SCAN: The device supports scheduled scans.
1420
1542
 */
1421
1543
enum wiphy_flags {
1422
1544
        WIPHY_FLAG_CUSTOM_REGULATORY            = BIT(0),
1428
1550
        WIPHY_FLAG_4ADDR_STATION                = BIT(6),
1429
1551
        WIPHY_FLAG_CONTROL_PORT_PROTOCOL        = BIT(7),
1430
1552
        WIPHY_FLAG_IBSS_RSN                     = BIT(8),
1431
 
        WIPHY_FLAG_SUPPORTS_SEPARATE_DEFAULT_KEYS= BIT(9),
 
1553
        WIPHY_FLAG_MESH_AUTH                    = BIT(10),
 
1554
        WIPHY_FLAG_SUPPORTS_SCHED_SCAN          = BIT(11),
 
1555
        WIPHY_FLAG_ENFORCE_COMBINATIONS         = BIT(12),
 
1556
};
 
1557
 
 
1558
/**
 
1559
 * struct ieee80211_iface_limit - limit on certain interface types
 
1560
 * @max: maximum number of interfaces of these types
 
1561
 * @types: interface types (bits)
 
1562
 */
 
1563
struct ieee80211_iface_limit {
 
1564
        u16 max;
 
1565
        u16 types;
 
1566
};
 
1567
 
 
1568
/**
 
1569
 * struct ieee80211_iface_combination - possible interface combination
 
1570
 * @limits: limits for the given interface types
 
1571
 * @n_limits: number of limitations
 
1572
 * @num_different_channels: can use up to this many different channels
 
1573
 * @max_interfaces: maximum number of interfaces in total allowed in this
 
1574
 *      group
 
1575
 * @beacon_int_infra_match: In this combination, the beacon intervals
 
1576
 *      between infrastructure and AP types must match. This is required
 
1577
 *      only in special cases.
 
1578
 *
 
1579
 * These examples can be expressed as follows:
 
1580
 *
 
1581
 * Allow #STA <= 1, #AP <= 1, matching BI, channels = 1, 2 total:
 
1582
 *
 
1583
 *  struct ieee80211_iface_limit limits1[] = {
 
1584
 *      { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), },
 
1585
 *      { .max = 1, .types = BIT(NL80211_IFTYPE_AP}, },
 
1586
 *  };
 
1587
 *  struct ieee80211_iface_combination combination1 = {
 
1588
 *      .limits = limits1,
 
1589
 *      .n_limits = ARRAY_SIZE(limits1),
 
1590
 *      .max_interfaces = 2,
 
1591
 *      .beacon_int_infra_match = true,
 
1592
 *  };
 
1593
 *
 
1594
 *
 
1595
 * Allow #{AP, P2P-GO} <= 8, channels = 1, 8 total:
 
1596
 *
 
1597
 *  struct ieee80211_iface_limit limits2[] = {
 
1598
 *      { .max = 8, .types = BIT(NL80211_IFTYPE_AP) |
 
1599
 *                           BIT(NL80211_IFTYPE_P2P_GO), },
 
1600
 *  };
 
1601
 *  struct ieee80211_iface_combination combination2 = {
 
1602
 *      .limits = limits2,
 
1603
 *      .n_limits = ARRAY_SIZE(limits2),
 
1604
 *      .max_interfaces = 8,
 
1605
 *      .num_different_channels = 1,
 
1606
 *  };
 
1607
 *
 
1608
 *
 
1609
 * Allow #STA <= 1, #{P2P-client,P2P-GO} <= 3 on two channels, 4 total.
 
1610
 * This allows for an infrastructure connection and three P2P connections.
 
1611
 *
 
1612
 *  struct ieee80211_iface_limit limits3[] = {
 
1613
 *      { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), },
 
1614
 *      { .max = 3, .types = BIT(NL80211_IFTYPE_P2P_GO) |
 
1615
 *                           BIT(NL80211_IFTYPE_P2P_CLIENT), },
 
1616
 *  };
 
1617
 *  struct ieee80211_iface_combination combination3 = {
 
1618
 *      .limits = limits3,
 
1619
 *      .n_limits = ARRAY_SIZE(limits3),
 
1620
 *      .max_interfaces = 4,
 
1621
 *      .num_different_channels = 2,
 
1622
 *  };
 
1623
 */
 
1624
struct ieee80211_iface_combination {
 
1625
        const struct ieee80211_iface_limit *limits;
 
1626
        u32 num_different_channels;
 
1627
        u16 max_interfaces;
 
1628
        u8 n_limits;
 
1629
        bool beacon_int_infra_match;
1432
1630
};
1433
1631
 
1434
1632
struct mac_address {
1440
1638
};
1441
1639
 
1442
1640
/**
 
1641
 * enum wiphy_wowlan_support_flags - WoWLAN support flags
 
1642
 * @WIPHY_WOWLAN_ANY: supports wakeup for the special "any"
 
1643
 *      trigger that keeps the device operating as-is and
 
1644
 *      wakes up the host on any activity, for example a
 
1645
 *      received packet that passed filtering; note that the
 
1646
 *      packet should be preserved in that case
 
1647
 * @WIPHY_WOWLAN_MAGIC_PKT: supports wakeup on magic packet
 
1648
 *      (see nl80211.h)
 
1649
 * @WIPHY_WOWLAN_DISCONNECT: supports wakeup on disconnect
 
1650
 */
 
1651
enum wiphy_wowlan_support_flags {
 
1652
        WIPHY_WOWLAN_ANY        = BIT(0),
 
1653
        WIPHY_WOWLAN_MAGIC_PKT  = BIT(1),
 
1654
        WIPHY_WOWLAN_DISCONNECT = BIT(2),
 
1655
};
 
1656
 
 
1657
/**
 
1658
 * struct wiphy_wowlan_support - WoWLAN support data
 
1659
 * @flags: see &enum wiphy_wowlan_support_flags
 
1660
 * @n_patterns: number of supported wakeup patterns
 
1661
 *      (see nl80211.h for the pattern definition)
 
1662
 * @pattern_max_len: maximum length of each pattern
 
1663
 * @pattern_min_len: minimum length of each pattern
 
1664
 */
 
1665
struct wiphy_wowlan_support {
 
1666
        u32 flags;
 
1667
        int n_patterns;
 
1668
        int pattern_max_len;
 
1669
        int pattern_min_len;
 
1670
};
 
1671
 
 
1672
/**
1443
1673
 * struct wiphy - wireless hardware description
1444
1674
 * @reg_notifier: the driver's regulatory notification callback,
1445
1675
 *      note that if your driver uses wiphy_apply_custom_regulatory()
1476
1706
 * @priv: driver private data (sized according to wiphy_new() parameter)
1477
1707
 * @interface_modes: bitmask of interfaces types valid for this wiphy,
1478
1708
 *      must be set by driver
 
1709
 * @iface_combinations: Valid interface combinations array, should not
 
1710
 *      list single interface types.
 
1711
 * @n_iface_combinations: number of entries in @iface_combinations array.
 
1712
 * @software_iftypes: bitmask of software interface types, these are not
 
1713
 *      subject to any restrictions since they are purely managed in SW.
1479
1714
 * @flags: wiphy flags, see &enum wiphy_flags
1480
1715
 * @bss_priv_size: each BSS struct has private data allocated with it,
1481
1716
 *      this variable determines its size
1506
1741
 *
1507
1742
 * @max_remain_on_channel_duration: Maximum time a remain-on-channel operation
1508
1743
 *      may request, if implemented.
 
1744
 *
 
1745
 * @wowlan: WoWLAN support information
1509
1746
 */
1510
1747
struct wiphy {
1511
1748
        /* assign these fields before you register the wiphy */
1518
1755
 
1519
1756
        const struct ieee80211_txrx_stypes *mgmt_stypes;
1520
1757
 
 
1758
        const struct ieee80211_iface_combination *iface_combinations;
 
1759
        int n_iface_combinations;
 
1760
        u16 software_iftypes;
 
1761
 
1521
1762
        u16 n_addresses;
1522
1763
 
1523
1764
        /* Supported interface modes, OR together BIT(NL80211_IFTYPE_...) */
1543
1784
        char fw_version[ETHTOOL_BUSINFO_LEN];
1544
1785
        u32 hw_version;
1545
1786
 
 
1787
        struct wiphy_wowlan_support wowlan;
 
1788
 
1546
1789
        u16 max_remain_on_channel_duration;
1547
1790
 
1548
1791
        u8 max_num_pmkids;
1726
1969
 * @mgmt_registrations_lock: lock for the list
1727
1970
 * @mtx: mutex used to lock data in this struct
1728
1971
 * @cleanup_work: work struct used for cleanup that can't be done directly
 
1972
 * @beacon_interval: beacon interval used on this device for transmitting
 
1973
 *      beacons, 0 when not valid
1729
1974
 */
1730
1975
struct wireless_dev {
1731
1976
        struct wiphy *wiphy;
1766
2011
        bool ps;
1767
2012
        int ps_timeout;
1768
2013
 
 
2014
        int beacon_interval;
 
2015
 
1769
2016
#ifdef CONFIG_CFG80211_WEXT
1770
2017
        /* wext data */
1771
2018
        struct {
1991
2238
 * @addr: The device MAC address.
1992
2239
 * @iftype: The device interface type.
1993
2240
 * @extra_headroom: The hardware extra headroom for SKBs in the @list.
 
2241
 * @has_80211_header: Set it true if SKB is with IEEE 802.11 header.
1994
2242
 */
1995
2243
void ieee80211_amsdu_to_8023s(struct sk_buff *skb, struct sk_buff_head *list,
1996
2244
                              const u8 *addr, enum nl80211_iftype iftype,
1997
 
                              const unsigned int extra_headroom);
 
2245
                              const unsigned int extra_headroom,
 
2246
                              bool has_80211_header);
1998
2247
 
1999
2248
/**
2000
2249
 * cfg80211_classify8021d - determine the 802.1p/1d tag for a data frame
2214
2463
void cfg80211_scan_done(struct cfg80211_scan_request *request, bool aborted);
2215
2464
 
2216
2465
/**
 
2466
 * cfg80211_sched_scan_results - notify that new scan results are available
 
2467
 *
 
2468
 * @wiphy: the wiphy which got scheduled scan results
 
2469
 */
 
2470
void cfg80211_sched_scan_results(struct wiphy *wiphy);
 
2471
 
 
2472
/**
 
2473
 * cfg80211_sched_scan_stopped - notify that the scheduled scan has stopped
 
2474
 *
 
2475
 * @wiphy: the wiphy on which the scheduled scan stopped
 
2476
 *
 
2477
 * The driver can call this function to inform cfg80211 that the
 
2478
 * scheduled scan had to be stopped, for whatever reason.  The driver
 
2479
 * is then called back via the sched_scan_stop operation when done.
 
2480
 */
 
2481
void cfg80211_sched_scan_stopped(struct wiphy *wiphy);
 
2482
 
 
2483
/**
2217
2484
 * cfg80211_inform_bss_frame - inform cfg80211 of a received BSS frame
2218
2485
 *
2219
2486
 * @wiphy: the wiphy reporting the BSS
2421
2688
 * @dev: network device
2422
2689
 * @addr: The source MAC address of the frame
2423
2690
 * @key_type: The key type that the received frame used
2424
 
 * @key_id: Key identifier (0..3)
 
2691
 * @key_id: Key identifier (0..3). Can be -1 if missing.
2425
2692
 * @tsc: The TSC value of the frame that generated the MIC failure (6 octets)
2426
2693
 * @gfp: allocation flags
2427
2694
 *
2450
2717
void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid, gfp_t gfp);
2451
2718
 
2452
2719
/**
 
2720
 * cfg80211_notify_new_candidate - notify cfg80211 of a new mesh peer candidate
 
2721
 *
 
2722
 * @dev: network device
 
2723
 * @macaddr: the MAC address of the new candidate
 
2724
 * @ie: information elements advertised by the peer candidate
 
2725
 * @ie_len: lenght of the information elements buffer
 
2726
 * @gfp: allocation flags
 
2727
 *
 
2728
 * This function notifies cfg80211 that the mesh peer candidate has been
 
2729
 * detected, most likely via a beacon or, less likely, via a probe response.
 
2730
 * cfg80211 then sends a notification to userspace.
 
2731
 */
 
2732
void cfg80211_notify_new_peer_candidate(struct net_device *dev,
 
2733
                const u8 *macaddr, const u8 *ie, u8 ie_len, gfp_t gfp);
 
2734
 
 
2735
/**
2453
2736
 * DOC: RFkill integration
2454
2737
 *
2455
2738
 * RFkill integration in cfg80211 is almost invisible to drivers,
2596
2879
 * cfg80211_roamed - notify cfg80211 of roaming
2597
2880
 *
2598
2881
 * @dev: network device
 
2882
 * @channel: the channel of the new AP
2599
2883
 * @bssid: the BSSID of the new AP
2600
2884
 * @req_ie: association request IEs (maybe be %NULL)
2601
2885
 * @req_ie_len: association request IEs length
2606
2890
 * It should be called by the underlying driver whenever it roamed
2607
2891
 * from one AP to another while connected.
2608
2892
 */
2609
 
void cfg80211_roamed(struct net_device *dev, const u8 *bssid,
 
2893
void cfg80211_roamed(struct net_device *dev,
 
2894
                     struct ieee80211_channel *channel,
 
2895
                     const u8 *bssid,
2610
2896
                     const u8 *req_ie, size_t req_ie_len,
2611
2897
                     const u8 *resp_ie, size_t resp_ie_len, gfp_t gfp);
2612
2898
 
2667
2953
                      struct station_info *sinfo, gfp_t gfp);
2668
2954
 
2669
2955
/**
 
2956
 * cfg80211_del_sta - notify userspace about deletion of a station
 
2957
 *
 
2958
 * @dev: the netdev
 
2959
 * @mac_addr: the station's address
 
2960
 * @gfp: allocation flags
 
2961
 */
 
2962
void cfg80211_del_sta(struct net_device *dev, const u8 *mac_addr, gfp_t gfp);
 
2963
 
 
2964
/**
2670
2965
 * cfg80211_rx_mgmt - notification of received, unprocessed management frame
2671
2966
 * @dev: network device
2672
2967
 * @freq: Frequency on which the frame was received in MHz