diff options
author | Aditya Kumar Singh <quic_adisi@quicinc.com> | 2024-01-30 19:39:14 +0530 |
---|---|---|
committer | iwlwifi publisher <> | 2024-04-17 12:51:26 +0000 |
commit | de72840474d877c3783952eac9479ab3b5c89922 (patch) | |
tree | b5eadd22b64bf0097a3c80a65b4e63a754ffadec | |
parent | 4b0f1b6bcb3d656299376891b799d21cf404dad7 (diff) | |
download | backport-iwlwifi-de72840474d877c3783952eac9479ab3b5c89922.tar.gz |
wifi: cfg80211: send link id in channel_switch ops
Currently, during channel switch, no link id information is passed down.
In order to support channel switch during Multi Link Operation, it is
required to pass link id as well.
Add changes to pass link id in the channel_switch cfg80211_ops.
type=feature
ticket=none
Change-Id: I4ace04c0bdbde3b028ec0a5a3be2471cdb1efb67
Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
Link: https://msgid.link/20240130140918.1172387-2-quic_adisi@quicinc.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-on: https://gerritwcs.ir.intel.com/c/iwlwifi-stack-dev/+/94166
automatic-review: iil_jenkins iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM>
tested: iil_jenkins iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM>
Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
x-iwlwifi-stack-dev: a71ab6cb3ba2b45f11000ca6057d0f473acf2017
-rw-r--r-- | include/net/cfg80211.h | 3 | ||||
-rw-r--r-- | net/wireless/nl80211.c | 1 | ||||
-rw-r--r-- | net/wireless/trace.h | 7 | ||||
-rw-r--r-- | versions | 2 |
4 files changed, 10 insertions, 3 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index b00cd49c12..6d59dd188e 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -1556,6 +1556,8 @@ struct cfg80211_ap_update { * @radar_required: whether radar detection is required on the new channel * @block_tx: whether transmissions should be blocked while changing * @count: number of beacons until switch + * @link_id: defines the link on which channel switch is expected during + * MLO. 0 in case of non-MLO. */ struct cfg80211_csa_settings { struct cfg80211_chan_def chandef; @@ -1568,6 +1570,7 @@ struct cfg80211_csa_settings { bool radar_required; bool block_tx; u8 count; + u8 link_id; }; /** diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 82921eac73..ff98bf7e05 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -10339,6 +10339,7 @@ skip_beacons: if (info->attrs[NL80211_ATTR_CH_SWITCH_BLOCK_TX]) params.block_tx = true; + params.link_id = link_id; err = rdev_channel_switch(rdev, dev, ¶ms); free: diff --git a/net/wireless/trace.h b/net/wireless/trace.h index fb347ec96b..da45cd0f54 100644 --- a/net/wireless/trace.h +++ b/net/wireless/trace.h @@ -2342,6 +2342,7 @@ TRACE_EVENT(rdev_channel_switch, __field(u8, count) __dynamic_array(u16, bcn_ofs, params->n_counter_offsets_beacon) __dynamic_array(u16, pres_ofs, params->n_counter_offsets_presp) + __field(u8, link_id) ), TP_fast_assign( WIPHY_ASSIGN; @@ -2359,11 +2360,13 @@ TRACE_EVENT(rdev_channel_switch, memcpy(__get_dynamic_array(pres_ofs), params->counter_offsets_presp, params->n_counter_offsets_presp * sizeof(u16)); + __entry->link_id = params->link_id; ), TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT - ", block_tx: %d, count: %u, radar_required: %d", + ", block_tx: %d, count: %u, radar_required: %d, link_id: %d", WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, - __entry->block_tx, __entry->count, __entry->radar_required) + __entry->block_tx, __entry->count, __entry->radar_required, + __entry->link_id) ); TRACE_EVENT(rdev_set_qos_map, @@ -2,4 +2,4 @@ BACKPORTS_VERSION="(see git)" BACKPORTED_KERNEL_VERSION="(see git)" BACKPORTED_KERNEL_NAME="iwlwifi" BACKPORTS_BUILD_TSTAMP=__DATE__ \" \" __TIME__ -BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:master:11907:b924ea7a" +BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:master:11908:a71ab6cb" |