From: Simon Horman <simon.horman@corigine.com>
To: Jaewan Kim <jaewan@google.com>
Cc: gregkh@linuxfoundation.org, johannes@sipsolutions.net,
linux-wireless@vger.kernel.org, netdev@vger.kernel.org,
kernel-team@android.com, adelva@google.com
Subject: Re: [PATCH v8 1/5] mac80211_hwsim: add PMSR capability support
Date: Mon, 6 Mar 2023 17:54:58 +0100 [thread overview]
Message-ID: <ZAYa4oteaDVPGOLp@corigine.com> (raw)
In-Reply-To: <20230302160310.923349-2-jaewan@google.com>
On Thu, Mar 02, 2023 at 04:03:06PM +0000, Jaewan Kim wrote:
> PMSR (a.k.a. peer measurement) is generalized measurement between two
> Wi-Fi devices. And currently FTM (a.k.a. fine time measurement or flight
> time measurement) is the one and only measurement. FTM is measured by
> RTT (a.k.a. round trip time) of packets between two Wi-Fi devices.
>
> Add necessary functionality to allow mac80211_hwsim to be configured with
> PMSR capability. The capability is mandatory to accept incoming PMSR
> request because nl80211_pmsr_start() ignores incoming the request without
> the PMSR capability.
>
> In detail, add new mac80211_hwsim attribute HWSIM_ATTR_PMSR_SUPPORT.
> HWSIM_ATTR_PMSR_SUPPORT is used to set PMSR capability when creating a new
> radio. To send extra capability details, HWSIM_ATTR_PMSR_SUPPORT can have
> nested PMSR capability attributes defined in the nl80211.h. Data format is
> the same as cfg80211_pmsr_capabilities.
>
> If HWSIM_ATTR_PMSR_SUPPORT is specified, mac80211_hwsim builds
> cfg80211_pmsr_capabilities and sets wiphy.pmsr_capa.
>
> Signed-off-by: Jaewan Kim <jaewan@google.com>
Thanks for your patch, a few comments below.
> diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
> index 4cc4eaf80b14..79476d55c1ca 100644
> --- a/drivers/net/wireless/mac80211_hwsim.c
> +++ b/drivers/net/wireless/mac80211_hwsim.c
...
> @@ -3186,6 +3218,7 @@ struct hwsim_new_radio_params {
> u32 *ciphers;
> u8 n_ciphers;
> bool mlo;
> + const struct cfg80211_pmsr_capabilities *pmsr_capa;
nit: not related to this patch,
but there are lots of holes in hwsim_new_radio_params.
And, I think that all fields, other than the new pmsr_capa field,
could fit into one cacheline on x86_64.
I'm unsure if it is worth cleaning up or not.
> };
>
> static void hwsim_mcast_config_msg(struct sk_buff *mcast_skb,
> @@ -3260,7 +3293,7 @@ static int append_radio_msg(struct sk_buff *skb, int id,
> return ret;
> }
>
> - return 0;
> + return ret;
This change seems unrelated to the rest of the patch.
> }
>
> static void hwsim_mcast_new_radio(int id, struct genl_info *info,
...
> +static int parse_pmsr_capa(const struct nlattr *pmsr_capa, struct cfg80211_pmsr_capabilities *out,
> + struct genl_info *info)
> +{
> + struct nlattr *tb[NL80211_PMSR_ATTR_MAX + 1];
> + struct nlattr *nla;
> + int size;
+ int ret = nla_parse_nested(tb, NL80211_PMSR_ATTR_MAX, pmsr_capa,
> + hwsim_pmsr_capa_policy, NULL);
> +
> + if (ret) {
> + NL_SET_ERR_MSG_ATTR(info->extack, pmsr_capa, "malformed PMSR capability");
> + return -EINVAL;
> + }
> +
> + if (tb[NL80211_PMSR_ATTR_MAX_PEERS])
> + out->max_peers = nla_get_u32(tb[NL80211_PMSR_ATTR_MAX_PEERS]);
> + out->report_ap_tsf = !!tb[NL80211_PMSR_ATTR_REPORT_AP_TSF];
> + out->randomize_mac_addr = !!tb[NL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR];
> +
> + if (!tb[NL80211_PMSR_ATTR_TYPE_CAPA]) {
> + NL_SET_ERR_MSG_ATTR(info->extack, tb[NL80211_PMSR_ATTR_TYPE_CAPA],
> + "malformed PMSR type");
> + return -EINVAL;
> + }
> +
> + nla_for_each_nested(nla, tb[NL80211_PMSR_ATTR_TYPE_CAPA], size) {
> + switch (nla_type(nla)) {
> + case NL80211_PMSR_TYPE_FTM:
> + parse_ftm_capa(nla, out, info);
> + break;
> + default:
> + WARN_ON(1);
WARN_ON doesn't seem right here. I suspect that the following is more fitting.
NL_SET_ERR_MSG_ATTR(...);
return -EINVAL;
> + }
> + }
> + return 0;
> +}
> +
...
next prev parent reply other threads:[~2023-03-06 16:57 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-02 16:03 [PATCH v8 0/5] mac80211_hwsim: Add PMSR support Jaewan Kim
2023-03-02 16:03 ` [PATCH v8 1/5] mac80211_hwsim: add PMSR capability support Jaewan Kim
2023-03-06 16:54 ` Simon Horman [this message]
2023-03-06 16:58 ` Johannes Berg
2023-03-06 17:38 ` Simon Horman
2023-03-08 8:00 ` Jaewan Kim
2023-03-08 8:06 ` Johannes Berg
2023-03-13 7:54 ` Jaewan Kim
2023-03-02 16:03 ` [PATCH v8 2/5] wifi: nl80211: make nl80211_send_chandef non-static Jaewan Kim
2023-03-02 16:03 ` [PATCH v8 3/5] mac80211_hwsim: add PMSR request support via virtio Jaewan Kim
2023-03-06 17:12 ` Simon Horman
2023-03-06 17:43 ` Simon Horman
2023-03-06 20:45 ` Johannes Berg
2023-03-06 21:11 ` Simon Horman
2023-03-02 16:03 ` [PATCH v8 4/5] mac80211_hwsim: add PMSR abort " Jaewan Kim
2023-03-06 17:37 ` Simon Horman
2023-03-07 6:56 ` Simon Horman
2023-03-02 16:03 ` [PATCH v8 5/5] mac80211_hwsim: add PMSR report " Jaewan Kim
2023-03-02 17:42 ` [PATCH v8 0/5] mac80211_hwsim: Add PMSR support Greg KH
2023-03-06 9:42 ` Kalle Valo
[not found] ` <CABZjns4xYjcn4CQzEoiozz9j7mKF0py0WE+AZ2Koi9Vz3khVLQ@mail.gmail.com>
2023-03-08 10:05 ` Kalle Valo
2023-03-13 7:56 ` Jaewan Kim
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=ZAYa4oteaDVPGOLp@corigine.com \
--to=simon.horman@corigine.com \
--cc=adelva@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=jaewan@google.com \
--cc=johannes@sipsolutions.net \
--cc=kernel-team@android.com \
--cc=linux-wireless@vger.kernel.org \
--cc=netdev@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 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.