> > On Tue, Jul 21, 2015 at 1:12 AM, Emmanuel Grumbach > <emmanuel.grumbach@xxxxxxxxx> wrote: > > > > diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c index > > c8ba2e7..a758eb84 100644 > > --- a/net/mac80211/agg-tx.c > > +++ b/net/mac80211/agg-tx.c > > @@ -97,7 +97,8 @@ static void ieee80211_send_addba_request(struct > ieee80211_sub_if_data *sdata, > > mgmt->u.action.u.addba_req.action_code = > > WLAN_ACTION_ADDBA_REQ; > > > > mgmt->u.action.u.addba_req.dialog_token = dialog_token; > > - capab = (u16)(1 << 1); /* bit 1 aggregation policy */ > > + capab = (u16)(1 << 0); /* bit 0 A-MSDU support */ > > Shouldn't this be based on HW capability? We can add couple of more _HW_ > flags for TX and RX and populate this based on that? Why? What will happen if we ask for A-MSDU inside A-MPDU and we won't do A-MSDU? Worst case, the AP will deny this and will clear that bit in its response. > > > > > + capab |= (u16)(1 << 1); /* bit 1 aggregation policy */ > > capab |= (u16)(tid << 2); /* bit 5:2 TID number */ > > capab |= (u16)(agg_size << 6); /* bit 15:6 max size of > > aggergation */ ��.n��������+%������w��{.n�����{���zW����ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f