}
 
 static const char mt7915_gstrings_stats[][ETH_GSTRING_LEN] = {
+       "tx_ampdu_cnt",
+       "tx_stop_q_empty_cnt",
+       "tx_mpdu_attempts",
+       "tx_mpdu_success",
+       "tx_rwp_fail_cnt",
+       "tx_rwp_need_cnt",
+       "tx_pkt_ebf_cnt",
+       "tx_pkt_ibf_cnt",
        "tx_ampdu_len:0-1",
        "tx_ampdu_len:2-10",
        "tx_ampdu_len:11-19",
        "tx_msdu_pack_6",
        "tx_msdu_pack_7",
        "tx_msdu_pack_8",
+
+       /* rx counters */
+       "rx_fifo_full_cnt",
+       "rx_mpdu_cnt",
+       "channel_idle_cnt",
+       "rx_vector_mismatch_cnt",
+       "rx_delimiter_fail_cnt",
+       "rx_len_mismatch_cnt",
+       "rx_ampdu_cnt",
+       "rx_ampdu_bytes_cnt",
+       "rx_ampdu_valid_subframe_cnt",
+       "rx_ampdu_valid_subframe_b_cnt",
+       "rx_pfdrop_cnt",
+       "rx_vec_queue_overflow_drop_cnt",
+       "rx_ba_cnt",
+
        /* per vif counters */
        "v_tx_mode_cck",
        "v_tx_mode_ofdm",
        bool ext_phy = phy != &dev->phy;
        int i, n, ei = 0;
 
+       data[ei++] = mib->tx_ampdu_cnt;
+       data[ei++] = mib->tx_stop_q_empty_cnt;
+       data[ei++] = mib->tx_mpdu_attempts_cnt;
+       data[ei++] = mib->tx_mpdu_success_cnt;
+       data[ei++] = mib->tx_rwp_fail_cnt;
+       data[ei++] = mib->tx_rwp_need_cnt;
+       data[ei++] = mib->tx_pkt_ebf_cnt;
+       data[ei++] = mib->tx_pkt_ibf_cnt;
+
        /* Tx ampdu stat */
        n = ext_phy ? ARRAY_SIZE(dev->mt76.aggr_stats) / 2 : 0;
        for (i = 0; i < 15 /*ARRAY_SIZE(bound)*/; i++)
        for (i = 0; i < 8; i++)
                data[ei++] = mt76_rr(dev,  MT_PLE_AMSDU_PACK_MSDU_CNT(i));
 
+       /* rx counters */
+       data[ei++] = mib->rx_fifo_full_cnt;
+       data[ei++] = mib->rx_mpdu_cnt;
+       data[ei++] = mib->channel_idle_cnt;
+       data[ei++] = mib->rx_vector_mismatch_cnt;
+       data[ei++] = mib->rx_delimiter_fail_cnt;
+       data[ei++] = mib->rx_len_mismatch_cnt;
+       data[ei++] = mib->rx_ampdu_cnt;
+       data[ei++] = mib->rx_ampdu_bytes_cnt;
+       data[ei++] = mib->rx_ampdu_valid_subframe_cnt;
+       data[ei++] = mib->rx_ampdu_valid_subframe_bytes_cnt;
+       data[ei++] = mib->rx_pfdrop_cnt;
+       data[ei++] = mib->rx_vec_queue_overflow_drop_cnt;
+       data[ei++] = mib->rx_ba_cnt;
+
        /* Add values for all stations owned by this vif */
        wi.data = data;
        wi.mvif = mvif;