cfg80211: 802.11p OCB mode handling
This patch adds new iface type (NL80211_IFTYPE_OCB) representing the OCB (Outside the Context of a BSS) mode. When establishing a connection to the network a cfg80211_join_ocb function is called (particular nl80211_command is added as well). A mandatory parameters during the ocb_join operation are 'center frequency' and 'channel width (5/10 MHz)'. Changes done in mac80211 are minimal possible required to avoid many warnings (warning: enumeration value 'NL80211_IFTYPE_OCB' not handled in switch) during compilation. Full functionality (where needed) is added in the following patch. Signed-off-by: Rostislav Lisovy <rostislav.lisovy@fel.cvut.cz> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:

committed by
Johannes Berg

parent
5b3dc42b1b
commit
6e0bd6c35b
@@ -1358,6 +1358,16 @@ struct mesh_setup {
|
||||
u32 basic_rates;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ocb_setup - 802.11p OCB mode setup configuration
|
||||
* @chandef: defines the channel to use
|
||||
*
|
||||
* These parameters are fixed when connecting to the network
|
||||
*/
|
||||
struct ocb_setup {
|
||||
struct cfg80211_chan_def chandef;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ieee80211_txq_params - TX queue parameters
|
||||
* @ac: AC identifier
|
||||
@@ -2352,6 +2362,11 @@ struct cfg80211_qos_map {
|
||||
* with the peer followed by immediate teardown when the addition is later
|
||||
* rejected)
|
||||
* @del_tx_ts: remove an existing TX TS
|
||||
*
|
||||
* @join_ocb: join the OCB network with the specified parameters
|
||||
* (invoked with the wireless_dev mutex held)
|
||||
* @leave_ocb: leave the current OCB network
|
||||
* (invoked with the wireless_dev mutex held)
|
||||
*/
|
||||
struct cfg80211_ops {
|
||||
int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow);
|
||||
@@ -2433,6 +2448,10 @@ struct cfg80211_ops {
|
||||
const struct mesh_setup *setup);
|
||||
int (*leave_mesh)(struct wiphy *wiphy, struct net_device *dev);
|
||||
|
||||
int (*join_ocb)(struct wiphy *wiphy, struct net_device *dev,
|
||||
struct ocb_setup *setup);
|
||||
int (*leave_ocb)(struct wiphy *wiphy, struct net_device *dev);
|
||||
|
||||
int (*change_bss)(struct wiphy *wiphy, struct net_device *dev,
|
||||
struct bss_parameters *params);
|
||||
|
||||
|
Reference in New Issue
Block a user