From: Felix Fietkau Date: Thu, 18 Nov 2021 22:28:35 +0000 (+0100) Subject: bpf: fix bulk flow detaction X-Git-Url: http://git.openwrt.org/openwrt/feeds.git?p=project%2Fqosify.git;a=commitdiff_plain;h=46cf3eae2d99052fdbca347293fe7366cdbc576f bpf: fix bulk flow detaction Take number of GSO segments into account Signed-off-by: Felix Fietkau --- 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;