Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sakateka/htb-simulator

Hierachical token bucket simulator
https://github.com/sakateka/htb-simulator

algorithm c ebpf hierarchical-token-bucket htb token-bucket xdp

Last synced: 7 days ago
JSON representation

Hierachical token bucket simulator

Awesome Lists containing this project

README

        

## Симулятор нагрузки для проверки реализаций токен бакетов

Симулятор может работать в 2х режимах 'make run' и 'make script', работает всё через make.

В интерактивном режиме (`make run`) make запускает симулятор под rlwrap,
rlwrap предоставляет удобный REPL с историей и поддержкой многострочного редактирования (Ctrl+^).

REPL на любую непонятную команду отвечает справкой, так что если что не ясно можно почитать help.

Для отображения симуляции понадобится утилита https://github.com/sakateka/tlook

## Реализации

### Token bucket (TB)
Все tb-*.c содержат рабочие варианты token bucket-ов
- tb-v3.c - Наиболее удачная версия, на основе который был сделан htb-v5.c
- tb-dnsguard.c - tb-v3.c с незначительными правками в интерфейсе функции
- tb-old.c - текущая продакшен реализация (уже заменена)
- tb-new.c - альтернативная реализация, которая не была зарелизена, но которую я решил реализовать и отладить тут. Этот вариант устарел в пользу tb-v3.c
- tb-bad.c - одна из неудачных попыток

### Hierarchical Token Bucket (HTB)

В dnsguard который является XDP программой нам нужен HTB без очередей (as a meter).
В данный момент здесь лежит только одна рабочая реализация htb-v5.c.
Всё остальное - это попытки реализовать что-то рабочее и просто разобраться с различными свойствами алгоритма.