pping: Update TODO.md

Signed-off-by: Simon Sundberg <simon.sundberg@kau.se>
This commit is contained in:
Simon Sundberg
2021-02-12 12:09:37 +01:00
parent 397b44cff7
commit 502663f354

View File

@@ -1,18 +1,28 @@
# TODO
## For initial merge
## Protocols
- [x] TCP (based on timestamp options)
- [ ] Skip pure ACKs for egress?
- [ ] Add fallback to SEQ/ACK in case of no timestamp?
- [ ] ICMP (ex Echo/Reply)
- [ ] QUIC (based on spinbit)
## General pping
- [ ] Use libxdp to load XDP program
- [ ] Check for existance of reverse flow before adding to hash-map (to avoid adding identifiers for flows that we can't see the reverse traffic for)?
- This could miss the first few packets, would not be ideal for short flows
- [ ] Keep track of minimum RTT for each flow (done by Pollere's pping, and helps identify buffer bloat)
- [ ] Add configurable rate-limit for how often each flow can add entries to the map (prevent high-rate flows from quickly filling up the map)
- [ ] Improve map cleaning: Use a dynamic time to live for hash map entries based on flow's RTT, instead of static 10s limit
- [ ] Add support for automatically deleting entries if they are unique
- TCP timestamp need to be kept for a while (because multiple packets can have the same timestamp), but for identifiers that are unique per packet, they can be removed directly after RTT is calculated
## Done
- [x] Clean up commits and add signed-off-by tags
- [x] Add SPDX-license-identifier tags
- [x] Format C-code in kernel style
- [x] Use existing funcionality to reuse maps by using BTF-defined maps
- [x] Use BTF-defined maps for TC-BPF as well if iproute has libbpf support
## Future
- [ ] Use libxdp to load XDP program
- [x] Cleanup: Unload TC-BPF at program shutdown, and unpin map - In userspace part
- [ ] Add IPv6 support - In TC-BPF, XDP and userspace part
- [ ] Check for existance of reverse flow before adding to hash-map (to avoid adding timestamps for flows that we can't see the reverse traffic for) - In TC-BPF part
- This could miss the first few packets, would not be ideal for short flows
- [ ] Keep track of minimum RTT for each flow (done by Pollere's pping, and helps identify buffer bloat) - In XDP part
- [ ] Add configurable rate-limit for how often each flow can add entries to the map (prevent high-rate flows from quickly filling up the map) - In TCP-BPF part
- [ ] Improve map cleaning: Use a dynamic time to live for hash map entries based on flow's RTT, instead of static 10s limit - In TC-BPF, XDP and userspace
- [x] Add IPv6 support
- [x] Refactor to support easy addition of other protocols