[PATCH net-next 1/3] net: sched: sch_choke: add statistics when calling qdisc_drop() in sch_choke

From: Zhengchao Shao
Date: Wed Aug 24 2022 - 23:27:17 EST


Now, the "other" member in the choke_sched_data structure is not used.
According to the description, "other" should be added when calling
qdisc_drop() to discard packets.

Signed-off-by: Zhengchao Shao <shaozhengchao@xxxxxxxxxx>
---
net/sched/sch_choke.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/net/sched/sch_choke.c b/net/sched/sch_choke.c
index 2adbd945bf15..19c25ec36d0d 100644
--- a/net/sched/sch_choke.c
+++ b/net/sched/sch_choke.c
@@ -60,7 +60,7 @@ struct choke_sched_data {
u32 forced_drop; /* Forced drops, qavg > max_thresh */
u32 forced_mark; /* Forced marks, qavg > max_thresh */
u32 pdrop; /* Drops due to queue limits */
- u32 other; /* Drops due to drop() calls */
+ u32 other; /* Drops due to qdisc_drop() calls */
u32 matched; /* Drops to flow match */
} stats;

@@ -127,6 +127,7 @@ static void choke_drop_by_idx(struct Qdisc *sch, unsigned int idx,
qdisc_qstats_backlog_dec(sch, skb);
qdisc_tree_reduce_backlog(sch, 1, qdisc_pkt_len(skb));
qdisc_drop(skb, sch, to_free);
+ q->stats.other++;
--sch->q.qlen;
}

@@ -274,9 +275,11 @@ static int choke_enqueue(struct sk_buff *skb, struct Qdisc *sch,
}

q->stats.pdrop++;
+ q->stats.other++;
return qdisc_drop(skb, sch, to_free);

congestion_drop:
+ q->stats.other++;
qdisc_drop(skb, sch, to_free);
return NET_XMIT_CN;
}
--
2.17.1