From: Eddie Kohler <kohler@cs.ucla.edu>
To: dccp@vger.kernel.org
Subject: Re: [SUMMARY]: Problems with loss interval recalculation / audit
Date: Mon, 08 Jan 2007 16:55:21 +0000 [thread overview]
Message-ID: <45A27779.7000405@cs.ucla.edu> (raw)
In-Reply-To: <200701051829.20415@strip-the-willow>
Gerrit,
First I would like to send a NEWBIE REQUEST.
How can I get a complete copy of the DCCP source checked out, including
your/Ian's patches? Where is there something on line that explains the git
process? Thanks for your/anyone's help.
Now:
> | RFC 3448 says that I_0 "represents the number of packets received since the
> | last loss event". (Section 5.5) In the Linux implementation, this number is
> | NOT stored in the li_entry list. It must be calculated. This is what Ian's
> | nonloss manipulations do.
> |
> | There are a number of errors in your discussion. You claim that I_0 is the
> | "most recent loss interval", and that it is stored in the li_entry structures.
> | But what RFC 3448 means by I_0 is not stored in the Linux DCCP
> | implementation's li_entry structures. Your comments under "This is the
> | crucial point" do not seem to realize this.
> There is truth in this, but I need to put it in relation to how the list is handled.
> What I stated below in "This is the crucial point" is that the highest received seqno
> and CCVal are always stored at the head of the list.
>
> ( I just found out that there is another
> PROBLEM#1: For the first loss interval (as per [RFC 3448, 6.3.1]), the timestamp
> and sequence number are not stored, only the interval is. )
>
> For all other loss events, timestamp and sequence number are stored. This also holds
> for I_0; it could be that the interval is 0 here due to (seq_temp becomes `interval')
> seq_temp = dccp_delta_seqno(head->dccplih_seqno, seq_nonloss);
> but I am not entirely sure about that. And it is probably safer to encode this
> case more explicitly.
>
> In any way, this clarification leads to
> PROBLEM#2: Since I_0 always sits at the head of the list, there are at most n=7
> completed loss interval entries (not 8 as the RFC recommends).
I find this difficult to follow, but is there still confusion? According to
my reading of the patches, and Ian confirmed this, what RFC3448 means by I_0
**is not stored on the list at all**. The list stores I_1...I_8. Remember
that I_0 is the incomplete loss interval.
> | Your comments about Ian's patch are also wrong, for the same reason. I
> | believe Ian's patch calculates I_tot0 and I_tot1 correctly, although with
> | swapped names. Certainly if there is a problem it is not the one you have
> | identified.
> If the above assumption that the interval of I_0 is 0 holds then in Ian's patch
> (where I_0' is the interval called `non_loss' in Ian's patch) we have that
> - I_tot0 is the sum I_1 * w_1 + ... I_7 * w_7
> - I_tot1 is the sum I_0' * w_0 + I_1 * w_2 + I_2 * w3 + ... + I_6 * w_7
> This can't be right.
Your analysis is wrong, I think. Ian's patch sent 12/27 calculates
I_tot0 = I_1 * w_0 + ... + I_8 * w_7
I_tot1 = I_0 * w_0 + I_1 * w_1 + ... + I_7 * w_7.
Because "i" starts at 0. The relevant part of the patch.
i_tot0 += li_entry->dccplih_interval * dccp_li_hist_w[i];
w_tot += dccp_li_hist_w[i];
+ if (i != 7)
+ i_tot1 += li_entry->dccplih_interval
+ * dccp_li_hist_w[i + 1];
+ if (i = 0) {
+ non_loss = dccp_hdr_seq(skb);
+ sub48(&non_loss, li_entry->dccplih_seqno);
+ }
When "i = 0", the loop is examining I_1. Then i_tot0 += I_1*w[0], and i_tot1
+= I_1*w[1], exactly as one would like. The case "i=7" (that is, I_8)
affects i_tot0 but not i_tot1, exactly as one would like.
Eddie
next prev parent reply other threads:[~2007-01-08 16:55 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-05 18:29 [SUMMARY]: Problems with loss interval recalculation / audit against [RFC 3448, 5.4] Gerrit Renker
2007-01-05 21:26 ` [SUMMARY]: Problems with loss interval recalculation / audit Eddie Kohler
2007-01-08 16:32 ` [SUMMARY]: Problems with loss interval recalculation / audit against [RFC 3448, 5.4] Gerrit Renker
2007-01-08 16:55 ` Eddie Kohler [this message]
2007-01-08 17:48 ` Arnaldo Carvalho de Melo
2007-01-08 20:36 ` Ian McDonald
2007-01-09 8:38 ` Gerrit Renker
2007-01-10 3:14 ` Ian McDonald
2007-01-10 4:27 ` Ian McDonald
2007-01-10 11:32 ` Gerrit Renker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45A27779.7000405@cs.ucla.edu \
--to=kohler@cs.ucla.edu \
--cc=dccp@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.