qcacmn: Ratelimit defrag path error logs and add stats
Ratelimit the defrag path error logs and add the stats for fragmented packets received out-of-order which inturn leads to sequence number mistamtch in defrag path. Change-Id: I17d4c1cff214a8c8a05abf576701824b293d2883 CRs-Fixed: 2740805
This commit is contained in:

committed by
snandini

orang tua
5e49c050f4
melakukan
19a0a18573
@@ -134,8 +134,7 @@ static void dp_rx_return_head_frag_desc(struct dp_peer *peer,
|
||||
void dp_rx_reorder_flush_frag(struct dp_peer *peer,
|
||||
unsigned int tid)
|
||||
{
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_HIGH,
|
||||
FL("Flushing TID %d"), tid);
|
||||
dp_info_rl("Flushing TID %d", tid);
|
||||
|
||||
if (!peer) {
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||
@@ -1300,9 +1299,6 @@ static QDF_STATUS dp_rx_defrag(struct dp_peer *peer, unsigned tid,
|
||||
hdr_space += dp_f_wep.ic_header;
|
||||
break;
|
||||
default:
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX,
|
||||
QDF_TRACE_LEVEL_ERROR,
|
||||
"dp_rx_defrag: Did not match any security type");
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1536,12 +1532,7 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc,
|
||||
*/
|
||||
dp_rx_reorder_flush_frag(peer, tid);
|
||||
|
||||
DP_STATS_INC(soc, rx.rx_frag_err, 1);
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
||||
"%s mismatch, dropping earlier sequence ",
|
||||
(rxseq == rx_tid->curr_seq_num)
|
||||
? "address"
|
||||
: "seq number");
|
||||
DP_STATS_INC(soc, rx.rx_frag_oor, 1);
|
||||
|
||||
/*
|
||||
* The sequence number for this fragment becomes the
|
||||
|
@@ -6559,6 +6559,7 @@ dp_print_soc_rx_stats(struct dp_soc *soc)
|
||||
DP_PRINT_STATS("RX frags: %d", soc->stats.rx.rx_frags);
|
||||
DP_PRINT_STATS("RX frag wait: %d", soc->stats.rx.rx_frag_wait);
|
||||
DP_PRINT_STATS("RX frag err: %d", soc->stats.rx.rx_frag_err);
|
||||
DP_PRINT_STATS("RX frag OOR: %d", soc->stats.rx.rx_frag_oor);
|
||||
|
||||
DP_PRINT_STATS("RX HP out_of_sync: %d", soc->stats.rx.hp_oos2);
|
||||
DP_PRINT_STATS("RX Ring Near Full: %d", soc->stats.rx.near_full);
|
||||
|
@@ -770,6 +770,8 @@ struct dp_soc_stats {
|
||||
uint32_t rx_frag_wait;
|
||||
/* Fragments dropped due to errors */
|
||||
uint32_t rx_frag_err;
|
||||
/* Fragments received OOR causing sequence num mismatch */
|
||||
uint32_t rx_frag_oor;
|
||||
/* Fragments dropped due to len errors in skb */
|
||||
uint32_t rx_frag_err_len_error;
|
||||
/* Fragments dropped due to no peer found */
|
||||
|
Reference in New Issue
Block a user