[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20091001204003.GA5632@gerrit.erg.abdn.ac.uk>
Date: Thu, 1 Oct 2009 22:40:03 +0200
From: Gerrit Renker <gerrit@....abdn.ac.uk>
To: Ivo Calado <ivocalado@...edded.ufcg.edu.br>
Cc: dccp@...r.kernel.org, netdev <netdev@...r.kernel.org>
Subject: Re: [PATCH 2/5] Implement loss counting on TFRC-SP receiver
| >> The following code would be correct then?
| >>
| >> if ((len <= 0) ||
| >> (!tfrc_lh_closed_check(cur, cong_evt->tfrchrx_ccval)))
| > {
| >> + cur->li_losses += rh->num_losses;
| >> + rh->num_losses = 0;
| >> return false;
| >> With this change I suppose the could be fixed. With that, the
| >> rh->num_losses couldn't added twice. Am I correct?
| >>
| >>
| > The function tfrc_lh_interval_add() is called when
| > * __two_after_loss() returns true (a new loss is detected) or
| > * a data packet is ECN-CE marked.
| >
| > I am still not sure about the 'len <= 0' case; this would be true
| > if an ECN-marked packet arrives whose sequence number is 'before'
| > the start of the current loss interval, or if a loss is detected
| > which is older than the start of the current loss interval.
| >
| > The other case (tfrc_lh_closed_check) returns 1 if the current loss
| > interval is 'closed' according to RFC 4342, 10.2.
| >
| > Intuitively, in the first case it refers to the preceding loss
| > interval (i.e. not cur->...), in the second case it seems correct.
| >
| > Doing the first case is complicated due to going back in history.
| > The simplest solution I can think of at the moment is to ignore
| > the exception-case of reordered packets and do something like
| >
| > if (len <= 0) {
| > /* FIXME: this belongs into the previous loss interval */
| > tfrc_pr_debug("Warning: ignoring loss due to reordering");
| > return false;
| > }
| > if (!tfrc_lh_closed_check(...)) {
| > // your code from above
| > }
|
| Okay, i'll add your sugestion. But i don't know how this would be fixed at all.
|
If it doesn't we will just do another iteration and fix it.
| > So it is necessary to decide whether to go the full way, which means
| > * support Loss Intervals and Dropped Packets alike
| > * modify TFRC library (it will be a redesign)
| > * modify receiver code
| > * modify sender code,
| > or to use the present approach where
| > * the receiver computes the Loss Rate and
| > * a Mandatory Send Loss Event Rate feature is present during feature
| > negotiation, to avoid problems with incompatible senders
| > (there is a comment explaining this, in net/dccp/feat.c).
| >
| > Thoughts?
|
<snip>
| I believe that the first way is better (to "support Loss Intervals and
| Dropped Packets alike..."), because RFC requires loss intervals option
| to be sent. And so, proceed and implement dropped packets option for
| TFRC-SP. You are right, this would need a redesign and rewrite of
| sender and receiver code.
|
Agree, then let's do that. It requires some coordination on how to arrange
the patches, but we can simplify the process by using the test tree to
store all intermediate results (i.e. use a separate tree for the rewrite
until it is sufficiently stable/useful).
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists