hashgraph / hashgraph/solo-weaver
Epic TS_3 — BN traffic-shaper monitor (solo-provisioner-daemon)
- Dominant language
- Go
- Stars
- 3
- Forks
- 0
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 46
Description
Design: [v4 design](https://github.com/automa-saga/traffic-shaper/blob/main/docs/bn-qos-multiclass-priority-design-v4-nft-priority.md) §8.1, §8.5.
Implement the `traffic_shaper` monitor inside the per-host `solo-provisioner-daemon` (a systemd-managed Linux service, daemonkit-supervised — **NOT** a Kubernetes DaemonSet). It owns the dynamic plane: pod-driven `$VETH` qdiscs and statusz-driven nft set membership.
**Scope:**
- Monitor skeleton: `daemon.yaml` enablement, `daemonkit.SupervisedMonitor`, `GET /block_node/traffic_shaper/status`.
- Pod-lifecycle watcher: resolve host-side veth, install `$VETH` HTB on pod create via a privileged `block node tc-attach` exec, rebind on `ContainersReady`.
- statusz poll loop (5 s): map statusz categories to policy names internally, diff vs live nft sets, apply via `network policy set --cidrs --name`.
- Privilege model: runs unprivileged as `weaver`; privileged ops exec `sudo solo-provisioner` (sudoers-restricted).
Consumes the `network` command family (TS_1).
Contributor guide
Assessment
This issue has not been assessed yet.