* [PATCH] iw: print capability info for 60GHz band @ 2012-12-17 11:32 Vladimir Kondratiev 2012-12-17 13:30 ` [PATCH] iw: print all capability bits Vladimir Kondratiev 2012-12-21 9:27 ` [PATCH] iw: print capability info for 60GHz band Johannes Berg 0 siblings, 2 replies; 5+ messages in thread From: Vladimir Kondratiev @ 2012-12-17 11:32 UTC (permalink / raw) To: Johannes Berg; +Cc: linux-wireless >From cc320b6c4433b63f3b1641646a49c4540e8954d2 Mon Sep 17 00:00:00 2001 From: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Date: Mon, 17 Dec 2012 13:31:36 +0200 Subject: [PATCH] iw: print capability info for 60GHz band On the 60GHz band, capability info defined different from .11n Detect 11ad band by frequency; print accordingly Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> --- scan.c | 105 ++++++++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 80 insertions(+), 25 deletions(-) diff --git a/scan.c b/scan.c index 05bad0b..295a51c 100644 --- a/scan.c +++ b/scan.c @@ -26,6 +26,21 @@ #define WLAN_CAPABILITY_SHORT_SLOT_TIME (1<<10) #define WLAN_CAPABILITY_APSD (1<<11) #define WLAN_CAPABILITY_DSSS_OFDM (1<<13) +/* DMG (60gHz) 802.11ad */ +/* type - bits 0..1 */ +#define WLAN_CAPABILITY_DMG_TYPE_MASK (3<<0) + +#define WLAN_CAPABILITY_DMG_TYPE_IBSS (1<<0) /* Tx by: STA */ +#define WLAN_CAPABILITY_DMG_TYPE_PBSS (2<<0) /* Tx by: PCP */ +#define WLAN_CAPABILITY_DMG_TYPE_AP (3<<0) /* Tx by: AP */ + +#define WLAN_CAPABILITY_DMG_CBAP_ONLY (1<<2) +#define WLAN_CAPABILITY_DMG_CBAP_SOURCE (1<<3) +#define WLAN_CAPABILITY_DMG_PRIVACY (1<<4) +#define WLAN_CAPABILITY_DMG_ECPAC (1<<5) + +#define WLAN_CAPABILITY_DMG_SPECTRUM_MGMT (1<<8) +#define WLAN_CAPABILITY_DMG_RADIO_MEASURE (1<<12) static unsigned char ms_oui[3] = { 0x00, 0x50, 0xf2 }; static unsigned char ieee80211_oui[3] = { 0x00, 0x0f, 0xac }; @@ -1216,6 +1231,60 @@ void print_ies(unsigned char *ie, int ielen, bool unknown, } } +static void print_capa_11ad(__u16 capa) +{ + switch (capa & WLAN_CAPABILITY_DMG_TYPE_MASK) { + case WLAN_CAPABILITY_DMG_TYPE_AP: + printf(" DMG_ESS"); + break; + case WLAN_CAPABILITY_DMG_TYPE_PBSS: + printf(" DMG_PCP"); + break; + case WLAN_CAPABILITY_DMG_TYPE_IBSS: + printf(" DMG_IBSS"); + break; + } + + if (capa & WLAN_CAPABILITY_DMG_CBAP_ONLY) + printf(" CBAP_Only"); + if (capa & WLAN_CAPABILITY_DMG_CBAP_SOURCE) + printf(" CBAP_Src"); + if (capa & WLAN_CAPABILITY_DMG_PRIVACY) + printf(" Privacy"); + if (capa & WLAN_CAPABILITY_DMG_ECPAC) + printf(" ECPAC"); + if (capa & WLAN_CAPABILITY_DMG_SPECTRUM_MGMT) + printf(" SpectrumMgmt"); + if (capa & WLAN_CAPABILITY_DMG_RADIO_MEASURE) + printf(" RadioMeasure"); +} + +static void print_capa_11n(__u16 capa) +{ + if (capa & WLAN_CAPABILITY_ESS) + printf(" ESS"); + if (capa & WLAN_CAPABILITY_IBSS) + printf(" IBSS"); + if (capa & WLAN_CAPABILITY_PRIVACY) + printf(" Privacy"); + if (capa & WLAN_CAPABILITY_SHORT_PREAMBLE) + printf(" ShortPreamble"); + if (capa & WLAN_CAPABILITY_PBCC) + printf(" PBCC"); + if (capa & WLAN_CAPABILITY_CHANNEL_AGILITY) + printf(" ChannelAgility"); + if (capa & WLAN_CAPABILITY_SPECTRUM_MGMT) + printf(" SpectrumMgmt"); + if (capa & WLAN_CAPABILITY_QOS) + printf(" QoS"); + if (capa & WLAN_CAPABILITY_SHORT_SLOT_TIME) + printf(" ShortSlotTime"); + if (capa & WLAN_CAPABILITY_APSD) + printf(" APSD"); + if (capa & WLAN_CAPABILITY_DSSS_OFDM) + printf(" DSSS-OFDM"); +} + static int print_bss_handler(struct nl_msg *msg, void *arg) { struct nlattr *tb[NL80211_ATTR_MAX + 1]; @@ -1237,6 +1306,7 @@ static int print_bss_handler(struct nl_msg *msg, void *arg) }; struct scan_params *params = arg; int show = params->show_both_ie_sets ? 2 : 1; + bool is_11ad = false; nla_parse(tb, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0), genlmsg_attrlen(gnlh, 0), NULL); @@ -1285,37 +1355,22 @@ static int print_bss_handler(struct nl_msg *msg, void *arg) tsf, tsf/1000/1000/60/60/24, (tsf/1000/1000/60/60) % 24, (tsf/1000/1000/60) % 60, (tsf/1000/1000) % 60); } - if (bss[NL80211_BSS_FREQUENCY]) - printf("\tfreq: %d\n", - nla_get_u32(bss[NL80211_BSS_FREQUENCY])); + if (bss[NL80211_BSS_FREQUENCY]) { + int freq = nla_get_u32(bss[NL80211_BSS_FREQUENCY]); + printf("\tfreq: %d\n", freq); + if (freq > 45000) + is_11ad = true; + } if (bss[NL80211_BSS_BEACON_INTERVAL]) printf("\tbeacon interval: %d\n", nla_get_u16(bss[NL80211_BSS_BEACON_INTERVAL])); if (bss[NL80211_BSS_CAPABILITY]) { __u16 capa = nla_get_u16(bss[NL80211_BSS_CAPABILITY]); printf("\tcapability:"); - if (capa & WLAN_CAPABILITY_ESS) - printf(" ESS"); - if (capa & WLAN_CAPABILITY_IBSS) - printf(" IBSS"); - if (capa & WLAN_CAPABILITY_PRIVACY) - printf(" Privacy"); - if (capa & WLAN_CAPABILITY_SHORT_PREAMBLE) - printf(" ShortPreamble"); - if (capa & WLAN_CAPABILITY_PBCC) - printf(" PBCC"); - if (capa & WLAN_CAPABILITY_CHANNEL_AGILITY) - printf(" ChannelAgility"); - if (capa & WLAN_CAPABILITY_SPECTRUM_MGMT) - printf(" SpectrumMgmt"); - if (capa & WLAN_CAPABILITY_QOS) - printf(" QoS"); - if (capa & WLAN_CAPABILITY_SHORT_SLOT_TIME) - printf(" ShortSlotTime"); - if (capa & WLAN_CAPABILITY_APSD) - printf(" APSD"); - if (capa & WLAN_CAPABILITY_DSSS_OFDM) - printf(" DSSS-OFDM"); + if (is_11ad) + print_capa_11ad(capa); + else + print_capa_11n(capa); printf(" (0x%.4x)\n", capa); } if (bss[NL80211_BSS_SIGNAL_MBM]) { -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH] iw: print all capability bits 2012-12-17 11:32 [PATCH] iw: print capability info for 60GHz band Vladimir Kondratiev @ 2012-12-17 13:30 ` Vladimir Kondratiev 2012-12-21 9:27 ` [PATCH] iw: print capability info for 60GHz band Johannes Berg 1 sibling, 0 replies; 5+ messages in thread From: Vladimir Kondratiev @ 2012-12-17 13:30 UTC (permalink / raw) To: Johannes Berg; +Cc: linux-wireless To continue with capability: not all bits from .11n printed as well. Patch below adds missing bits. I'll prepare patch for kernel with the #define's as well >From 9f7b0078e7008e1735d980a4bb583efd2321d9ed Mon Sep 17 00:00:00 2001 From: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Date: Mon, 17 Dec 2012 15:26:47 +0200 Subject: [PATCH] iw: print all capability bits Print all bits from capability info, as defined in the IEEE802.11-2012 Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> --- scan.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/scan.c b/scan.c index 295a51c..a07f16a 100644 --- a/scan.c +++ b/scan.c @@ -25,7 +25,10 @@ #define WLAN_CAPABILITY_QOS (1<<9) #define WLAN_CAPABILITY_SHORT_SLOT_TIME (1<<10) #define WLAN_CAPABILITY_APSD (1<<11) +#define WLAN_CAPABILITY_RADIO_MEASURE (1<<12) #define WLAN_CAPABILITY_DSSS_OFDM (1<<13) +#define WLAN_CAPABILITY_DEL_BACK (1<<14) +#define WLAN_CAPABILITY_IMM_BACK (1<<15) /* DMG (60gHz) 802.11ad */ /* type - bits 0..1 */ #define WLAN_CAPABILITY_DMG_TYPE_MASK (3<<0) @@ -1265,6 +1268,10 @@ static void print_capa_11n(__u16 capa) printf(" ESS"); if (capa & WLAN_CAPABILITY_IBSS) printf(" IBSS"); + if (capa & WLAN_CAPABILITY_CF_POLLABLE) + printf(" CfPollable"); + if (capa & WLAN_CAPABILITY_CF_POLL_REQUEST) + printf(" CfPollReq"); if (capa & WLAN_CAPABILITY_PRIVACY) printf(" Privacy"); if (capa & WLAN_CAPABILITY_SHORT_PREAMBLE) @@ -1281,8 +1288,14 @@ static void print_capa_11n(__u16 capa) printf(" ShortSlotTime"); if (capa & WLAN_CAPABILITY_APSD) printf(" APSD"); + if (capa & WLAN_CAPABILITY_RADIO_MEASURE) + printf(" RadioMeasure"); if (capa & WLAN_CAPABILITY_DSSS_OFDM) printf(" DSSS-OFDM"); + if (capa & WLAN_CAPABILITY_DEL_BACK) + printf(" DelayedBACK"); + if (capa & WLAN_CAPABILITY_IMM_BACK) + printf(" ImmediateBACK"); } static int print_bss_handler(struct nl_msg *msg, void *arg) -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] iw: print capability info for 60GHz band 2012-12-17 11:32 [PATCH] iw: print capability info for 60GHz band Vladimir Kondratiev 2012-12-17 13:30 ` [PATCH] iw: print all capability bits Vladimir Kondratiev @ 2012-12-21 9:27 ` Johannes Berg 2012-12-23 8:36 ` [PATCH v2] iw: print capability info for DMG (60GHz band) Vladimir Kondratiev 1 sibling, 1 reply; 5+ messages in thread From: Johannes Berg @ 2012-12-21 9:27 UTC (permalink / raw) To: Vladimir Kondratiev; +Cc: linux-wireless On Mon, 2012-12-17 at 13:32 +0200, Vladimir Kondratiev wrote: > From cc320b6c4433b63f3b1641646a49c4540e8954d2 Mon Sep 17 00:00:00 2001 > From: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> > Date: Mon, 17 Dec 2012 13:31:36 +0200 > Subject: [PATCH] iw: print capability info for 60GHz band > > On the 60GHz band, capability info defined different from .11n I would prefer you didn't use "11ad" or "11n", in particular not "11n", it hasn't existed for quite a while now. Also, the 2.4/5ghz capability bits really have nothing to do with 11n anyway. johannes ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2] iw: print capability info for DMG (60GHz band) 2012-12-21 9:27 ` [PATCH] iw: print capability info for 60GHz band Johannes Berg @ 2012-12-23 8:36 ` Vladimir Kondratiev 2013-01-04 15:47 ` Johannes Berg 0 siblings, 1 reply; 5+ messages in thread From: Vladimir Kondratiev @ 2012-12-23 8:36 UTC (permalink / raw) To: Johannes Berg; +Cc: linux-wireless On Friday, December 21, 2012 10:27:03 AM Johannes Berg wrote: > On Mon, 2012-12-17 at 13:32 +0200, Vladimir Kondratiev wrote: > > From cc320b6c4433b63f3b1641646a49c4540e8954d2 Mon Sep 17 00:00:00 2001 > > From: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> > > Date: Mon, 17 Dec 2012 13:31:36 +0200 > > Subject: [PATCH] iw: print capability info for 60GHz band > > > > On the 60GHz band, capability info defined different from .11n > > I would prefer you didn't use "11ad" or "11n", in particular not "11n", > it hasn't existed for quite a while now. > > Also, the 2.4/5ghz capability bits really have nothing to do with 11n > anyway. > > johannes Well, agree, I rephrased. Also, squash these 2: [PATCH] iw: print capability info for 60GHz band [PATCH] iw: print all capability bits Combined patch follows >From e79a5515929c6d4cab691e96e51f2616d7602240 Mon Sep 17 00:00:00 2001 From: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Date: Mon, 17 Dec 2012 13:31:36 +0200 Subject: [PATCH v2] iw: print capability info for DMG (60GHz band) On the DMG (Directed Multi-Gigabit) aka 60GHz band, capability info defined by the 802.11ad spec differently from non-DMG one Detect DMG band by frequency, spec says DMG if above 45 GHz; parse and print accordingly For the non-DMG capability info, add more bits as defined in the IEEE802.11-2012 Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> --- scan.c | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 93 insertions(+), 25 deletions(-) diff --git a/scan.c b/scan.c index 05bad0b..2188166 100644 --- a/scan.c +++ b/scan.c @@ -25,7 +25,25 @@ #define WLAN_CAPABILITY_QOS (1<<9) #define WLAN_CAPABILITY_SHORT_SLOT_TIME (1<<10) #define WLAN_CAPABILITY_APSD (1<<11) +#define WLAN_CAPABILITY_RADIO_MEASURE (1<<12) #define WLAN_CAPABILITY_DSSS_OFDM (1<<13) +#define WLAN_CAPABILITY_DEL_BACK (1<<14) +#define WLAN_CAPABILITY_IMM_BACK (1<<15) +/* DMG (60gHz) 802.11ad */ +/* type - bits 0..1 */ +#define WLAN_CAPABILITY_DMG_TYPE_MASK (3<<0) + +#define WLAN_CAPABILITY_DMG_TYPE_IBSS (1<<0) /* Tx by: STA */ +#define WLAN_CAPABILITY_DMG_TYPE_PBSS (2<<0) /* Tx by: PCP */ +#define WLAN_CAPABILITY_DMG_TYPE_AP (3<<0) /* Tx by: AP */ + +#define WLAN_CAPABILITY_DMG_CBAP_ONLY (1<<2) +#define WLAN_CAPABILITY_DMG_CBAP_SOURCE (1<<3) +#define WLAN_CAPABILITY_DMG_PRIVACY (1<<4) +#define WLAN_CAPABILITY_DMG_ECPAC (1<<5) + +#define WLAN_CAPABILITY_DMG_SPECTRUM_MGMT (1<<8) +#define WLAN_CAPABILITY_DMG_RADIO_MEASURE (1<<12) static unsigned char ms_oui[3] = { 0x00, 0x50, 0xf2 }; static unsigned char ieee80211_oui[3] = { 0x00, 0x0f, 0xac }; @@ -1216,6 +1234,70 @@ void print_ies(unsigned char *ie, int ielen, bool unknown, } } +static void print_capa_dmg(__u16 capa) +{ + switch (capa & WLAN_CAPABILITY_DMG_TYPE_MASK) { + case WLAN_CAPABILITY_DMG_TYPE_AP: + printf(" DMG_ESS"); + break; + case WLAN_CAPABILITY_DMG_TYPE_PBSS: + printf(" DMG_PCP"); + break; + case WLAN_CAPABILITY_DMG_TYPE_IBSS: + printf(" DMG_IBSS"); + break; + } + + if (capa & WLAN_CAPABILITY_DMG_CBAP_ONLY) + printf(" CBAP_Only"); + if (capa & WLAN_CAPABILITY_DMG_CBAP_SOURCE) + printf(" CBAP_Src"); + if (capa & WLAN_CAPABILITY_DMG_PRIVACY) + printf(" Privacy"); + if (capa & WLAN_CAPABILITY_DMG_ECPAC) + printf(" ECPAC"); + if (capa & WLAN_CAPABILITY_DMG_SPECTRUM_MGMT) + printf(" SpectrumMgmt"); + if (capa & WLAN_CAPABILITY_DMG_RADIO_MEASURE) + printf(" RadioMeasure"); +} + +static void print_capa_non_dmg(__u16 capa) +{ + if (capa & WLAN_CAPABILITY_ESS) + printf(" ESS"); + if (capa & WLAN_CAPABILITY_IBSS) + printf(" IBSS"); + if (capa & WLAN_CAPABILITY_CF_POLLABLE) + printf(" CfPollable"); + if (capa & WLAN_CAPABILITY_CF_POLL_REQUEST) + printf(" CfPollReq"); + if (capa & WLAN_CAPABILITY_PRIVACY) + printf(" Privacy"); + if (capa & WLAN_CAPABILITY_SHORT_PREAMBLE) + printf(" ShortPreamble"); + if (capa & WLAN_CAPABILITY_PBCC) + printf(" PBCC"); + if (capa & WLAN_CAPABILITY_CHANNEL_AGILITY) + printf(" ChannelAgility"); + if (capa & WLAN_CAPABILITY_SPECTRUM_MGMT) + printf(" SpectrumMgmt"); + if (capa & WLAN_CAPABILITY_QOS) + printf(" QoS"); + if (capa & WLAN_CAPABILITY_SHORT_SLOT_TIME) + printf(" ShortSlotTime"); + if (capa & WLAN_CAPABILITY_APSD) + printf(" APSD"); + if (capa & WLAN_CAPABILITY_RADIO_MEASURE) + printf(" RadioMeasure"); + if (capa & WLAN_CAPABILITY_DSSS_OFDM) + printf(" DSSS-OFDM"); + if (capa & WLAN_CAPABILITY_DEL_BACK) + printf(" DelayedBACK"); + if (capa & WLAN_CAPABILITY_IMM_BACK) + printf(" ImmediateBACK"); +} + static int print_bss_handler(struct nl_msg *msg, void *arg) { struct nlattr *tb[NL80211_ATTR_MAX + 1]; @@ -1237,6 +1319,7 @@ static int print_bss_handler(struct nl_msg *msg, void *arg) }; struct scan_params *params = arg; int show = params->show_both_ie_sets ? 2 : 1; + bool is_dmg = false; nla_parse(tb, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0), genlmsg_attrlen(gnlh, 0), NULL); @@ -1285,37 +1368,22 @@ static int print_bss_handler(struct nl_msg *msg, void *arg) tsf, tsf/1000/1000/60/60/24, (tsf/1000/1000/60/60) % 24, (tsf/1000/1000/60) % 60, (tsf/1000/1000) % 60); } - if (bss[NL80211_BSS_FREQUENCY]) - printf("\tfreq: %d\n", - nla_get_u32(bss[NL80211_BSS_FREQUENCY])); + if (bss[NL80211_BSS_FREQUENCY]) { + int freq = nla_get_u32(bss[NL80211_BSS_FREQUENCY]); + printf("\tfreq: %d\n", freq); + if (freq > 45000) + is_dmg = true; + } if (bss[NL80211_BSS_BEACON_INTERVAL]) printf("\tbeacon interval: %d\n", nla_get_u16(bss[NL80211_BSS_BEACON_INTERVAL])); if (bss[NL80211_BSS_CAPABILITY]) { __u16 capa = nla_get_u16(bss[NL80211_BSS_CAPABILITY]); printf("\tcapability:"); - if (capa & WLAN_CAPABILITY_ESS) - printf(" ESS"); - if (capa & WLAN_CAPABILITY_IBSS) - printf(" IBSS"); - if (capa & WLAN_CAPABILITY_PRIVACY) - printf(" Privacy"); - if (capa & WLAN_CAPABILITY_SHORT_PREAMBLE) - printf(" ShortPreamble"); - if (capa & WLAN_CAPABILITY_PBCC) - printf(" PBCC"); - if (capa & WLAN_CAPABILITY_CHANNEL_AGILITY) - printf(" ChannelAgility"); - if (capa & WLAN_CAPABILITY_SPECTRUM_MGMT) - printf(" SpectrumMgmt"); - if (capa & WLAN_CAPABILITY_QOS) - printf(" QoS"); - if (capa & WLAN_CAPABILITY_SHORT_SLOT_TIME) - printf(" ShortSlotTime"); - if (capa & WLAN_CAPABILITY_APSD) - printf(" APSD"); - if (capa & WLAN_CAPABILITY_DSSS_OFDM) - printf(" DSSS-OFDM"); + if (is_dmg) + print_capa_dmg(capa); + else + print_capa_non_dmg(capa); printf(" (0x%.4x)\n", capa); } if (bss[NL80211_BSS_SIGNAL_MBM]) { -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2] iw: print capability info for DMG (60GHz band) 2012-12-23 8:36 ` [PATCH v2] iw: print capability info for DMG (60GHz band) Vladimir Kondratiev @ 2013-01-04 15:47 ` Johannes Berg 0 siblings, 0 replies; 5+ messages in thread From: Johannes Berg @ 2013-01-04 15:47 UTC (permalink / raw) To: Vladimir Kondratiev; +Cc: linux-wireless On Sun, 2012-12-23 at 10:36 +0200, Vladimir Kondratiev wrote: > On Friday, December 21, 2012 10:27:03 AM Johannes Berg wrote: > > On Mon, 2012-12-17 at 13:32 +0200, Vladimir Kondratiev wrote: > > > From cc320b6c4433b63f3b1641646a49c4540e8954d2 Mon Sep 17 00:00:00 2001 > > > From: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> > > > Date: Mon, 17 Dec 2012 13:31:36 +0200 > > > Subject: [PATCH] iw: print capability info for 60GHz band > > > > > > On the 60GHz band, capability info defined different from .11n > > > > I would prefer you didn't use "11ad" or "11n", in particular not "11n", > > it hasn't existed for quite a while now. > > > > Also, the 2.4/5ghz capability bits really have nothing to do with 11n > > anyway. > > > > johannes > > Well, agree, I rephrased. Also, squash these 2: > > [PATCH] iw: print capability info for 60GHz band > [PATCH] iw: print all capability bits > > Combined patch follows > > From e79a5515929c6d4cab691e96e51f2616d7602240 Mon Sep 17 00:00:00 2001 > From: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> > Date: Mon, 17 Dec 2012 13:31:36 +0200 > Subject: [PATCH v2] iw: print capability info for DMG (60GHz band) > > On the DMG (Directed Multi-Gigabit) aka 60GHz band, capability info > defined by the 802.11ad spec differently from non-DMG one > > Detect DMG band by frequency, spec says DMG if above 45 GHz; > parse and print accordingly > > For the non-DMG capability info, add more bits as defined in the > IEEE802.11-2012 Applied, thanks. johannes ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-01-04 15:46 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-12-17 11:32 [PATCH] iw: print capability info for 60GHz band Vladimir Kondratiev 2012-12-17 13:30 ` [PATCH] iw: print all capability bits Vladimir Kondratiev 2012-12-21 9:27 ` [PATCH] iw: print capability info for 60GHz band Johannes Berg 2012-12-23 8:36 ` [PATCH v2] iw: print capability info for DMG (60GHz band) Vladimir Kondratiev 2013-01-04 15:47 ` Johannes Berg
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox