[PATCH 3/3] ath11k: add support for BSS coloring
Rajkumar Manoharan
rmanohar at codeaurora.org
Tue Jun 23 17:53:53 EDT 2020
On 2020-06-17 08:00, John Crispin wrote:
> Whenever the MAC detects a color collision or any of its associated
> station
> detects one the FW will send out an event. Add the code to parse and
> handle
> this event. and pass the data up to mac80211.
>
> The FW does not provide an offload future such as the one used for CSA.
> The
> CCA process is hence triggered via the beacon offload tx completion
> events
> sent out by the FW.
>
[...]
> +static void
> +ath11k_wmi_obss_color_collision_event(struct ath11k_base *ab, struct
> sk_buff *skb)
> +{
> + const void **tb;
> + const struct wmi_obss_color_collision_event *ev;
> + struct ath11k_vif *arvif;
> + int ret;
> +
> + tb = ath11k_wmi_tlv_parse_alloc(ab, skb->data, skb->len, GFP_ATOMIC);
> + if (IS_ERR(tb)) {
> + ret = PTR_ERR(tb);
> + ath11k_warn(ab, "failed to parse tlv: %d\n", ret);
> + return;
> + }
> +
> + ev = tb[WMI_TAG_OBSS_COLOR_COLLISION_EVT];
> + if (!ev) {
> + ath11k_warn(ab, "failed to fetch obss color collision ev");
> + goto exit;
> + }
> +
> + arvif = ath11k_mac_get_arvif_by_vdev_id(ab, ev->vdev_id);
> + switch (ev->evt_type) {
> + case WMI_BSS_COLOR_COLLISION_DETECTION:
> + break;
> + case WMI_BSS_COLOR_COLLISION_DISABLE:
> + case WMI_BSS_COLOR_FREE_SLOT_TIMER_EXPIRY:
> + case WMI_BSS_COLOR_FREE_SLOT_AVAILABLE:
> + return;
>
tb should be freed here.
-Rajkumar
More information about the ath11k
mailing list