mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-08 12:58:12 -04:00
wil6210: enable access category queues
Set ac_queues default to enabled. Change wil_select_ac_queue to return higher priority queue for EAPOL, ARP and ICMP packets. These special packets are critical to maintain the link with the AP and guarantee healthy operations and diagnostics in the network. Special packets will get the higher priority to ensure early transmission when access category is enabled. Change-Id: Ic03a810c303f614174f9f10c72e339ee32a6f023 Signed-off-by: Ahmad Masri <amasri@codeaurora.org>
This commit is contained in:
parent
b990cfb88f
commit
8ca4b705ac
3 changed files with 8 additions and 5 deletions
|
|
@ -19,9 +19,9 @@ module_param(alt_ifname, bool, 0444);
|
|||
MODULE_PARM_DESC(alt_ifname, " use an alternate interface name wigigN instead of wlanN");
|
||||
|
||||
/* enable access category for transmit packets, this parameter may be controlled
|
||||
* via wigig.ini config file, default disabled
|
||||
* via wigig.ini config file, default enabled
|
||||
*/
|
||||
bool ac_queues;
|
||||
bool ac_queues = true;
|
||||
|
||||
bool wil_has_other_active_ifaces(struct wil6210_priv *wil,
|
||||
struct net_device *ndev, bool up, bool ok)
|
||||
|
|
@ -114,7 +114,9 @@ static u16 wil_select_queue(struct net_device *ndev,
|
|||
return 0;
|
||||
|
||||
/* determine the priority */
|
||||
if (skb->priority == 0 || skb->priority > 7)
|
||||
if (wil_is_special_packet(skb))
|
||||
skb->priority = 7;
|
||||
else if (skb->priority == 0 || skb->priority > 7)
|
||||
skb->priority = cfg80211_classify8021d(skb, NULL);
|
||||
|
||||
qid = wil_1d_to_queue[skb->priority];
|
||||
|
|
|
|||
|
|
@ -2042,7 +2042,7 @@ err_exit:
|
|||
return rc;
|
||||
}
|
||||
|
||||
static inline bool is_special_packet(const struct sk_buff *skb)
|
||||
bool wil_is_special_packet(const struct sk_buff *skb)
|
||||
{
|
||||
if (skb->protocol == cpu_to_be16(ETH_P_ARP) ||
|
||||
skb->protocol == cpu_to_be16(ETH_P_RARP) ||
|
||||
|
|
@ -2073,7 +2073,7 @@ static int __wil_tx_ring(struct wil6210_priv *wil, struct wil6210_vif *vif,
|
|||
bool mcast = (ring_index == vif->bcast_ring);
|
||||
uint len = skb_headlen(skb);
|
||||
bool special_packet = (wil->tx_reserved_entries != 0 &&
|
||||
is_special_packet(skb));
|
||||
wil_is_special_packet(skb));
|
||||
int avail = wil_ring_avail_tx(ring) -
|
||||
(special_packet ? 0 : txdata->tx_reserved_count);
|
||||
u8 ctx_flags = special_packet ? WIL_CTX_FLAG_RESERVED_USED : 0;
|
||||
|
|
|
|||
|
|
@ -696,5 +696,6 @@ void wil_init_txrx_ops_legacy_dma(struct wil6210_priv *wil);
|
|||
void wil_tx_latency_calc(struct wil6210_priv *wil, struct sk_buff *skb,
|
||||
struct wil_sta_info *sta);
|
||||
int wil_get_cid_by_ring(struct wil6210_priv *wil, struct wil_ring *ring);
|
||||
bool wil_is_special_packet(const struct sk_buff *skb);
|
||||
|
||||
#endif /* WIL6210_TXRX_H */
|
||||
|
|
|
|||
Loading…
Reference in a new issue