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
aqm@ietf.org
https://www.ietf.org/mailman/listinfo/aqm

Reply via email to