Commit aef6c928a92481f75fbd548eb8c1e840912444b8

Authored by Helmut Schaa
Committed by John W. Linville
1 parent 3aebee028a

mac80211: Keep skb->piority for relayed frames in AP mode

When mac80211 relays a frame from STA1 to STA2 in AP mode it will get
re-classified in the tx path. Unfortunately the frame protocol field
is always set to ETH_P_8023 while the classification only kicks in
for ETH_P_IP. Hence, a high priority frame from STA1 will be send to
STA2 as best effort.

Instead of running classification on the frame just use the same
priority as STA1 did. Do this by adding 256 to the skb->priority
to allow cfg80211_classify8021d to shortcut frame classification.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Showing 1 changed file with 6 additions and 1 deletions Side-by-side Diff

... ... @@ -1827,7 +1827,12 @@
1827 1827 }
1828 1828  
1829 1829 if (xmit_skb) {
1830   - /* send to wireless media */
  1830 + /*
  1831 + * Send to wireless media and increase priority by 256 to
  1832 + * keep the received priority instead of reclassifying
  1833 + * the frame (see cfg80211_classify8021d).
  1834 + */
  1835 + xmit_skb->priority += 256;
1831 1836 xmit_skb->protocol = htons(ETH_P_802_3);
1832 1837 skb_reset_network_header(xmit_skb);
1833 1838 skb_reset_mac_header(xmit_skb);