Dear all,
As I mentioned in a previous email in this mailing list, we (myself and
Grenville Armitage) are implementing PIE (and CoDel, and potentially fq_codel
and fq_pie) independently targeting FreeBSD/ipfw/dummynet as a small project
funded by Comcast Corporation.
We have some confusions regarding some points in the recent PIE Internet draft
(draft-ietf-aqm-pie-03) and we hope to take our points as feedback response to
the PIE I-D "Last Call" as well as answering our questions to make us able to
implement PIE correctly.
1. In section 4.2 (page 8), the text says " MUST auto-tune the alpha and beta
parameters based on drop probability drop_prob_" and the pseudo-code under it
does not include anything related to alpha and beta.
2. Confusing uses of 'p' vs 'drop_probe':
2(a). In section 4.2 (page 8), the pseudo-code under "* MUST decay the drop
probability exponentially:" uses variable p, and it is not clear whether p is
the same as drop_prob_ or not?
if (current_qdelay_ == 0 && qdelay_old_ == 0) {
p = p*0.98; //1- 1/64 is sufficient
}
2(b). In section 5.4 (page 14),"... is incremented by the amount of drop
probability, p.". Is p the same as drop_prob_ or not?
2(c). In section 5.5 "Cap Drop Adjustment" (page14) , the pseudo-code also uses
p variable, but this time we have PIE->drop_probe_ and p in the same statement.
Again, what does p represent for?
2(d). In calculate_drop_prob() (page 20), the pseudo-code uses different
probability scaling (scales p instead of drop_probe_ and now, it is clear from
the code that they are not the same) than the in-text pseudo-code.
3. In section 5.2 (page 11), the rate estimation pseudo-code uses two variable
names (measurement_start_ and start_) and it seems there is an editing error
(start_ must be measurement_start_).
4. In section 5.3 (page 13), the text says " If it is on, PIE SHOULD be turned
off when congestion is over, i.e. when the drop probability, queue length and
estimated queue delay all reach 0", while the pseudo-code under it uses
different if-condition (there is no condition for queue length == 0 and
estimated queue delay == 0).
if (drop_prob_ == 0 and current_qdelay_ < QDELAY_REF and
qdelay_old < QDELAY_REF)
PIE_active_ = FALSE;
burst_allowance_ = MAX_BURST;
5. There are a number of inconsistent parts between the pseudo-code at the end
of the draft and the text/in-text pseudo-code mentioned within PIE description
text:
5(a). The default values for QDELAY_REF and T_UPDATE within the text are 15ms
while in the pseudo-code are 16ms.
5(b). In drop_early(), there is " //Safeguard PIE to be work conserving"
condition which is never mentioned in the draft-text
5(c). In dequeue rate estimation pseudo-code, avg_dq_time and weight variables
are not described in the text and not clear why they are used.
Regards,
Rasool Al-Saadi
_______________________________________________
aqm mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/aqm