aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/rx.c
diff options
context:
space:
mode:
authorHelmut Schaa <helmut.schaa@googlemail.com>2011-12-21 03:11:35 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-12-21 15:07:52 -0500
commitaef6c928a92481f75fbd548eb8c1e840912444b8 (patch)
tree69211e517ad04d83c4dad31ef2009b28010c009a /net/mac80211/rx.c
parent3aebee028aa8eb8ed49b7dbd52dfb841f6dc8dff (diff)
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>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r--net/mac80211/rx.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 57832eb44f3e..59f124c58333 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1827,7 +1827,12 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)
1827 } 1827 }
1828 1828
1829 if (xmit_skb) { 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 xmit_skb->protocol = htons(ETH_P_802_3); 1836 xmit_skb->protocol = htons(ETH_P_802_3);
1832 skb_reset_network_header(xmit_skb); 1837 skb_reset_network_header(xmit_skb);
1833 skb_reset_mac_header(xmit_skb); 1838 skb_reset_mac_header(xmit_skb);