]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/net/cfg80211.h
netns xfrm: per-netns km_waitq
[linux-2.6-omap-h63xx.git] / include / net / cfg80211.h
index 0e85ec39b6380de904efe8c2ac0c89b3cb6f12e0..1d57835d73f2d3d7c262c643a41e2b571f49fe4f 100644 (file)
@@ -280,11 +280,16 @@ struct mpath_info {
  *     (0 = no, 1 = yes, -1 = do not change)
  * @use_short_slot_time: Whether the use of short slot time is allowed
  *     (0 = no, 1 = yes, -1 = do not change)
+ * @basic_rates: basic rates in IEEE 802.11 format
+ *     (or NULL for no change)
+ * @basic_rates_len: number of basic rates
  */
 struct bss_parameters {
        int use_cts_prot;
        int use_short_preamble;
        int use_short_slot_time;
+       u8 *basic_rates;
+       u8 basic_rates_len;
 };
 
 /**
@@ -331,22 +336,59 @@ struct ieee80211_regdomain {
        struct ieee80211_reg_rule reg_rules[];
 };
 
-#define MHZ_TO_KHZ(freq) (freq * 1000)
-#define KHZ_TO_MHZ(freq) (freq / 1000)
-#define DBI_TO_MBI(gain) (gain * 100)
-#define MBI_TO_DBI(gain) (gain / 100)
-#define DBM_TO_MBM(gain) (gain * 100)
-#define MBM_TO_DBM(gain) (gain / 100)
+#define MHZ_TO_KHZ(freq) ((freq) * 1000)
+#define KHZ_TO_MHZ(freq) ((freq) / 1000)
+#define DBI_TO_MBI(gain) ((gain) * 100)
+#define MBI_TO_DBI(gain) ((gain) / 100)
+#define DBM_TO_MBM(gain) ((gain) * 100)
+#define MBM_TO_DBM(gain) ((gain) / 100)
 
 #define REG_RULE(start, end, bw, gain, eirp, reg_flags) { \
-       .freq_range.start_freq_khz = (start) * 1000, \
-       .freq_range.end_freq_khz = (end) * 1000, \
-       .freq_range.max_bandwidth_khz = (bw) * 1000, \
-       .power_rule.max_antenna_gain = (gain) * 100, \
-       .power_rule.max_eirp = (eirp) * 100, \
+       .freq_range.start_freq_khz = MHZ_TO_KHZ(start), \
+       .freq_range.end_freq_khz = MHZ_TO_KHZ(end), \
+       .freq_range.max_bandwidth_khz = MHZ_TO_KHZ(bw), \
+       .power_rule.max_antenna_gain = DBI_TO_MBI(gain), \
+       .power_rule.max_eirp = DBM_TO_MBM(eirp), \
        .flags = reg_flags, \
        }
 
+struct mesh_config {
+       /* Timeouts in ms */
+       /* Mesh plink management parameters */
+       u16 dot11MeshRetryTimeout;
+       u16 dot11MeshConfirmTimeout;
+       u16 dot11MeshHoldingTimeout;
+       u16 dot11MeshMaxPeerLinks;
+       u8  dot11MeshMaxRetries;
+       u8  dot11MeshTTL;
+       bool auto_open_plinks;
+       /* HWMP parameters */
+       u8  dot11MeshHWMPmaxPREQretries;
+       u32 path_refresh_time;
+       u16 min_discovery_timeout;
+       u32 dot11MeshHWMPactivePathTimeout;
+       u16 dot11MeshHWMPpreqMinInterval;
+       u16 dot11MeshHWMPnetDiameterTraversalTime;
+};
+
+/**
+ * struct ieee80211_txq_params - TX queue parameters
+ * @queue: TX queue identifier (NL80211_TXQ_Q_*)
+ * @txop: Maximum burst time in units of 32 usecs, 0 meaning disabled
+ * @cwmin: Minimum contention window [a value of the form 2^n-1 in the range
+ *     1..32767]
+ * @cwmax: Maximum contention window [a value of the form 2^n-1 in the range
+ *     1..32767]
+ * @aifs: Arbitration interframe space [0..255]
+ */
+struct ieee80211_txq_params {
+       enum nl80211_txq_q queue;
+       u16 txop;
+       u16 cwmin;
+       u16 cwmax;
+       u8 aifs;
+};
+
 /* from net/wireless.h */
 struct wiphy;
 
@@ -397,9 +439,17 @@ struct wiphy;
  *
  * @change_station: Modify a given station.
  *
+ * @get_mesh_params: Put the current mesh parameters into *params
+ *
+ * @set_mesh_params: Set mesh parameters.
+ *     The mask is a bitfield which tells us which parameters to
+ *     set, and which to leave alone.
+ *
  * @set_mesh_cfg: set mesh parameters (by now, just mesh id)
  *
  * @change_bss: Modify parameters for a given BSS.
+ *
+ * @set_txq_params: Set TX queue parameters
  */
 struct cfg80211_ops {
        int     (*add_virtual_intf)(struct wiphy *wiphy, char *name,
@@ -452,9 +502,17 @@ struct cfg80211_ops {
        int     (*dump_mpath)(struct wiphy *wiphy, struct net_device *dev,
                               int idx, u8 *dst, u8 *next_hop,
                               struct mpath_info *pinfo);
-
+       int     (*get_mesh_params)(struct wiphy *wiphy,
+                               struct net_device *dev,
+                               struct mesh_config *conf);
+       int     (*set_mesh_params)(struct wiphy *wiphy,
+                               struct net_device *dev,
+                               const struct mesh_config *nconf, u32 mask);
        int     (*change_bss)(struct wiphy *wiphy, struct net_device *dev,
                              struct bss_parameters *params);
+
+       int     (*set_txq_params)(struct wiphy *wiphy,
+                                 struct ieee80211_txq_params *params);
 };
 
 #endif /* __NET_CFG80211_H */