Re: Reporting possible bug in DCCP Feature negotiation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



| > | Hi Gerrit, during some experiments using iperf to transmit one TCP
| >  | flow against 3 DCCP flows, one DCCP thread stopped and it was shown
| >  | the following message:
| >  |
| >  | "[ 6286.864021] BUG: Failed negotiation in state 2 at
| >  | net/dccp/feat.c:1370/dccp_feat_activate_values()"
| >  |
| >  Did it really stop? The trigger is only possible during the initial
| >  handshake, this is the only place where this activation-code is
| >  executed. So almost certainly it failed at the begin of the connection.
| 
| I started 3 DCCP connection, just 2 transmitted. Then the third is the
| one that had the problem.
| 
<snip>
| 
| Yes, the same version of DCCP. I repeated the same scenario and this
| situation didn't happened anymore
| 
Thank you for checking again. It seems that this may be some kind of
timing problem: 2 parallel connections succeeded, the third could not
negotiate its features. I will try to reproduce this, so far parallel
connections of up to 4 streams worked without glitches.

In the test kernel I have changed the statement from dccp_pr_debug in
feat.c to DCCP_CRIT:

activation_failed:
        DCCP_CRIT("Activation of %s failed", idx < 0 ? "unknown feature" :
                  dccp_feat_fname(dccp_feat_table[idx].feat_num));

So that, should the problem re-appear, the feature name will be printed.


| > | [ 4853.013621] dccp_ackvec_add_new: Warning: large burst loss (583)
| > | [ 5690.125731] dccp_ackvec_add_new: Warning: large burst loss (943)
| > | [ 5747.246785] dccp_ackvec_add_new: Warning: large burst loss (76)
| > | [ 6301.420651] dccp_ackvec_add_new: Warning: large burst loss (77)
| >  I have collated these messages - there is quite a lot of loss going on
| >  and I am wondering whether the Ack Vectors are properly dimensioned.
| 
| Hum... this is one thing to check. For my situation (wifi and ethernet
| link), what do you suggest to use. To properly dimension Ack vectors,
| do I need just to set the parameters like that?:
| 
| sudo sysctl -w net.dccp.default.seq_window=10000
| sudo sysctl -w net.dccp.default.send_ackvec=1
The short answer is - tuning is not necessary, the Ack Vectors should
take care of this themselves. 

Long answer: The above warning messages indicate that the Ack Vectors switch
from "linear mode" (where one cell is allocated for each missing packet) to
"compressed mode" (where the burst loss is compressed in the minimum number
of cells). 

The disadvantage/trade-off is that in compressed mode no changes are possible,
i.e. if the burst was in part due to reordering, subsequent acknowledgments
will not change this. On the other hand, linear mode is impracticable for all
but the most trivial scenarios, since it has huge demands on memory - in
the order of O(burst_length). This can lead to "fun" when using a
high-speed link in combination with high Ack Ratio.
--
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [IETF DCCP]     [Linux Networking]     [Git]     [Security]     [Linux Assembly]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux