From: Henning Rogge <rogge@fgan.de>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: "Luis R. Rodriguez" <lrodriguez@atheros.com>,
Henning Rogge <hrogge@googlemail.com>,
Luis Rodriguez <Luis.Rodriguez@atheros.com>,
Marcel Holtmann <holtmann@linux.intel.com>,
"linux-wireless" <linux-wireless@vger.kernel.org>,
"nbd@openwrt.org" <nbd@openwrt.org>
Subject: Re: RFC Patch v2: Add signal strength to nl80211station info
Date: Thu, 4 Dec 2008 10:48:48 +0100 [thread overview]
Message-ID: <200812041048.56327.rogge@fgan.de> (raw)
In-Reply-To: <1228380472.3197.5.camel@Friederike-PC.hoffi>
[-- Attachment #1: Type: text/plain, Size: 5698 bytes --]
Am Thursday 04 December 2008 09:47:52 schrieb Johannes Berg:
> On Wed, 2008-12-03 at 11:31 +0100, Henning Rogge wrote:
> > What do you think about the idea to export the 802.11n transmission rate
> > through the old WExt interface, so iwconfig will show the correct rate
> > too ? But for this the "mcs to bitrate" tables would have to be moved to
> > some other file, so wext.c can access them too (which one ?).
>
> No, that can't possibly work right, sorry.
I think it would work for reading the bitrate with WExt, but not for setting
the bitrate.
> > + * @NL80211_STA_INFO_SIGNAL: signal strength of last received package
> > (u8, dBm)
>
> s8? should be signed, no?
Yes, it should be signed, but nl80211 does not support signed values. Shall I
document it as signed but use the unsigned macros to transmit it through
nl80211 to userspace (not sure about it) ?
> > + * @NL80211_STA_INFO_RX_BITRATE: bitrate of last received unicast packet
> > + * (u16, 100 kbit/s)
>
> I don't really like this. I know we cannot report the real information
> yet because we don't even have the driver/mac80211 api but let's add rx
> rate reporting when we have the HT information too.
I'm not sure I understand your problem.
We have the mcs number from the driver, we have the the 20/40 Mhz flag and we
have to 400/800ns guard interval flag. That should be everything we need.
> > + * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate (u16, 100
> > kbit/s) + * @NL80211_STA_INFO_TX_BITRATE_40_MHZ: dual channel
> > transmission (flag) + * @NL80211_STA_INFO_TX_BITRATE_MCS: 802.11n MCS
> > index of tx rate (u8) + * @NL80211_STA_INFO_TX_BITRATE_SHORT_GI: 802.11n
> > with 400ns GI, 800ns + * otherwise, should be ignored if TX_BITRATE_MCS
> > is not set (flag)
>
> I'm not sure I like the bitrate being used as prefix and final name, can
> we have maybe TXRATE_ as prefix and use TXRATE_RATE, TXRATE_40, ...?
Like this ?
NL80211_STA_INFO_TXRATE_RATE
NL80211_STA_INFO_TXRATE_40_MHZ
NL80211_STA_INFO_TXRATE_MCS
NL80211_STA_INFO_TXRATE_SHORT_GI
> > +/* bitrate of 802.11n ht20 connections with 800ns guard interval in
> > 100kbit/s */
> > +const u16 ieee80211n_ht20_gi800[] = {
> > + 65, 130, 195, 260, 390, 520, 585, 650,
> > + 130, 260, 390, 520, 780, 1040, 1170, 1300,
> > + 195, 390, 585, 780, 1170, 1560, 1755, 1950,
> > + 260, 520, 780, 1040, 1560, 2080, 2340, 2600
> > +};
> > +
> > +/* bitrate of 802.11n ht20 connections with 400ns guard interval
> > + * in 100kbit/s per spatial stream */
> > +const u16 ieee80211n_ht20_gi400[] = {
> > + 72, 144, 217, 289, 433, 578, 650, 722,
> > + 144, 289, 433, 578, 867, 1156, 1300, 1440,
> > + 217, 433, 650, 867, 1300, 1733, 1950, 2167,
> > + 289, 578, 867, 1157, 1733, 2311, 2600, 2889
> > +};
> > +
> > +/* bitrate of 802.11n ht40 connections with 800ns guard interval
> > + * in 100kbit/s per spatial stream */
> > +const u16 ieee80211n_ht40_gi800[] = {
> > + 135, 270, 405, 540, 810, 1080, 1215, 1350,
> > + 270, 540, 810, 1080, 1620, 2160, 2430, 2700,
> > + 405, 810, 1215, 1620, 2430, 3240, 3645, 4050,
> > + 540, 1080, 1620, 2160, 3240, 4320, 4860, 5400
> > +};
> > +
> > +/* bitrate of 802.11n ht40 connections with 400ns guard interval
> > + * in 100kbit/s per spatial stream */
> > +const u16 ieee80211n_ht40_gi400[] = {
> > + 150, 300, 450, 600, 900, 1200, 1350, 1500,
> > + 300, 600, 900, 1200, 1800, 2400, 2700, 3000,
> > + 450, 900, 1350, 1800, 2700, 3600, 4050, 4500,
> > + 600, 1200, 1800, 2400, 3600, 4800, 5400, 6000
> > +};
>
> I definitely don't like this, ick, please put that into userspace.
Is there some kind of userspace library I could put this function into ?
Every userspace programm using nl80211 will need this translation function, so
it would be bad to put it into the iw command.
> > + sinfo->rx_bitrate = sta->last_rxrate_unicast;
> > +
> > + sinfo->tx_bitrate_flags = sta->last_tx_rate.flags &
> > + (IEEE80211_TX_RC_MCS |
> > + IEEE80211_TX_RC_40_MHZ_WIDTH |
> > + IEEE80211_TX_RC_SHORT_GI);
>
> That looks very odd. Are you sure it's using the same rate flags? And if
> it is, that's wrong, because cfg80211 must not rely on mac80211 flags.
I just store them in the flags field and translate them into NL80211 flags
later. They never leave the kernel.
But I can add a new enum for this. Maybe this way ?
enum station_info_txrate_flags {
STATION_INFO_TXFLAGS_MCS,
STATION_INFO_TXFLAGS_40_MHZ,
STATION_INFO_TXFLAGS_SHORT_GI
};
> > + if (!(sta->last_tx_rate.flags & IEEE80211_TX_RC_MCS)) {
> > + struct ieee80211_supported_band *sband;
> > + sband =
> > sta->local->hw.wiphy->bands[sta->local->hw.conf.channel->band];
> > + sinfo->tx_bitrate = sband->bitrates[sta->last_tx_rate.idx].bitrate;
> > + sinfo->tx_bitrate_mcs = 0;
> I don't think you should initialise mcs here.
I didn't liked to keep it uninitialized, but I can just delete the line.
> Some places also need work on the coding style.
Maybe you can give me an example, I'm still trying to learn the coding style
for this group.
Henning
*************************************************
Diplom Informatiker Henning Rogge
Forschungsgesellschaft für
Angewandte Naturwissenschaften e. V. (FGAN)
Neuenahrer Str. 20, 53343 Wachtberg, Germany
Tel.: 0049 (0)228 9435-961
Fax: 0049 (0)228 9435-685
E-Mail: rogge@fgan.de
Web: www.fgan.de
************************************************
Sitz der Gesellschaft: Bonn
Registergericht: Amtsgericht Bonn VR 2530
Vorstand: Dr. rer. nat. Ralf Dornhaus (Vors.), Prof. Dr. Joachim Ender
(Stellv.)
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2008-12-04 9:49 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-25 20:31 RFC Patch: Add signal strength to nl80211station info Henning Rogge
2008-11-25 20:47 ` Johannes Berg
2008-11-25 21:01 ` Henning Rogge
2008-11-26 5:21 ` Marcel Holtmann
2008-11-26 8:32 ` Johannes Berg
2008-11-26 16:17 ` Henning Rogge
2008-11-29 10:50 ` RFC Patch v2: " Henning Rogge
2008-12-01 11:17 ` Johannes Berg
2008-12-01 13:22 ` Henning Rogge
2008-12-01 17:39 ` Luis R. Rodriguez
2008-12-01 17:45 ` Luis R. Rodriguez
2008-12-01 17:53 ` Henning Rogge
2008-12-02 13:25 ` Henning Rogge
2008-12-02 20:29 ` Luis R. Rodriguez
2008-12-02 20:46 ` Henning Rogge
2008-12-03 1:44 ` Luis R. Rodriguez
2008-12-03 10:31 ` Henning Rogge
2008-12-04 8:47 ` Johannes Berg
2008-12-04 9:48 ` Henning Rogge [this message]
2008-12-04 13:02 ` Johannes Berg
2008-12-04 20:26 ` Johannes Berg
2008-12-04 21:12 ` Luis R. Rodriguez
2008-12-04 21:20 ` Johannes Berg
2008-12-05 8:34 ` Henning Rogge
2008-12-05 9:45 ` Johannes Berg
2008-12-05 9:51 ` Henning Rogge
2008-12-05 9:54 ` Johannes Berg
2008-12-05 23:26 ` Henning Rogge
2008-12-06 9:15 ` Johannes Berg
2008-12-06 11:12 ` Henning Rogge
2008-12-06 14:10 ` Henning Rogge
2008-12-06 14:43 ` Henning Rogge
2008-12-06 14:51 ` Johannes Berg
2008-12-06 15:03 ` Henning Rogge
2008-12-06 15:46 ` Henning Rogge
2008-12-06 15:59 ` Johannes Berg
2008-12-06 16:08 ` Henning Rogge
2008-12-06 20:46 ` Luis R. Rodriguez
2008-12-07 17:32 ` Henning Rogge
2008-12-07 17:39 ` Johannes Berg
2008-12-07 18:17 ` [PATCH 1/2] Add signal strength and bandwith " Henning Rogge
2008-12-08 19:43 ` Johannes Berg
2008-12-09 19:50 ` Henning Rogge
2008-12-09 21:16 ` Johannes Berg
2008-12-10 6:53 ` Henning Rogge
2008-12-10 9:05 ` Johannes Berg
2008-12-10 17:40 ` Henning Rogge
2008-12-10 20:45 ` Johannes Berg
2008-12-10 20:58 ` Henning Rogge
2008-12-10 21:01 ` Johannes Berg
2008-12-11 17:07 ` [Patch] nl80211: " Henning Rogge
2008-12-11 17:24 ` Johannes Berg
2008-12-11 18:02 ` Henning Rogge
2008-12-11 18:14 ` Johannes Berg
2008-12-11 18:22 ` Henning Rogge
2008-12-11 18:28 ` Johannes Berg
2008-12-11 20:10 ` Henning Rogge
2008-12-11 20:24 ` Johannes Berg
2008-12-11 20:12 ` Henning Rogge
2008-12-11 20:23 ` Johannes Berg
2008-12-09 19:54 ` [Patch 1/2 v2] " Henning Rogge
2008-12-09 19:58 ` [Patch 2/2 " Henning Rogge
2008-12-09 21:19 ` Johannes Berg
2008-12-07 18:19 ` [PATCH 2/2] " Henning Rogge
2008-12-07 18:20 ` [PATCH 0/2] " Henning Rogge
2008-12-06 15:48 ` RFC Patch v2: Add signal strength " Johannes Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200812041048.56327.rogge@fgan.de \
--to=rogge@fgan.de \
--cc=Luis.Rodriguez@atheros.com \
--cc=holtmann@linux.intel.com \
--cc=hrogge@googlemail.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=lrodriguez@atheros.com \
--cc=nbd@openwrt.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.