diff options
| author | Felix Fietkau | 2021-11-18 22:28:35 +0000 |
|---|---|---|
| committer | Felix Fietkau | 2021-11-19 16:14:55 +0000 |
| commit | 46cf3eae2d99052fdbca347293fe7366cdbc576f (patch) | |
| tree | 52b1a8f5f9a4f909178557bd12aff28dd432cf29 | |
| parent | bc54c97e3333d069a81bb64ef117c6b7bf13de5c (diff) | |
| download | qosify-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.c | 5 |
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; |