aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/rx.c
diff options
context:
space:
mode:
authorJavier Cardona <javier@cozybit.com>2011-09-07 20:49:52 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-09-14 13:56:48 -0400
commit4777be41638cfab56c78b2a764a5f83beb6cfdd2 (patch)
tree9b041c2ffdaccf13a24b8bdb62c817cc87942a01 /net/mac80211/rx.c
parent3de3d966007592693e68a973f62a1e3828565af0 (diff)
mac80211: Start implementing QoS support for mesh interfaces
In order to support QoS in mesh, we need to assign queue mapping only after the next hop has been resolved, both for forwarded and locally originated frames. Also, now that this is fixed, remove the XXX comment in ieee80211_select_queue(). Also, V-Shy Ho reported that the queue mapping was not being applied to the forwarded frame (fwd_skb instead of skb). Fixed that as well. Signed-off-by: Javier Cardona <javier@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r--net/mac80211/rx.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 811e3ade8c74..b1ea4444065e 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1905,13 +1905,13 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
1905 memset(info, 0, sizeof(*info)); 1905 memset(info, 0, sizeof(*info));
1906 info->flags |= IEEE80211_TX_INTFL_NEED_TXPROCESSING; 1906 info->flags |= IEEE80211_TX_INTFL_NEED_TXPROCESSING;
1907 info->control.vif = &rx->sdata->vif; 1907 info->control.vif = &rx->sdata->vif;
1908 skb_set_queue_mapping(skb, 1908 if (is_multicast_ether_addr(fwd_hdr->addr1)) {
1909 ieee80211_select_queue(rx->sdata, fwd_skb));
1910 ieee80211_set_qos_hdr(local, skb);
1911 if (is_multicast_ether_addr(fwd_hdr->addr1))
1912 IEEE80211_IFSTA_MESH_CTR_INC(&sdata->u.mesh, 1909 IEEE80211_IFSTA_MESH_CTR_INC(&sdata->u.mesh,
1913 fwded_mcast); 1910 fwded_mcast);
1914 else { 1911 skb_set_queue_mapping(fwd_skb,
1912 ieee80211_select_queue(sdata, fwd_skb));
1913 ieee80211_set_qos_hdr(local, fwd_skb);
1914 } else {
1915 int err; 1915 int err;
1916 /* 1916 /*
1917 * Save TA to addr1 to send TA a path error if a 1917 * Save TA to addr1 to send TA a path error if a