other versions
STRUCT IEEE80211_IFA(9) | Device registration | STRUCT IEEE80211_IFA(9) |
NAME¶
struct_ieee80211_iface_combination - possible interface combination
SYNOPSIS¶
struct ieee80211_iface_combination {
const struct ieee80211_iface_limit * limits;
u32 num_different_channels;
u16 max_interfaces;
u8 n_limits;
bool beacon_int_infra_match;
u8 radar_detect_widths;
u8 radar_detect_regions; };
MEMBERS¶
limits
limits for the given interface types
num_different_channels
can use up to this many different channels
max_interfaces
maximum number of interfaces in total allowed in this
group
n_limits
number of limitations
beacon_int_infra_match
In this combination, the beacon intervals between
infrastructure and AP types must match. This is required only in special
cases.
radar_detect_widths
bitmap of channel widths supported for radar
detection
radar_detect_regions
bitmap of regions supported for radar detection
DESCRIPTION¶
With this structure the driver can describe which interface combinations it supports concurrently.
EXAMPLES¶
1. Allow #STA <= 1, #AP <= 1, matching BI, channels = 1, 2 total:
struct ieee80211_iface_limit limits1[] = {
{ .max = 1, .types = BIT(NL80211_IFTYPE_STATION), },
{ .max = 1, .types = BIT(NL80211_IFTYPE_AP}, },
};
struct ieee80211_iface_combination combination1 = {
.limits = limits1,
.n_limits = ARRAY_SIZE(limits1),
.max_interfaces = 2,
.beacon_int_infra_match = true,
};
2. Allow #{AP, P2P-GO} <= 8, channels = 1, 8 total:
struct ieee80211_iface_limit limits2[] = {
{ .max = 8, .types = BIT(NL80211_IFTYPE_AP) |
BIT(NL80211_IFTYPE_P2P_GO), },
};
struct ieee80211_iface_combination combination2 = {
.limits = limits2,
.n_limits = ARRAY_SIZE(limits2),
.max_interfaces = 8,
.num_different_channels = 1,
};
3. Allow #STA <= 1, #{P2P-client,P2P-GO} <= 3 on two channels, 4 total.
This allows for an infrastructure connection and three P2P connections.
struct ieee80211_iface_limit limits3[] = {
{ .max = 1, .types = BIT(NL80211_IFTYPE_STATION), },
{ .max = 3, .types = BIT(NL80211_IFTYPE_P2P_GO) |
BIT(NL80211_IFTYPE_P2P_CLIENT), },
};
struct ieee80211_iface_combination combination3 = {
.limits = limits3,
.n_limits = ARRAY_SIZE(limits3),
.max_interfaces = 4,
.num_different_channels = 2,
};
AUTHOR¶
Johannes Berg <johannes@sipsolutions.net>
Author.
COPYRIGHT¶
January 2017 | Kernel Hackers Manual 4.8. |