From 46cf3eae2d99052fdbca347293fe7366cdbc576f Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 18 Nov 2021 23:28:35 +0100 Subject: [PATCH] bpf: fix bulk flow detaction Take number of GSO segments into account Signed-off-by: Felix Fietkau --- qosify-bpf.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/qosify-bpf.c b/qosify-bpf.c index b7e7093..d59415f 100644 --- a/qosify-bpf.c +++ b/qosify-bpf.c @@ -283,6 +283,7 @@ check_flow_bulk(struct qosify_flow_config *config, struct __sk_buff *skb, bool trigger = false; __s32 delta; __u32 time; + int segs = 1; if (!config->bulk_trigger_pps) return; @@ -295,7 +296,9 @@ check_flow_bulk(struct qosify_flow_config *config, struct __sk_buff *skb, if ((u32)delta > FLOW_TIMEOUT) goto reset; - flow->pkt_count++; + if (skb->gso_size && skb->gso_segs) + segs = skb->gso_segs; + flow->pkt_count += segs; if (flow->pkt_count > config->bulk_trigger_pps) { flow->bulk_timeout = config->bulk_trigger_timeout + 1; trigger = true; -- 2.30.2