| > 2. One minor thing where a clarification would be very helpful: | > -> In section 4.6 "Preventing Oscillations" | > -> Here it says "The sender obtains the base allowed transmit rate, | > X, from the throughput function." | > -> But this is confusing, since the result of the throughput | > function | > is X_calc. Since the sender only gets a new R_sample when it gets | > feedback, is it meant that the sender obtains the allowed sending | > rate X as described in step (4) of section 4.3? | | I clarified that. Could you please say what has been clarified? I found this section very hard to understand when starting to implement oscillation prevention. I only really understood its purpose after reading the corresponding section 3.6.4 of Widmer's Diploma thesis (where he calls it `Inter-packet Space Modulation', ISM). There it became evident that oscillation prevention occurs as last step before computing t_nom: in the RFC this is not really clear. The information I found was lacking in RFC 3448 is: (1) Oscillation prevention is a step which follows immediately after step (4) of section 4.3, i.e. the reception of feedback packets. This is the only (sensible) place to perform oscillation prevention. (2) One needs to ensure that the TFRC minimum rates are not under-run by doing oscillation prevention (which is possible with integer arithmetic when sqrt(R_sample) > R_sqmean): something like X_inst = X * R_sqmean / sqrt(R_sample) /* where X is obtained as in step (4) of section 4.3 */ If (p > 0) X_inst = max(X_inst, s/t_mbi) Else if (not first feedback packet, or the first feedback packet after a nofeedback timer) { X_inst = max(X_inst, s/R) } Best regards Gerrit