← All stations
09 N334°·r76 Beta

trickle_nfq

Hold UDP packets, drip them out, then release the backlog in order.

TypeCLI tool
Primary languagePython
InterfaceCLI
StatusBeta
Overview

What it is

A Linux port of the Trickle module from a fork of clumsy, the Windows network-degradation tool. trickle_nfq diverts matching UDP packets to userspace with an NFQUEUE rule, holds them in a FIFO queue, and releases a set number per interval, oldest first.

It reproduces the original module's behavior and defaults. Run it on a hotspot or router to slow a client's outbound traffic to one host while replies arrive untouched. Turn trickling off to flush the backlog in order or drop it.

Features

What it does

01

Per-interval pacing

Releases up to N packets per interval window, oldest first, on a 40 ms clock like clumsy.

02

Speed multipliers

Inst, Orig, 2x, 5x, 10x, 50x, 0.5x and 0.25x scale the interval live.

03

Bounded queue

A Max Q cap with Drop Newest or Drop Oldest overflow handling.

04

Flush or drop on shutoff

Turning it off releases the whole queue in order, or discards it, per the Flush setting.

05

Live controls

Keyboard toggles and edits in the terminal, plus signal control when run headless.

06

Clean, safe plumbing

Uses a mangle-table rule so existing firewall and NAT rules still apply. Bypasses the queue if the program dies, and removes its rule on exit.

Roadmap

Where it's going

Port of the Trickle module

Shipped

Pacing, speeds, overflow, flush and status line matching the decompiled clumsy fork.

Live controls & headless mode

Shipped

Interactive key bindings, plus SIGUSR1/SIGUSR2 toggles and a once-a-second status log.

Real-hardware validation

In progress

Testing on a live Linux hotspot with real client traffic.

Presets & multiple filters

Planned

Saved setting presets and several target filters at once.

Technology

What it's built on

Core
Python 3
Packet capture
NFQUEUENetfilterQueueiptables / ip6tables