summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau2021-11-18 22:28:35 +0000
committerFelix Fietkau2021-11-19 16:14:55 +0000
commit46cf3eae2d99052fdbca347293fe7366cdbc576f (patch)
tree52b1a8f5f9a4f909178557bd12aff28dd432cf29
parentbc54c97e3333d069a81bb64ef117c6b7bf13de5c (diff)
downloadqosify-46cf3eae2d99052fdbca347293fe7366cdbc576f.tar.gz
bpf: fix bulk flow detaction
Take number of GSO segments into account Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--qosify-bpf.c5
1 files changed, 4 insertions, 1 deletions
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;