[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