Search Linux Wireless

Re: [RFC 14/14] mac80211: mesh PS individually-addressed frame release

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2012-11-16 at 22:48 -0800, Marco Porsch wrote:

> +static inline bool test_and_set_psp_flag(struct sta_info *sta,
> +					 enum ieee80211_sta_info_flags flag)
> +{
> +	if (!test_and_set_sta_flag(sta, flag)) {
> +		atomic_inc(&sta->sdata->u.mesh.num_psp);

This is ... strange? Can a single station really own *two* num_psp
refcounts?

> +	nullfunc = (struct ieee80211_hdr *) skb->data;
> +	if (!eosp)
> +		nullfunc->frame_control |=
> +				cpu_to_le16(IEEE80211_FCTL_MOREDATA);

This seems wrong -- EOSP and moredata are orthogonal (with the
restriction that "!EOSP => moredata") -- but if you just have that in
the code the moredata bit won't always be set correctly.

> +	/* Send all internal mgmt frames on VO. Accordingly set TID to 7. */
> +	drv_allow_buffered_frames(sdata->local, sta, BIT(7), 1,
> +				  IEEE80211_FRAME_RELEASE_UAPSD, !eosp);

ditto, passing !eosp definitely seems wrong

> +/**
> + * ieee80211_qos_null_append - append QoS Null as PSP trigger (if necessary)

append? where? why not static?

> +		ieee80211_sta_ps_deliver_response(sta, 1, 0,
> +				IEEE80211_FRAME_RELEASE_UAPSD);

uAPSD?

The standard *explicitly* states that ASPD is *not* supported in mesh.

Ok I don't really get this, need more time I guess .. also it seems
really hacked together.

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux