From: Tamizh chelvam <tamizhr@codeaurora.org>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: linux-wireless@vger.kernel.org
Subject: Re: [PATCH 1/7] wireless: Change single cqm_config to rssi config list
Date: Wed, 11 Jul 2018 12:24:40 +0530 [thread overview]
Message-ID: <b01b72d2d5796c627d060e0d3a517f3f@codeaurora.org> (raw)
In-Reply-To: <1530877576.3197.11.camel@sipsolutions.net>
On 2018-07-06 17:16, Johannes Berg wrote:
> On Wed, 2018-07-04 at 23:46 +0530, Tamizh chelvam wrote:
>
>> > > - struct cfg80211_cqm_config *cqm_config;
>> > > + struct cfg80211_rssi_config *rssi_config;
>> > > + struct list_head rssi_config_list;
>> >
>> > Why do you need both now? Perhaps instead you should allow a NULL/all-
>> > ones MAC address for where you have the direct pointer now, and remove
>> > that? You anyway need to pass something to the peer argument in
>> >
>>
>> In the current cqm/sta_mon implementation the range_config will be
>> updated before notify event posted to userspace.
>> To update the range config for a specific station we need to have this
>> peer addr based configuration list which holds the thresholds info
>> to choose the next rssi range.
>> Or do you want me to handle and store the rssi_config structure in
>> mac80211 and update it in mac80211 itself ? And simply pass the
>> notification event to userspace application ?
>
> I don't have any issues with storing it in mac80211 - could attach it
> to
> the station entry there?
yes.
>
> Come to think of it, that might also clarify the lifetime rules. As it
> is now, what if the station is removed? What are the lifetime rules for
> a per-station configuration?
If we go with mac80211 based approach then the lifetime of the
configuration would be for the current connection.
>
> It would almost look like it stays here (or maybe I missed when you
> remove it from the list when a station is removed), but that doesn't
> seem like a good idea.
>
> Please document the lifetime rules also in the API, and make sure you
> implement them properly.
In AP mode, the lifetime would be for the station's current connection.
It will be removed in case of roaming/disconnected.
>
>> > What's the locking scheme for this? It's way more complex now so
>> > perhaps stick ASSERT_RTNL() in there or so?
>> >
>>
>> Isn't wdev_lock enough ?
>
> I guess it should be :-) Maybe assert on that, also to document the
> locking rules.
Sure
>
>> > > /* RSSI reporting disabled? */
>> > > - if (!wdev->cqm_config)
>> > > + if (!wdev->rssi_config)
>> > > return rdev_set_cqm_rssi_range_config(rdev, dev, 0, 0);
>> >
>> >
>> > So I guess the wdev->rssi_config is used for the case of "always use
>> > this config for any AP you're connected to" or so - but maybe it'd be
>> > better to track the AP as a station? Then again, I guess we can't force
>> > userspace to change that.
>
>> Sorry I didn't get your point:( I didn't change anything in the
>> station
>> mode. Functionality remains same for the station mode.
>
> Right, that sort of goes back to my thoughts about lifetime rules too.
> The rule for stations would be to have it deleted when the station is
> deleted, but I guess the rule for client-mode is to keep the config
> active even when roaming?
>
> I was just thinking that you don't need to *store* it like that, you
> could still - in client mode - store the configuration treating the AP
> as a (peer) station, perhaps with an ff:ff:ff:ff:ff:ff MAC address or
> something (instead of using the BSSID, to get lifetime rules adjusted
> right).
>
Going with mac80211 based storing configuration will remove these list
implementation in the cfg80211.
So, there won't be any MAC address stored for client-mode in cqm_config
structure.
> But now that I'm thinking about how the lifetime rules differ ...
> that's
> probably not worth it.
>
>> > > wdev_lock(wdev);
>> > > if (n_thresholds) {
>> > > - struct cfg80211_cqm_config *cqm_config;
>> > > -
>> > > - cqm_config = kzalloc(sizeof(struct cfg80211_cqm_config) +
>> > > - n_thresholds * sizeof(s32), GFP_KERNEL);
>> > > - if (!cqm_config) {
>> > > + wdev->rssi_config = cfg80211_get_rssi_config(
>> > > + wdev, thresholds,
>> > > + n_thresholds, hysteresis,
>> > > + wdev->current_bss->pub.bssid);
>> >
>> > Here you link it to the BSSID anyway, but do we always have a
>> > current_bss at this point?
>> >
>>
>> Oops! I didn't think about that condition. I'll fix that in the next
>> version.
>
> Again though - see above. I'm not sure it's even correct to link it to
> the BSSID since until now, I think the configuration would remain
> across
> roaming?
>
As mentioned above storing configuration parameters in mac80211 will
avoid this list implementation here.
So, no need of worrying about those roaming scenario know ?
Thanks,
Tamizh.
next prev parent reply other threads:[~2018-07-11 6:57 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-13 10:45 [PATCH 0/7] cfg80211/mac80211: Add support to configure and monitor rssi threshold Tamizh chelvam
2018-06-13 10:45 ` [PATCH 1/7] wireless: Change single cqm_config to rssi config list Tamizh chelvam
2018-06-29 9:26 ` Johannes Berg
2018-07-04 18:16 ` Tamizh chelvam
2018-07-06 11:46 ` Johannes Berg
2018-07-11 6:54 ` Tamizh chelvam [this message]
2018-08-28 9:02 ` Johannes Berg
2018-06-13 10:45 ` [PATCH 2/7] cfg80211: Add new NL command to configure peer specific rssi threshold Tamizh chelvam
2018-06-29 9:29 ` Johannes Berg
2018-07-04 6:09 ` Tamizh chelvam
2018-07-06 11:40 ` Johannes Berg
2018-07-11 7:04 ` Tamizh chelvam
2018-08-28 9:01 ` Johannes Berg
2018-06-13 10:45 ` [PATCH 3/7] mac80211: Add api to support configuring station " Tamizh chelvam
2018-06-29 9:31 ` Johannes Berg
2018-07-04 5:13 ` Tamizh chelvam
2018-06-13 10:45 ` [PATCH 4/7] cfg80211: Add support to notify station's rssi level crossing Tamizh chelvam
2018-06-29 9:35 ` Johannes Berg
2018-07-04 6:13 ` Tamizh chelvam
2018-07-06 11:39 ` Johannes Berg
2018-07-11 5:55 ` Tamizh chelvam
2018-06-13 10:45 ` [PATCH 5/7] mac80211: Implement functionality to monitor station's rssi cross event Tamizh chelvam
2018-06-29 9:36 ` Johannes Berg
2018-07-04 9:36 ` Tamizh chelvam
2018-06-13 10:45 ` [PATCH 6/7] cfg80211: Accept multiple RSSI threholds for STA_MON command Tamizh chelvam
2018-06-29 9:39 ` Johannes Berg
2018-07-05 7:37 ` Tamizh chelvam
2018-07-06 11:38 ` Johannes Berg
2018-06-13 10:45 ` [PATCH 7/7] mac80211: Add api to configure low and high RSSI threshold Tamizh chelvam
2018-06-29 9:39 ` 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=b01b72d2d5796c627d060e0d3a517f3f@codeaurora.org \
--to=tamizhr@codeaurora.org \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).