I'm doing some tests regarding ECN and I'm using RED queues on a Routerboard with Mikrotik v4.3. However, something doesn't work as expected and I'd like to know whether 'ecn' is used for RED queues.
For linux, when the 'tc' tool is used, one must add the 'ecn' keyword to allow for marking instead of dropping. For example, you must write:
Code: Select all
tc qdiscc add root dev eth0 limit XX min XX max XX avpkt XX burst XX probability XX ecn
The basic form of the test is done by having two machines, one at home behind the routerboard and one at a remote location over the Internet, that both use ECN for TCP and they succeed in negotiating ECN usage.
My current tests showed very similar results with and without using ECN, which is an indication of packets not being marked. This is somehow confirmed because there are no received packets with the ECE codepoint set (both ECN bits become 1). This codepoint is the indication of a marked packet.
So, can someone clarify whether 'ecn' is actually used or not in RED queues?
Apart from that, I've some suggestions for RED queues regarding winbox/interface:
- Clarify what 'packet' means. Is RED somehow implemented in packet-mode or they are sizes just multiplied by avpkt?
- Allow user to change the maximum mark/drop probability. What is the current value anyway?
- Provide an easier/novice (for users) interface: Ask for "Maximum delay" in milliseconds, "Average packet size (1000 is a good default), Link bandwidth. Then ask for minimum and maximum thresholds as a percentage of the queue size limit. Limit is Delay * Bandwidth / (8 * 1000). Min is min_percentage * Limit. Max is max_percentage * Limit. Burst (in packets) can be either user-defined or set to (Min+Min+Max / (3*Avpkt)) just like tc recommends.
p.s. RED stands for "Random Early Detection" but it is mentioned as "Random Early Drop" in at least one wiki page.