static void rs_rate_scale_perform(struct iwl_mvm *mvm,
                                  struct ieee80211_sta *sta,
                                  struct iwl_lq_sta *lq_sta,
-                                 int tid);
+                                 int tid, bool ndp);
 static void rs_fill_lq_cmd(struct iwl_mvm *mvm,
                           struct ieee80211_sta *sta,
                           struct iwl_lq_sta *lq_sta,
 }
 
 void iwl_mvm_rs_tx_status(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
-                         int tid, struct ieee80211_tx_info *info)
+                         int tid, struct ieee80211_tx_info *info, bool ndp)
 {
        int legacy_success;
        int retries;
 done:
        /* See if there's a better rate or modulation mode to try. */
        if (sta->supp_rates[info->band])
-               rs_rate_scale_perform(mvm, sta, lq_sta, tid);
+               rs_rate_scale_perform(mvm, sta, lq_sta, tid, ndp);
 }
 
 /*
            info->flags & IEEE80211_TX_CTL_NO_ACK)
                return;
 
-       iwl_mvm_rs_tx_status(mvm, sta, rs_get_tid(hdr), info);
+       iwl_mvm_rs_tx_status(mvm, sta, rs_get_tid(hdr), info,
+                            ieee80211_is_qos_nullfunc(hdr->frame_control));
 }
 
 /*
 static void rs_rate_scale_perform(struct iwl_mvm *mvm,
                                  struct ieee80211_sta *sta,
                                  struct iwl_lq_sta *lq_sta,
-                                 int tid)
+                                 int tid, bool ndp)
 {
        int low = IWL_RATE_INVALID;
        int high = IWL_RATE_INVALID;
                            (lq_sta->tx_agg_tid_en & (1 << tid)) &&
                            (tid != IWL_MAX_TID_COUNT)) {
                                tid_data = &sta_priv->tid_data[tid];
-                               if (tid_data->state == IWL_AGG_OFF) {
+                               if (tid_data->state == IWL_AGG_OFF && !ndp) {
                                        IWL_DEBUG_RATE(mvm,
                                                       "try to aggregate tid %d\n",
                                                       tid);