Files
funstraw/notes.txt
Ian Gulliver 6da1c57c36 Starting over
2016-09-25 15:56:37 -07:00

32 lines
1.0 KiB
Plaintext

priority buckets:
std::array [ differentiated service ]
fairness buckets:
intrusive unordered set [ source address ]
intrusive unordered set [ dest address ]
intrusive unordered set [ protocol, port pair ]
per-bucket queue:
intrusive doubly linked list
global size queue (for binpacking):
intrusive multiset [ packet size ]
siphash for unordered sets
pop algorithm:
find first non-empty priority
keep iterator to 3 tiers of next bucket in rotation
pop first N from bucket queue until picking next packet would exceed size limit
use global size queue find packets with size <= remaining space; largest-first binpacking
HonestQueue
std::array[ differentiated service ] -> PriorityBucket
intrusive unordered set [ source address ] -> FairSrcBucket
intrusive unordered set [ dest address ] -> FairDestBucket
intrusive unordered set [ protocol, port pair ] -> FairFlowBucket
intrusive double-linked list -> Packet
statistics
intrusive multiset [ packet size ] -> Packet
statistics