ETSI standard defines "Offchannel CAC" as: "Off-Channel CAC is performed by a number of non-continuous checks spread over a period in time. This period, which is required to determine the presence of radar signals, is defined as the Off-Channel CAC Time.. Minimum Off-Channel CAC Time 6 minutes and Maximum Off-Channel CAC Time 4 hours..". mac80211 implementation refers to a dedicated hw chain used for continuous radar monitoring. Rename offchannel_* references to background_* in order to avoid confusion with ETSI standard.
Unified · Split
| @@ -4073,14 +4073,14 @@ struct mgmt_frame_regs { · 4072 unmodified lines | ||
| 4073 | 4073 | * those to decrypt (Re)Association Request and encrypt (Re)Association |
| 4074 | 4074 | * Response frame. |
| 4075 | 4075 | * |
| 4076 | − * @set_radar_offchan: Configure dedicated offchannel chain available for | |
| 4076 | + * @set_radar_background: Configure dedicated offchannel chain available for | |
| 4077 | 4077 | * radar/CAC detection on some hw. This chain can't be used to transmit |
| 4078 | 4078 | * or receive frames and it is bounded to a running wdev. |
| 4079 | − * Offchannel radar/CAC detection allows to avoid the CAC downtime | |
| 4079 | + * Background radar/CAC detection allows to avoid the CAC downtime | |
| 4080 | 4080 | * switching to a different channel during CAC detection on the selected |
| 4081 | 4081 | * radar channel. |
| 4082 | 4082 | * The caller is expected to set chandef pointer to NULL in order to |
| 4083 | − * disable offchannel CAC/radar detection. | |
| 4083 | + * disable background CAC/radar detection. | |
| 4084 | 4084 | */ |
| 4085 | 4085 | struct cfg80211_ops { |
| 4086 | 4086 | int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow); |
| @@ -4413,8 +4413,8 @@ struct cfg80211_ops { · 326 unmodified lines | ||
| 4413 | 4413 | struct cfg80211_color_change_settings *params); |
| 4414 | 4414 | int (*set_fils_aad)(struct wiphy *wiphy, struct net_device *dev, |
| 4415 | 4415 | struct cfg80211_fils_aad *fils_aad); |
| 4416 | − int (*set_radar_offchan)(struct wiphy *wiphy, | |
| 4417 | − struct cfg80211_chan_def *chandef); | |
| 4416 | + int (*set_radar_background)(struct wiphy *wiphy, | |
| 4417 | + struct cfg80211_chan_def *chandef); | |
| 4418 | 4418 | }; |
| 4419 | 4419 | |
| 4420 | 4420 | /* |
| @@ -7626,9 +7626,9 @@ cfg80211_radar_event(struct wiphy *wiphy, · 3205 unmodified lines | ||
| 7626 | 7626 | } |
| 7627 | 7627 | |
| 7628 | 7628 | static inline void |
| 7629 | −cfg80211_offchan_radar_event(struct wiphy *wiphy, | |
| 7630 | − struct cfg80211_chan_def *chandef, | |
| 7631 | − gfp_t gfp) | |
| 7629 | +cfg80211_background_radar_event(struct wiphy *wiphy, | |
| 7630 | + struct cfg80211_chan_def *chandef, | |
| 7631 | + gfp_t gfp) | |
| 7632 | 7632 | { |
| 7633 | 7633 | __cfg80211_radar_event(wiphy, chandef, true, gfp); |
| 7634 | 7634 | } |
| @@ -7663,13 +7663,13 @@ void cfg80211_cac_event(struct net_device *netdev, · 28 unmodified lines | ||
| 7663 | 7663 | enum nl80211_radar_event event, gfp_t gfp); |
| 7664 | 7664 | |
| 7665 | 7665 | /** |
| 7666 | − * cfg80211_offchan_cac_abort - Channel Availability Check offchan abort event | |
| 7666 | + * cfg80211_background_cac_abort - Channel Availability Check offchan abort event | |
| 7667 | 7667 | * @wiphy: the wiphy |
| 7668 | 7668 | * |
| 7669 | 7669 | * This function is called by the driver when a Channel Availability Check |
| 7670 | 7670 | * (CAC) is aborted by a offchannel dedicated chain. |
| 7671 | 7671 | */ |
| 7672 | −void cfg80211_offchan_cac_abort(struct wiphy *wiphy); | |
| 7672 | +void cfg80211_background_cac_abort(struct wiphy *wiphy); | |
| 7673 | 7673 | |
| 7674 | 7674 | /** |
| 7675 | 7675 | * cfg80211_gtk_rekey_notify - notify userspace about driver rekeying |
| @@ -3939,14 +3939,14 @@ struct ieee80211_prep_tx_info { · 3938 unmodified lines | ||
| 3939 | 3939 | * twt structure. |
| 3940 | 3940 | * @twt_teardown_request: Update the hw with TWT teardown request received |
| 3941 | 3941 | * from the peer. |
| 3942 | − * @set_radar_offchan: Configure dedicated offchannel chain available for | |
| 3942 | + * @set_radar_background: Configure dedicated offchannel chain available for | |
| 3943 | 3943 | * radar/CAC detection on some hw. This chain can't be used to transmit |
| 3944 | 3944 | * or receive frames and it is bounded to a running wdev. |
| 3945 | − * Offchannel radar/CAC detection allows to avoid the CAC downtime | |
| 3945 | + * Background radar/CAC detection allows to avoid the CAC downtime | |
| 3946 | 3946 | * switching to a different channel during CAC detection on the selected |
| 3947 | 3947 | * radar channel. |
| 3948 | 3948 | * The caller is expected to set chandef pointer to NULL in order to |
| 3949 | − * disable offchannel CAC/radar detection. | |
| 3949 | + * disable background CAC/radar detection. | |
| 3950 | 3950 | * @net_fill_forward_path: Called from .ndo_fill_forward_path in order to |
| 3951 | 3951 | * resolve a path for hardware flow offloading |
| 3952 | 3952 | */ |
| @@ -4277,8 +4277,8 @@ struct ieee80211_ops { · 324 unmodified lines | ||
| 4277 | 4277 | struct ieee80211_twt_setup *twt); |
| 4278 | 4278 | void (*twt_teardown_request)(struct ieee80211_hw *hw, |
| 4279 | 4279 | struct ieee80211_sta *sta, u8 flowid); |
| 4280 | − int (*set_radar_offchan)(struct ieee80211_hw *hw, | |
| 4281 | − struct cfg80211_chan_def *chandef); | |
| 4280 | + int (*set_radar_background)(struct ieee80211_hw *hw, | |
| 4281 | + struct cfg80211_chan_def *chandef); | |
| 4282 | 4282 | int (*net_fill_forward_path)(struct ieee80211_hw *hw, |
| 4283 | 4283 | struct ieee80211_vif *vif, |
| 4284 | 4284 | struct ieee80211_sta *sta, |
| @@ -2646,10 +2646,10 @@ enum nl80211_commands { · 2645 unmodified lines | ||
| 2646 | 2646 | * Mandatory parameter for the transmitting interface to enable MBSSID. |
| 2647 | 2647 | * Optional for the non-transmitting interfaces. |
| 2648 | 2648 | * |
| 2649 | − * @NL80211_ATTR_RADAR_OFFCHAN: Configure dedicated offchannel chain available for | |
| 2650 | − * radar/CAC detection on some hw. This chain can't be used to transmit | |
| 2651 | − * or receive frames and it is bounded to a running wdev. | |
| 2652 | − * Offchannel radar/CAC detection allows to avoid the CAC downtime | |
| 2649 | + * @NL80211_ATTR_RADAR_BACKGROUND: Configure dedicated offchannel chain | |
| 2650 | + * available for radar/CAC detection on some hw. This chain can't be used | |
| 2651 | + * to transmit or receive frames and it is bounded to a running wdev. | |
| 2652 | + * Background radar/CAC detection allows to avoid the CAC downtime | |
| 2653 | 2653 | * switching on a different channel during CAC detection on the selected |
| 2654 | 2654 | * radar channel. |
| 2655 | 2655 | * |
| @@ -3159,7 +3159,7 @@ enum nl80211_attrs { · 503 unmodified lines | ||
| 3159 | 3159 | NL80211_ATTR_MBSSID_CONFIG, |
| 3160 | 3160 | NL80211_ATTR_MBSSID_ELEMS, |
| 3161 | 3161 | |
| 3162 | − NL80211_ATTR_RADAR_OFFCHAN, | |
| 3162 | + NL80211_ATTR_RADAR_BACKGROUND, | |
| 3163 | 3163 | |
| 3164 | 3164 | /* add attributes here, update the policy in nl80211.c */ |
| 3165 | 3165 | |
| @@ -6066,7 +6066,7 @@ enum nl80211_feature_flags { · 2900 unmodified lines | ||
| 6066 | 6066 | * frames. Userspace has to share FILS AAD details to the driver by using |
| 6067 | 6067 | * @NL80211_CMD_SET_FILS_AAD. |
| 6068 | 6068 | * |
| 6069 | − * @NL80211_EXT_FEATURE_RADAR_OFFCHAN: Device supports offchannel radar/CAC | |
| 6069 | + * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC | |
| 6070 | 6070 | * detection. |
| 6071 | 6071 | * |
| 6072 | 6072 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| @@ -6135,7 +6135,7 @@ enum nl80211_ext_feature_index { · 62 unmodified lines | ||
| 6135 | 6135 | NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE, |
| 6136 | 6136 | NL80211_EXT_FEATURE_BSS_COLOR, |
| 6137 | 6137 | NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD, |
| 6138 | − NL80211_EXT_FEATURE_RADAR_OFFCHAN, | |
| 6138 | + NL80211_EXT_FEATURE_RADAR_BACKGROUND, | |
| 6139 | 6139 | |
| 6140 | 6140 | /* add new features before the definition below */ |
| 6141 | 6141 | NUM_NL80211_EXT_FEATURES, |
| @@ -4414,15 +4414,15 @@ out: · 4413 unmodified lines | ||
| 4414 | 4414 | } |
| 4415 | 4415 | |
| 4416 | 4416 | static int |
| 4417 | −ieee80211_set_radar_offchan(struct wiphy *wiphy, | |
| 4418 | − struct cfg80211_chan_def *chandef) | |
| 4417 | +ieee80211_set_radar_background(struct wiphy *wiphy, | |
| 4418 | + struct cfg80211_chan_def *chandef) | |
| 4419 | 4419 | { |
| 4420 | 4420 | struct ieee80211_local *local = wiphy_priv(wiphy); |
| 4421 | 4421 | |
| 4422 | − if (!local->ops->set_radar_offchan) | |
| 4422 | + if (!local->ops->set_radar_background) | |
| 4423 | 4423 | return -EOPNOTSUPP; |
| 4424 | 4424 | |
| 4425 | − return local->ops->set_radar_offchan(&local->hw, chandef); | |
| 4425 | + return local->ops->set_radar_background(&local->hw, chandef); | |
| 4426 | 4426 | } |
| 4427 | 4427 | |
| 4428 | 4428 | const struct cfg80211_ops mac80211_config_ops = { |
| @@ -4529,5 +4529,5 @@ const struct cfg80211_ops mac80211_config_ops = { · 100 unmodified lines | ||
| 4529 | 4529 | .reset_tid_config = ieee80211_reset_tid_config, |
| 4530 | 4530 | .set_sar_specs = ieee80211_set_sar_specs, |
| 4531 | 4531 | .color_change = ieee80211_color_change, |
| 4532 | − .set_radar_offchan = ieee80211_set_radar_offchan, | |
| 4532 | + .set_radar_background = ieee80211_set_radar_background, | |
| 4533 | 4533 | }; |
| @@ -718,13 +718,13 @@ static bool · 717 unmodified lines | ||
| 718 | 718 | cfg80211_offchan_chain_is_active(struct cfg80211_registered_device *rdev, |
| 719 | 719 | struct ieee80211_channel *channel) |
| 720 | 720 | { |
| 721 | − if (!rdev->offchan_radar_wdev) | |
| 721 | + if (!rdev->background_radar_wdev) | |
| 722 | 722 | return false; |
| 723 | 723 | |
| 724 | − if (!cfg80211_chandef_valid(&rdev->offchan_radar_chandef)) | |
| 724 | + if (!cfg80211_chandef_valid(&rdev->background_radar_chandef)) | |
| 725 | 725 | return false; |
| 726 | 726 | |
| 727 | − return cfg80211_is_sub_chan(&rdev->offchan_radar_chandef, channel); | |
| 727 | + return cfg80211_is_sub_chan(&rdev->background_radar_chandef, channel); | |
| 728 | 728 | } |
| 729 | 729 | |
| 730 | 730 | bool cfg80211_any_wiphy_oper_chan(struct wiphy *wiphy, |
| @@ -545,9 +545,10 @@ use_default_name: · 544 unmodified lines | ||
| 545 | 545 | INIT_WORK(&rdev->rfkill_block, cfg80211_rfkill_block_work); |
| 546 | 546 | INIT_WORK(&rdev->conn_work, cfg80211_conn_work); |
| 547 | 547 | INIT_WORK(&rdev->event_work, cfg80211_event_work); |
| 548 | − INIT_WORK(&rdev->offchan_cac_abort_wk, cfg80211_offchan_cac_abort_wk); | |
| 549 | − INIT_DELAYED_WORK(&rdev->offchan_cac_done_wk, | |
| 550 | − cfg80211_offchan_cac_done_wk); | |
| 548 | + INIT_WORK(&rdev->background_cac_abort_wk, | |
| 549 | + cfg80211_background_cac_abort_wk); | |
| 550 | + INIT_DELAYED_WORK(&rdev->background_cac_done_wk, | |
| 551 | + cfg80211_background_cac_done_wk); | |
| 551 | 552 | |
| 552 | 553 | init_waitqueue_head(&rdev->dev_wait); |
| 553 | 554 | |
| @@ -1057,13 +1058,13 @@ void wiphy_unregister(struct wiphy *wiphy) · 503 unmodified lines | ||
| 1057 | 1058 | cancel_work_sync(&rdev->conn_work); |
| 1058 | 1059 | flush_work(&rdev->event_work); |
| 1059 | 1060 | cancel_delayed_work_sync(&rdev->dfs_update_channels_wk); |
| 1060 | − cancel_delayed_work_sync(&rdev->offchan_cac_done_wk); | |
| 1061 | + cancel_delayed_work_sync(&rdev->background_cac_done_wk); | |
| 1061 | 1062 | flush_work(&rdev->destroy_work); |
| 1062 | 1063 | flush_work(&rdev->sched_scan_stop_wk); |
| 1063 | 1064 | flush_work(&rdev->propagate_radar_detect_wk); |
| 1064 | 1065 | flush_work(&rdev->propagate_cac_done_wk); |
| 1065 | 1066 | flush_work(&rdev->mgmt_registrations_update_wk); |
| 1066 | − flush_work(&rdev->offchan_cac_abort_wk); | |
| 1067 | + flush_work(&rdev->background_cac_abort_wk); | |
| 1067 | 1068 | |
| 1068 | 1069 | #ifdef CONFIG_PM |
| 1069 | 1070 | if (rdev->wiphy.wowlan_config && rdev->ops->set_wakeup) |
| @@ -1212,7 +1213,7 @@ void __cfg80211_leave(struct cfg80211_registered_device *rdev, · 142 unmodified lines | ||
| 1212 | 1213 | |
| 1213 | 1214 | cfg80211_pmsr_wdev_down(wdev); |
| 1214 | 1215 | |
| 1215 | − cfg80211_stop_offchan_radar_detection(wdev); | |
| 1216 | + cfg80211_stop_background_radar_detection(wdev); | |
| 1216 | 1217 | |
| 1217 | 1218 | switch (wdev->iftype) { |
| 1218 | 1219 | case NL80211_IFTYPE_ADHOC: |
| @@ -84,10 +84,10 @@ struct cfg80211_registered_device { · 83 unmodified lines | ||
| 84 | 84 | |
| 85 | 85 | struct delayed_work dfs_update_channels_wk; |
| 86 | 86 | |
| 87 | − struct wireless_dev *offchan_radar_wdev; | |
| 88 | − struct cfg80211_chan_def offchan_radar_chandef; | |
| 89 | − struct delayed_work offchan_cac_done_wk; | |
| 90 | − struct work_struct offchan_cac_abort_wk; | |
| 87 | + struct wireless_dev *background_radar_wdev; | |
| 88 | + struct cfg80211_chan_def background_radar_chandef; | |
| 89 | + struct delayed_work background_cac_done_wk; | |
| 90 | + struct work_struct background_cac_abort_wk; | |
| 91 | 91 | |
| 92 | 92 | /* netlink port which started critical protocol (0 means not started) */ |
| 93 | 93 | u32 crit_proto_nlportid; |
| @@ -497,15 +497,15 @@ cfg80211_chandef_dfs_cac_time(struct wiphy *wiphy, · 403 unmodified lines | ||
| 497 | 497 | void cfg80211_sched_dfs_chan_update(struct cfg80211_registered_device *rdev); |
| 498 | 498 | |
| 499 | 499 | int |
| 500 | −cfg80211_start_offchan_radar_detection(struct cfg80211_registered_device *rdev, | |
| 501 | − struct wireless_dev *wdev, | |
| 502 | − struct cfg80211_chan_def *chandef); | |
| 500 | +cfg80211_start_background_radar_detection(struct cfg80211_registered_device *rdev, | |
| 501 | + struct wireless_dev *wdev, | |
| 502 | + struct cfg80211_chan_def *chandef); | |
| 503 | 503 | |
| 504 | −void cfg80211_stop_offchan_radar_detection(struct wireless_dev *wdev); | |
| 504 | +void cfg80211_stop_background_radar_detection(struct wireless_dev *wdev); | |
| 505 | 505 | |
| 506 | −void cfg80211_offchan_cac_done_wk(struct work_struct *work); | |
| 506 | +void cfg80211_background_cac_done_wk(struct work_struct *work); | |
| 507 | 507 | |
| 508 | −void cfg80211_offchan_cac_abort_wk(struct work_struct *work); | |
| 508 | +void cfg80211_background_cac_abort_wk(struct work_struct *work); | |
| 509 | 509 | |
| 510 | 510 | bool cfg80211_any_wiphy_oper_chan(struct wiphy *wiphy, |
| 511 | 511 | struct ieee80211_channel *chan); |
| @@ -920,7 +920,7 @@ void __cfg80211_radar_event(struct wiphy *wiphy, · 919 unmodified lines | ||
| 920 | 920 | cfg80211_set_dfs_state(wiphy, chandef, NL80211_DFS_UNAVAILABLE); |
| 921 | 921 | |
| 922 | 922 | if (offchan) |
| 923 | − queue_work(cfg80211_wq, &rdev->offchan_cac_abort_wk); | |
| 923 | + queue_work(cfg80211_wq, &rdev->background_cac_abort_wk); | |
| 924 | 924 | |
| 925 | 925 | cfg80211_sched_dfs_chan_update(rdev); |
| 926 | 926 | |
| @@ -975,10 +975,10 @@ void cfg80211_cac_event(struct net_device *netdev, · 48 unmodified lines | ||
| 975 | 975 | EXPORT_SYMBOL(cfg80211_cac_event); |
| 976 | 976 | |
| 977 | 977 | static void |
| 978 | −__cfg80211_offchan_cac_event(struct cfg80211_registered_device *rdev, | |
| 979 | − struct wireless_dev *wdev, | |
| 980 | − const struct cfg80211_chan_def *chandef, | |
| 981 | − enum nl80211_radar_event event) | |
| 978 | +__cfg80211_background_cac_event(struct cfg80211_registered_device *rdev, | |
| 979 | + struct wireless_dev *wdev, | |
| 980 | + const struct cfg80211_chan_def *chandef, | |
| 981 | + enum nl80211_radar_event event) | |
| 982 | 982 | { |
| 983 | 983 | struct wiphy *wiphy = &rdev->wiphy; |
| 984 | 984 | struct net_device *netdev; |
| @@ -988,7 +988,7 @@ __cfg80211_offchan_cac_event(struct cfg80211_registered_device *rdev, · 3 unmodified lines | ||
| 988 | 988 | if (!cfg80211_chandef_valid(chandef)) |
| 989 | 989 | return; |
| 990 | 990 | |
| 991 | − if (!rdev->offchan_radar_wdev) | |
| 991 | + if (!rdev->background_radar_wdev) | |
| 992 | 992 | return; |
| 993 | 993 | |
| 994 | 994 | switch (event) { |
| @@ -997,12 +997,12 @@ __cfg80211_offchan_cac_event(struct cfg80211_registered_device *rdev, · 2 unmodified lines | ||
| 997 | 997 | memcpy(&rdev->cac_done_chandef, chandef, sizeof(*chandef)); |
| 998 | 998 | queue_work(cfg80211_wq, &rdev->propagate_cac_done_wk); |
| 999 | 999 | cfg80211_sched_dfs_chan_update(rdev); |
| 1000 | − wdev = rdev->offchan_radar_wdev; | |
| 1000 | + wdev = rdev->background_radar_wdev; | |
| 1001 | 1001 | break; |
| 1002 | 1002 | case NL80211_RADAR_CAC_ABORTED: |
| 1003 | − if (!cancel_delayed_work(&rdev->offchan_cac_done_wk)) | |
| 1003 | + if (!cancel_delayed_work(&rdev->background_cac_done_wk)) | |
| 1004 | 1004 | return; |
| 1005 | − wdev = rdev->offchan_radar_wdev; | |
| 1005 | + wdev = rdev->background_radar_wdev; | |
| 1006 | 1006 | break; |
| 1007 | 1007 | case NL80211_RADAR_CAC_STARTED: |
| 1008 | 1008 | break; |
| @@ -1015,49 +1015,49 @@ __cfg80211_offchan_cac_event(struct cfg80211_registered_device *rdev, · 6 unmodified lines | ||
| 1015 | 1015 | } |
| 1016 | 1016 | |
| 1017 | 1017 | static void |
| 1018 | −cfg80211_offchan_cac_event(struct cfg80211_registered_device *rdev, | |
| 1019 | − const struct cfg80211_chan_def *chandef, | |
| 1020 | − enum nl80211_radar_event event) | |
| 1018 | +cfg80211_background_cac_event(struct cfg80211_registered_device *rdev, | |
| 1019 | + const struct cfg80211_chan_def *chandef, | |
| 1020 | + enum nl80211_radar_event event) | |
| 1021 | 1021 | { |
| 1022 | 1022 | wiphy_lock(&rdev->wiphy); |
| 1023 | − __cfg80211_offchan_cac_event(rdev, rdev->offchan_radar_wdev, | |
| 1024 | − chandef, event); | |
| 1023 | + __cfg80211_background_cac_event(rdev, rdev->background_radar_wdev, | |
| 1024 | + chandef, event); | |
| 1025 | 1025 | wiphy_unlock(&rdev->wiphy); |
| 1026 | 1026 | } |
| 1027 | 1027 | |
| 1028 | −void cfg80211_offchan_cac_done_wk(struct work_struct *work) | |
| 1028 | +void cfg80211_background_cac_done_wk(struct work_struct *work) | |
| 1029 | 1029 | { |
| 1030 | 1030 | struct delayed_work *delayed_work = to_delayed_work(work); |
| 1031 | 1031 | struct cfg80211_registered_device *rdev; |
| 1032 | 1032 | |
| 1033 | 1033 | rdev = container_of(delayed_work, struct cfg80211_registered_device, |
| 1034 | − offchan_cac_done_wk); | |
| 1035 | − cfg80211_offchan_cac_event(rdev, &rdev->offchan_radar_chandef, | |
| 1036 | − NL80211_RADAR_CAC_FINISHED); | |
| 1034 | + background_cac_done_wk); | |
| 1035 | + cfg80211_background_cac_event(rdev, &rdev->background_radar_chandef, | |
| 1036 | + NL80211_RADAR_CAC_FINISHED); | |
| 1037 | 1037 | } |
| 1038 | 1038 | |
| 1039 | −void cfg80211_offchan_cac_abort_wk(struct work_struct *work) | |
| 1039 | +void cfg80211_background_cac_abort_wk(struct work_struct *work) | |
| 1040 | 1040 | { |
| 1041 | 1041 | struct cfg80211_registered_device *rdev; |
| 1042 | 1042 | |
| 1043 | 1043 | rdev = container_of(work, struct cfg80211_registered_device, |
| 1044 | − offchan_cac_abort_wk); | |
| 1045 | − cfg80211_offchan_cac_event(rdev, &rdev->offchan_radar_chandef, | |
| 1046 | − NL80211_RADAR_CAC_ABORTED); | |
| 1044 | + background_cac_abort_wk); | |
| 1045 | + cfg80211_background_cac_event(rdev, &rdev->background_radar_chandef, | |
| 1046 | + NL80211_RADAR_CAC_ABORTED); | |
| 1047 | 1047 | } |
| 1048 | 1048 | |
| 1049 | −void cfg80211_offchan_cac_abort(struct wiphy *wiphy) | |
| 1049 | +void cfg80211_background_cac_abort(struct wiphy *wiphy) | |
| 1050 | 1050 | { |
| 1051 | 1051 | struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy); |
| 1052 | 1052 | |
| 1053 | − queue_work(cfg80211_wq, &rdev->offchan_cac_abort_wk); | |
| 1053 | + queue_work(cfg80211_wq, &rdev->background_cac_abort_wk); | |
| 1054 | 1054 | } |
| 1055 | −EXPORT_SYMBOL(cfg80211_offchan_cac_abort); | |
| 1055 | +EXPORT_SYMBOL(cfg80211_background_cac_abort); | |
| 1056 | 1056 | |
| 1057 | 1057 | int |
| 1058 | −cfg80211_start_offchan_radar_detection(struct cfg80211_registered_device *rdev, | |
| 1059 | − struct wireless_dev *wdev, | |
| 1060 | − struct cfg80211_chan_def *chandef) | |
| 1058 | +cfg80211_start_background_radar_detection(struct cfg80211_registered_device *rdev, | |
| 1059 | + struct wireless_dev *wdev, | |
| 1060 | + struct cfg80211_chan_def *chandef) | |
| 1061 | 1061 | { |
| 1062 | 1062 | unsigned int cac_time_ms; |
| 1063 | 1063 | int err; |
| @@ -1065,19 +1065,19 @@ cfg80211_start_offchan_radar_detection(struct cfg80211_registered_device *rdev, · 1 unmodified line | ||
| 1065 | 1065 | lockdep_assert_wiphy(&rdev->wiphy); |
| 1066 | 1066 | |
| 1067 | 1067 | if (!wiphy_ext_feature_isset(&rdev->wiphy, |
| 1068 | − NL80211_EXT_FEATURE_RADAR_OFFCHAN)) | |
| 1068 | + NL80211_EXT_FEATURE_RADAR_BACKGROUND)) | |
| 1069 | 1069 | return -EOPNOTSUPP; |
| 1070 | 1070 | |
| 1071 | 1071 | /* Offchannel chain already locked by another wdev */ |
| 1072 | − if (rdev->offchan_radar_wdev && rdev->offchan_radar_wdev != wdev) | |
| 1072 | + if (rdev->background_radar_wdev && rdev->background_radar_wdev != wdev) | |
| 1073 | 1073 | return -EBUSY; |
| 1074 | 1074 | |
| 1075 | 1075 | /* CAC already in progress on the offchannel chain */ |
| 1076 | − if (rdev->offchan_radar_wdev == wdev && | |
| 1077 | − delayed_work_pending(&rdev->offchan_cac_done_wk)) | |
| 1076 | + if (rdev->background_radar_wdev == wdev && | |
| 1077 | + delayed_work_pending(&rdev->background_cac_done_wk)) | |
| 1078 | 1078 | return -EBUSY; |
| 1079 | 1079 | |
| 1080 | − err = rdev_set_radar_offchan(rdev, chandef); | |
| 1080 | + err = rdev_set_radar_background(rdev, chandef); | |
| 1081 | 1081 | if (err) |
| 1082 | 1082 | return err; |
| 1083 | 1083 | |
| @@ -1085,30 +1085,31 @@ cfg80211_start_offchan_radar_detection(struct cfg80211_registered_device *rdev, · 1 unmodified line | ||
| 1085 | 1085 | if (!cac_time_ms) |
| 1086 | 1086 | cac_time_ms = IEEE80211_DFS_MIN_CAC_TIME_MS; |
| 1087 | 1087 | |
| 1088 | − rdev->offchan_radar_chandef = *chandef; | |
| 1089 | − rdev->offchan_radar_wdev = wdev; /* Get offchain ownership */ | |
| 1088 | + rdev->background_radar_chandef = *chandef; | |
| 1089 | + rdev->background_radar_wdev = wdev; /* Get offchain ownership */ | |
| 1090 | 1090 | |
| 1091 | − __cfg80211_offchan_cac_event(rdev, wdev, chandef, | |
| 1092 | − NL80211_RADAR_CAC_STARTED); | |
| 1093 | − queue_delayed_work(cfg80211_wq, &rdev->offchan_cac_done_wk, | |
| 1091 | + __cfg80211_background_cac_event(rdev, wdev, chandef, | |
| 1092 | + NL80211_RADAR_CAC_STARTED); | |
| 1093 | + queue_delayed_work(cfg80211_wq, &rdev->background_cac_done_wk, | |
| 1094 | 1094 | msecs_to_jiffies(cac_time_ms)); |
| 1095 | 1095 | |
| 1096 | 1096 | return 0; |
| 1097 | 1097 | } |
| 1098 | 1098 | |
| 1099 | −void cfg80211_stop_offchan_radar_detection(struct wireless_dev *wdev) | |
| 1099 | +void cfg80211_stop_background_radar_detection(struct wireless_dev *wdev) | |
| 1100 | 1100 | { |
| 1101 | 1101 | struct wiphy *wiphy = wdev->wiphy; |
| 1102 | 1102 | struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy); |
| 1103 | 1103 | |
| 1104 | 1104 | lockdep_assert_wiphy(wiphy); |
| 1105 | 1105 | |
| 1106 | − if (wdev != rdev->offchan_radar_wdev) | |
| 1106 | + if (wdev != rdev->background_radar_wdev) | |
| 1107 | 1107 | return; |
| 1108 | 1108 | |
| 1109 | − rdev_set_radar_offchan(rdev, NULL); | |
| 1110 | − rdev->offchan_radar_wdev = NULL; /* Release offchain ownership */ | |
| 1109 | + rdev_set_radar_background(rdev, NULL); | |
| 1110 | + rdev->background_radar_wdev = NULL; /* Release offchain ownership */ | |
| 1111 | 1111 | |
| 1112 | − __cfg80211_offchan_cac_event(rdev, wdev, &rdev->offchan_radar_chandef, | |
| 1113 | − NL80211_RADAR_CAC_ABORTED); | |
| 1112 | + __cfg80211_background_cac_event(rdev, wdev, | |
| 1113 | + &rdev->background_radar_chandef, | |
| 1114 | + NL80211_RADAR_CAC_ABORTED); | |
| 1114 | 1115 | } |
| @@ -776,7 +776,7 @@ static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = { · 775 unmodified lines | ||
| 776 | 776 | [NL80211_ATTR_MBSSID_CONFIG] = |
| 777 | 777 | NLA_POLICY_NESTED(nl80211_mbssid_config_policy), |
| 778 | 778 | [NL80211_ATTR_MBSSID_ELEMS] = { .type = NLA_NESTED }, |
| 779 | − [NL80211_ATTR_RADAR_OFFCHAN] = { .type = NLA_FLAG }, | |
| 779 | + [NL80211_ATTR_RADAR_BACKGROUND] = { .type = NLA_FLAG }, | |
| 780 | 780 | }; |
| 781 | 781 | |
| 782 | 782 | /* policy for the key attributes */ |
| @@ -9305,9 +9305,9 @@ static int nl80211_start_radar_detection(struct sk_buff *skb, · 8522 unmodified lines | ||
| 9305 | 9305 | goto unlock; |
| 9306 | 9306 | } |
| 9307 | 9307 | |
| 9308 | − if (nla_get_flag(info->attrs[NL80211_ATTR_RADAR_OFFCHAN])) { | |
| 9309 | − err = cfg80211_start_offchan_radar_detection(rdev, wdev, | |
| 9310 | − &chandef); | |
| 9308 | + if (nla_get_flag(info->attrs[NL80211_ATTR_RADAR_BACKGROUND])) { | |
| 9309 | + err = cfg80211_start_background_radar_detection(rdev, wdev, | |
| 9310 | + &chandef); | |
| 9311 | 9311 | goto unlock; |
| 9312 | 9312 | } |
| 9313 | 9313 | |
| @@ -1396,17 +1396,17 @@ rdev_set_fils_aad(struct cfg80211_registered_device *rdev, · 1395 unmodified lines | ||
| 1396 | 1396 | } |
| 1397 | 1397 | |
| 1398 | 1398 | static inline int |
| 1399 | −rdev_set_radar_offchan(struct cfg80211_registered_device *rdev, | |
| 1400 | − struct cfg80211_chan_def *chandef) | |
| 1399 | +rdev_set_radar_background(struct cfg80211_registered_device *rdev, | |
| 1400 | + struct cfg80211_chan_def *chandef) | |
| 1401 | 1401 | { |
| 1402 | 1402 | struct wiphy *wiphy = &rdev->wiphy; |
| 1403 | 1403 | int ret; |
| 1404 | 1404 | |
| 1405 | − if (!rdev->ops->set_radar_offchan) | |
| 1405 | + if (!rdev->ops->set_radar_background) | |
| 1406 | 1406 | return -EOPNOTSUPP; |
| 1407 | 1407 | |
| 1408 | − trace_rdev_set_radar_offchan(wiphy, chandef); | |
| 1409 | − ret = rdev->ops->set_radar_offchan(wiphy, chandef); | |
| 1408 | + trace_rdev_set_radar_background(wiphy, chandef); | |
| 1409 | + ret = rdev->ops->set_radar_background(wiphy, chandef); | |
| 1410 | 1410 | trace_rdev_return_int(wiphy, ret); |
| 1411 | 1411 | |
| 1412 | 1412 | return ret; |
| @@ -3677,7 +3677,7 @@ TRACE_EVENT(cfg80211_bss_color_notify, · 3676 unmodified lines | ||
| 3677 | 3677 | __entry->color_bitmap) |
| 3678 | 3678 | ); |
| 3679 | 3679 | |
| 3680 | −TRACE_EVENT(rdev_set_radar_offchan, | |
| 3680 | +TRACE_EVENT(rdev_set_radar_background, | |
| 3681 | 3681 | TP_PROTO(struct wiphy *wiphy, struct cfg80211_chan_def *chandef), |
| 3682 | 3682 | |
| 3683 | 3683 | TP_ARGS(wiphy, chandef), |