to define a corresponding CCID field.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
Acked-by: Ian McDonald [EMAIL PROTECTED]
---
net/dccp/ackvec.h |3 +++
net/dccp/output.c | 22 ++
2 files changed, 17 insertions(+), 8 deletions(-)
--- a/net/dccp/ackvec.h
+++ b/net/dccp
This is a resubmission to fix a problem with accounting for Ack Vector
length in the MPS.
The present solution did not work well: the MPS did not account for Ack Vectors,
so that applications which relied on the MPS value via getopt were
disadvantaged
by having all their Ack Vectors put onto
serve other parts of the DCCP code as well.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
include/linux/dccp.h |2 ++
net/dccp/options.c | 24
net/dccp/output.c|8
3 files changed, 30 insertions(+), 4 deletions(-)
--- a/include/linux/dccp.h
()) is therefore removed.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ackvec.c | 88
net/dccp/ackvec.h |6 +++
net/dccp/input.c |4 +-
net/dccp/options.c | 12 ++-
4 files changed, 100 insertions(+), 10 deletions
,
since the list is automatically arranged in descending order of ack_seqno.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ackvec.c | 100 +--
net/dccp/ackvec.h |5 +--
net/dccp/options.c | 60 +++
3
of the subsequent list_for_each_entry_safe().
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ackvec.c | 205 +++
net/dccp/ackvec.h | 103 +---
net/dccp/ccids/ccid2.c | 13 +--
net/dccp/input.c |6
at the beginning of the connection this can be very counter-
intuitive and annoying.
(Over the long term there should be some adjustment to reduce MPS at least
by a minimum when Ack Vectors are used; some applications may rely on the
exact value of the MPS).
Signed-off-by: Gerrit Renker [EMAIL PROTECTED
code
to fetch parsed Ack Vectors via this interface;
* a data structure, `struct dccp_ackvec_parsed' is provided as interface;
* this structure arranges Ack Vectors of the same skb into a FIFO order;
* a doubly-linked list is used to keep the required FIFO code small.
Signed-off-by: Gerrit
' with computation in argument list (btw,
these indices are nowhere used -- are they really still needed???).
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
include/linux/dccp.h |6 --
net/dccp/options.c | 19 +++
2 files changed, 11 insertions(+), 14 deletions
.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/Kconfig |3 -
net/dccp/Makefile |5 +-
net/dccp/ackvec.c | 252
net/dccp/ackvec.h | 79 +---
net/dccp/ccids/Kconfig |1 -
5 files changed
).
Hence the patch uses a different policy: when the buffer overflows, the oldest
entries are subsequently overwritten. This has a higher chance of recovery.
Details are on http://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/ack_vectors/
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp
This is a re-packaged resubmission (reduction from about 20 small patches) of
the
Ack Vector patch set, which accomplishes two main things.
First, it completes the implementation of a circular Ack Vector buffer. So far
the buffer was implemented as a linear array which dropped packets on
the previous implementation by Arnaldo de Melo.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ackvec.c | 150 +
net/dccp/ackvec.h |9 +++
2 files changed, 159 insertions(+), 0 deletions(-)
--- a/net/dccp/ackvec.h
+++ b/net/dccp
to clear the
old state first before entering new state;
* Ack Event handling happens mostly within the CCIDs, not the main DCCP module.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/input.c | 32 ++--
1 files changed, 10 insertions
This set of patches extends the packet sending/dequeuing interface, which is
currently restricted to using time intervals only. This forces CCID-2 into
a constant polling mode, which is removed in patch #4.
Patch #1: Extends the CCID packet dequeuing interface to allow CCIDs to
end (compare
with call to tcp_write_queue_purge in tcp_disconnect()).
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/proto.c |2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
--- a/net/dccp/proto.c
+++ b/net/dccp/proto.c
@@ -277,7 +277,9 @@ int dccp_disconnect(struct sock *sk
This updates CCID2 to use the CCID dequeuing mechanism, converting from
previous constant-polling to a now event-driven mechanism.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ccids/ccid2.c | 21 +
net/dccp/ccids/ccid2.h |5 +
2 files changed, 18
.patch now maintained by Emmanuel Lochin.)
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ccid.h|6 +++---
net/dccp/ccids/ccid2.c |2 +-
net/dccp/ccids/ccid3.c |3 +--
net/dccp/output.c |2 +-
4 files changed, 6 insertions(+), 7 deletions(-)
--- a/net/dccp
time),
(c) wait-for-ccid could not finish within the given time limit.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/dccp.h |3 +-
net/dccp/output.c | 122 ++---
net/dccp/proto.c | 15 ++-
net/dccp/timer.c |2 +-
4
.
If the tasklet finds that the socket is locked, it re-schedules the tasklet
function (not the tasklet) after one jiffy.
Changed DCCP_BUG to DCCP_WARN when transmit_skb returns an error (e.g. when a
local qdisc is used, NET_XMIT_DROP=1 can be returned for many packets).
Signed-off-by: Gerrit Renker [EMAIL
, AWH := GSS
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/dccp.h | 20
net/dccp/input.c | 18 ++
net/dccp/minisocks.c | 30 +-
3 files changed, 35 insertions(+), 33 deletions(-)
--- a/net/dccp/dccp.h
After moving the assignment of GAR/ISS from dccp_connect_init() to
dccp_transmit_skb(), the former function becomes very small, so that
a merger with dccp_connect() suggested itself.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/output.c | 18 +-
1 files changed
Step 8.5 in RFC 4340 says for the newly cloned socket
Initialize S.GAR := S.ISS,
but what in fact the code (minisocks.c) does is
Initialize S.GAR := S.ISR,
which is wrong (typo?) -- fixed by the patch.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp
This is a set of bug fixes for CCID3 and general DCCP.
Please consider patches #1, #2, #3. The remainder are for the test tree
(but are fixes nonetheless) and may not apply directly onto mainline; with
regard to patch #6, please see note at end of message.
Patch #1: Fixes a CCID3 bug: when loss
of the initial loss interval, and thus unnecessarily reducing the throughput.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ccids/lib/tfrc_equation.c |4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
--- a/net/dccp/ccids/lib/tfrc_equation.c
+++ b/net/dccp/ccids/lib
for AWL as specified in RFC 4340, 7.5.1.
Note: A problem that remains is that ISS can potentially be under-run even after
the initial handshake; this is addressed a subsequent patch.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/output.c | 34
, the now-unused
`size' field in the output has been replaced with the CCID identifier. This
also serves for future compatibility - support for CCID2 is work in progress
(depends on the still unfinished SRTT/RTTVAR updates).
While at it, the update to ktime_t was also performed.
Signed-off-by: Gerrit
| So maybe the cause triggering this oops is somewhere else.
|
| yes, probably. sorry - i didn`t tell or maybe i didn`t know when writing
| my first mail to module authors and forget to add that before forwarding here.
|
| for me , the problem does not happen with suse kernel of the day
|
Roland, -
apparently, i got crashes when loading/unloading other driver modules just
after ccid2 or ccid3 had been loaded/unloaded _once_ (have not used them at
all, just modprobe module;modprobe -r module)
snip
the easiest way to reproduce is:
while true;do modprobe
| the easiest way to reproduce is:
|
| while true;do modprobe dccp_ccid2/3;modprobe -r dccp_ccid2/3;done
| after short time, the kernel oopses (messages below)
|
snip
|
| Gerrit, the control socket isn't attached to any CCID module, so the
| CCID modules should be safe to remove, and
This is patch 2 in the set and uses the routines provided by the previous
patch to implement parsing of received Ack Vectors, replacing duplicate code.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ccids/ccid2.c | 132
net/dccp
this can be very counter-
intuitive and annoying.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
include/linux/dccp.h |2 ++
net/dccp/options.c | 28 +++-
net/dccp/output.c|8
3 files changed, 29 insertions(+), 9 deletions(-)
--- a/include/linux
' is provided, which arranges all
Ack Vectors of a single skb into a list of parsed chunks;
* a doubly-linked list was used since insertion needs to be at the tail end;
* the associated list handling and list de-allocation routines.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp
This is the new stuff for Ack Vectors, completing the Ack Vector work.
All other patches are as before, with the single exception of the update sent
yesterday (the recovery strategy for dealing with suddenly large losses).
Arnaldo, can you please indicate whether I should resubmit the older
This is an edited list of recent changes in the test tree
git://eden-feed.erg.abdn.ac.uk/dccp_exp
At the top of each block is the name of the patch, followed by a short
description of the change, and the actual (or abridged if obvious) inter-diff.
Some of these changes refer to
disabled by this patch.
Two more changes suggested itself:
* replaced magic numbers for CCID-specific options with symbolic constants;
* replaced local variables `idx' with computation in argument list.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
include/linux/dccp.h |6 --
net/dccp
by the function (also same name as in A.3 of RFC 4340);
* the variable `ackno' now becomes unused in options.c, and therefore
is now used for other (space-saving) purposes.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ackvec.c | 114
in dccp_ackvec_alloc() has been removed, since dccp_ackvec_add()
overrides this value each time a new packet is added to the buffer).
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ackvec.c | 48
net/dccp/ackvec.h | 77
-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ackvec.c | 107 +---
net/dccp/ackvec.h |5 +-
net/dccp/options.c | 65 +++
3 files changed, 85 insertions(+), 92 deletions(-)
--- a/net/dccp/ackvec.h
+++ b/net/dccp
This provides inlines for Ack Vector run length and state, which allow to wrap
several instances of the same code into function calls.
The unused function dccp_ackvec_print() (which also relied on the older
constants), has been removed.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net
overwritten. This has a higher chance of recovery.
Details are on http://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/ack_vectors/
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ackvec.c | 11 ++-
net/dccp/ackvec.h | 12
net/dccp/dccp.h| 14 +++---
net
This replaces 3 #defines with an enum containing all possible
Ack Vector states as per RFC 4340, 11.4. This helps to reduce
the length of several expressions.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ackvec.c |7 +++
net/dccp/ackvec.h | 10 ++
net
.
Much of the old code and naming is reused.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ackvec.c | 123 +
net/dccp/ackvec.h |6 +++
2 files changed, 129 insertions(+), 0 deletions(-)
--- a/net/dccp/ackvec.h
+++ b/net/dccp
The length of the circular Ack Vector buffer is now determined dynamically,
as the span between head to tail.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ackvec.c | 21 +
net/dccp/ackvec.h |7 +++
net/dccp/options.c |7 ---
3 files changed
Ack Vector.
The fix is in parsing Ack Vectors on all packet types which are allowed to
carry an Ack Vector.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ccids/ccid2.c |7 +--
1 files changed, 1 insertions(+), 6 deletions(-)
--- a/net/dccp/ccids/ccid2.c
+++ b/net/dccp/ccids
of the last unacknowledged but received seqno in tail_ackno,
* has special cases to reset the overflow condition when appropriate,
* is protected against receiving older information (would mess up buffer
state).
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ackvec.c | 82
This set of patches adds functionality to the existing DCCP Ack Vector
implementation, extends it to a full circular buffer, and fixes two
previously undiscovered problems which otherwise result in a corrupted
buffer state.
It is important that Ack Vectors run reliably since otherwise problems in
is no longer necessary.
Also updated copyrights.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/Kconfig |3 -
net/dccp/Makefile |5 +-
net/dccp/ackvec.c | 141 +---
net/dccp/ackvec.h | 64 +-
net
the old
state first before entering new state;
* Ack Event handling happens mostly within the CCIDs, not the main DCCP module.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/input.c | 38 +++---
1 files changed, 11 insertions(+), 27 deletions
time field
in the Timestamp Echo option).
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ackvec.c | 11 ---
net/dccp/ackvec.h |3 ---
2 files changed, 0 insertions(+), 14 deletions(-)
--- a/net/dccp/ackvec.h
+++ b/net/dccp/ackvec.h
@@ -12,7 +12,6 @@
*/
#include
condition is
embedded in the loop condition of the subsequent list_for_each_entry_safe().
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ackvec.c | 78 +++--
1 files changed, 28 insertions(+), 50 deletions(-)
--- a/net/dccp/ackvec.c
|
| I didn't hear any objections so here is the patch again.
|
| [SNMP]: Fix SNMP counters with PREEMPT
|
I don't feel competent to say whether this is correct, but it seems that
this is going a long way towards resolving older problems with the SNMP
counters.
What I can say is that a year
[CCID3]: Whitespace cleanups and outdated documentation
This removes outdated documentation which had been forgotten to be
removed (x_recv, rtt now appear twice, p was removed from rx_sock);
and removes new whitespace.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ccids/ccid3.c
| The end result should be equivalent, but please take a look and
That is a good catch - this patch was a pain to keep updated exactly due
to the many indentation levels. I had a quick look, the patch looks ok.
Just a small suggestion - since the RTT lookup code in tx_packet_recv()
is new,
I've been working on making DCCP Ack Vectors more robust, dealing more
gracefully
with buffer overflow, and fixing two cases which will lead to corrupted buffer
state.
The encountered problems and implementation strategy are documented on
| This time around I'm not doing any reordering, just trying to use your
| patches as is, but adding this patch as-is produces a kernel that will
| crash, no?
|
| The loss history and the RX/TX packet history slabs are all created in
| tfrc.c using the three different __init routines of the
| +static struct kmem_cache *tfrc_lh_slab __read_mostly;/* === */
|
| Yup, this one, is introduced as above but is not initialized at the
| module init routine, please see, it should be OK and we can move on:
|
|
| When interfacing we must make sure that ccid3 tfrc_lh_slab is created
| and then tfrc_li_cachep is not needed. I'm doing this while keeping
| the structure of the patches, i.e. one introducing, the other removing.
| But we need to create tfrc_lh_slab if we want the tree to be bisectable.
|
|
| This separates RX/TX initialisation and puts all packet history / loss
intervals
| initialisation into tfrc.c.
| The organisation is uniform: slab declaration - {rx,tx}_init() -
{rx,tx}_exit()
|
| NAK, you can't call a __exit marked routine from a __init marked
| routine.
|
Ok thanks,
|
|distcc[24516] ERROR: compile
/root/.ccache/packet_his.tmp.aspire.home.net.24512.i on _tiptop failed
|/usr/src/davem-2.6/net/dccp/ccids/lib/packet_history.c: In function
'__one_after_loss':
|/usr/src/davem-2.6/net/dccp/ccids/lib/packet_history.c:266: error: lvalue
required as
This revision updates earlier patches, following discussion,
and adds one additional cleanup patch at the end.
Patch #1: Revision of initialisation patch; fixed calling __exit function
from __init function - identified by Arnaldo.
Patch #2: Revision - re-converted
(), which
in turn require the definition of the other inlines (macros).
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ccids/lib/packet_history.c | 35 ---
net/dccp/ccids/lib/packet_history.h | 35 +++
2 files changed, 35
consistent.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ccids/ccid3.c |2 --
net/dccp/ccids/ccid3.h |4 ++--
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c
index 60fcb31..b92069b 100644
--- a/net/dccp/ccids/ccid3.c
This separates RX/TX initialisation and puts all packet history / loss intervals
initialisation into tfrc.c.
The organisation is uniform: slab declaration - {rx,tx}_init() -
{rx,tx}_exit()
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ccids/lib/packet_history.c | 68
of comprehensive, new loss detection algorithm
- support for all cases of loss, including re-ordered/duplicate packets;
- waiting for NDUPACK=3 packets to fill the hole;
- updating loss records when a late-arriving packet fills a hole.
Signed-off-by: Gerrit Renker [EMAIL
/packet_history.c:337: error: lvalue
required as unary '' operand
make[4]: *** [net/dccp/ccids/lib/packet_history.o] Error 1
make[3]: *** [net/dccp/ccids/lib] Error 2
make[2]: *** [net/dccp/ccids] Error 2
make[1]: *** [net/dccp/] Error 2
make: *** [sub-make] Error 2
Signed-off-by: Gerrit Renker [EMAIL
This moves two inlines back to packet_history.h: these are not private
to packet_history.c, but are needed by CCID3/4 to detect whether a new
loss is indicated, or whether a loss is already pending.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ccids/lib/packet_history.c | 26
did.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ccids/lib/packet_history.c | 35 ---
1 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/net/dccp/ccids/lib/packet_history.c
b/net/dccp/ccids/lib/packet_history.c
index 4d37396..6256bec
for NDUPACK=3 packets to fill the hole;
- updating loss records when a late-arriving packet fills a hole.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
Signed-off-by: Ian McDonald [EMAIL PROTECTED]
---
net/dccp/ccids/lib/loss_interval.c | 158 ++-
net/dccp/ccids/lib
This separates RX/TX initialisation and puts all packet history / loss intervals
initialisation into tfrc.c.
The organisation is uniform: slab declaration - {rx,tx}_init() -
{rx,tx}_exit()
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ccids/lib/packet_history.c | 68
Some of the recent changes in 2.6.25 cause problems with the existing
implementation (i.e. break
the code). This patch set therefore provides fixes and resubmits one subsequent
patch which
has not been considered so far, but which is part of the tfrc_lib package.
Patch #1: Performs whitespace
/
fallback RTT value (defined in section 3.4 of RFC 4340 as 0.2 sec); while
at it, the upper bound of 4 seconds for an RTT sample has been reduced to
match the initial TCP RTO value of 3 seconds from[RFC 1122, 4.2.3.1].
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
Signed-off-by: Ian McDonald [EMAIL
Just some tidy-ups to keep git/quilt happy. Also moved up the
comment Receiver routines above the first occurrence of RX
history routines.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ccids/ccid3.c | 16
net/dccp/ccids/lib/loss_interval.c |2
-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ccids/ccid3.c |3 +--
net/dccp/ccids/lib/packet_history.c |5 -
2 files changed, 1 insertions(+), 7 deletions(-)
diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c
index a5246f7..60fcb31 100644
--- a/net/dccp
| Signed-off-by: Arnaldo Carvalho de Melo [EMAIL PROTECTED]
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html
| Signed-off-by: Arnaldo Carvalho de Melo [EMAIL PROTECTED]
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html
| Signed-off-by: Arnaldo Carvalho de Melo [EMAIL PROTECTED]
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html
| The first six patches in this series are unmodified, so if you
| are OK with them please send me your Signed-off-by.
Patches [1/7], [2/7], and [6/7] already have a signed-off and there are
no changes. Just acknowledged [3..5/7], will look at [7/7] now.
Cheers
Gerrit
--
To unsubscribe from
for `data packets' as per RFC 4340, sec. 7.7.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
Signed-off-by: Ian McDonald [EMAIL PROTECTED]
---
net/dccp/ccids/lib/packet_history.c | 126 ---
net/dccp/ccids/lib/packet_history.h | 144
tfrc_module source file (this is later populated
with TX/RX hist and LI Database routines);
(2) a dedicated tfrc_pr_debug macro with toggle switch `tfrc_debug'.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
Signed-off-by: Ian McDonald [EMAIL PROTECTED]
---
net/dccp/ccids/Kconfig
out by
Arnaldo);
* no other code calls this function, hence the inline function can go.
Also replaced the first call to updating s with direct assignment of
`payload_size'; this has also
been pointed out by Arnaldo.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
---
net/dccp/ccids/ccid3.c
Orthogonal to the ongoing discussion of patches, here are updates
of existing ones. This is mainly to keep the test tree in synch;
I'd like to upload the new test tree since -rc4 is out.
Arnaldo has actually pointed out more bugs than I have given him credit for,
these are contained in this patch
| I found a problem that I'm still investigating if was introduced by this
| patch or if was already present. When sending 1 million 256 byte packets
| with ttcp over loopback, using ccid3 it is crashing, the test machine
| I'm using doesn't have a serial port, its a notebook, will switch to
|
| @@ -788,8 +782,8 @@ static void ccid3_hc_rx_packet_recv(stru
| if (unlikely(hcrx-ccid3hcrx_state == TFRC_RSTATE_NO_DATA)) {
| if (is_data_packet) {
| do_feedback = FBACK_INITIAL;
| + hcrx-ccid3hcrx_s = payload_size;
|
| Patch #3:
| -
|Renames s/tfrc_tx_hist/tfrc_tx_hist_slab/g; no problems.
|
| This was for consistency with the other slabs in DCCP:
|
| [EMAIL PROTECTED] net-2.6.25]$ find net/dccp/ -name *.c | xargs grep
'struct kmem_cache'
Thanks, I will put the same naming scheme also in the
| In the end this went back to the same questions and issues that were
tackled between
| February and March this year. I wish we could have had this dicussion then;
it would
| have made this email unnecessary.
|
| That is why it is important that the changeset comment collects these
|
Today being Wednesday, below is some feedback after working through the patch
set.
Hope this is helpful.
Patch #1:
-
Several new good points are introduced:
- IP_DCCP_TFRC_DEBUG is made dependent on IP_DCCP_TFRC_DEBUG which is useful
- the select from CONFIG_IP_DCCP_CCID3 =
| Thanks, I folded this into the reorganized RX history handling patch,
| together with reverting ccid3_hc_rx_packet_recv to very close to your
| original patch, with this changes:
|
| 1. no need to calculate the payload size for non data packets as this
|value won't be used.
| 2. Initialize
Quoting Arnaldo:
| Em Tue, Dec 04, 2007 at 06:55:17AM +, Gerrit Renker escreveu:
| NAK. You have changed the control flow of the algorithm and the underlying
| data structure. Originally it had been an array of pointers, and this had
| been a design decision right from the first submissions
Hi Arnaldo,
hank you for going through this. I have just backported your recent patches of
2.6.25
to the DCCP/CCID4/Faster Restart test tree at
git://eden-feed.erg.abdn.ac.uk/dccp_exp {dccp,ccid4,dccp_fr}
as per subsequent message.
|do, so please consider moving DCCP discussion
I am re-submitting the original patch set which Arnaldo referred to, due to:
1/ It has been reworked to patch/compile against the 2.6.25 tree, which lead
to a few changes (not conceptual in nature).
2/ Patch #7 in Arnaldo's set says that this patch set introduced some bugs.
Please
This patch changes the tfrc_lib module in the following manner:
(1) a dedicated tfrc_module source file (this is later populated
with TX/RX hist and LI Database routines);
(2) a dedicated tfrc_pr_debug macro with toggle switch `tfrc_debug'.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED
/
fallback RTT value (defined in section 3.4 of RFC 4340 as 0.2 sec); while
at it, the upper bound of 4 seconds for an RTT sample has been reduced to
match the initial TCP RTO value of 3 seconds from[RFC 1122, 4.2.3.1].
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
Signed-off-by: Ian McDonald [EMAIL
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
Signed-off-by: Ian McDonald [EMAIL PROTECTED]
---
net/dccp/ccids/lib/loss_interval.c |9 ++
net/dccp/ccids/lib/packet_history.c | 162 ---
net/dccp/ccids/lib/packet_history.h | 84 --
3 files
to automatically track highest-received seqno;
* receiver-based RTT estimation (needed for instance by RFC 3448, 6.3.1);
* a generic function to test for `data packets' as per RFC 4340, sec. 7.7.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
Signed-off-by: Ian McDonald [EMAIL PROTECTED]
---
net
-by: Gerrit Renker [EMAIL PROTECTED]
Signed-off-by: Ian McDonald [EMAIL PROTECTED]
---
net/dccp/ccids/ccid3.c | 292 ++--
net/dccp/ccids/ccid3.h | 38 ---
2 files changed, 102 insertions(+), 228 deletions(-)
diff --git a/net/dccp/ccids/ccid3.c b/net/dccp
for NDUPACK=3 packets to fill the hole;
- updating loss records when a late-arriving packet fills a hole.
Signed-off-by: Gerrit Renker [EMAIL PROTECTED]
Signed-off-by: Ian McDonald [EMAIL PROTECTED]
---
net/dccp/ccids/lib/loss_interval.c | 158 +-
net/dccp/ccids
| Are you suggesting using netdev exclusively or in addition to [EMAIL
PROTECTED]
|
| Well, since at least one person that has contributed significantly in
| the past has said he can't cope with traffic on netdev, we can CC
| [EMAIL PROTECTED]
I have a similar problem with the traffic but agree
| | static inline void ccid3_hc_rx_update_s(struct ccid3_hc_rx_sock
*hcrx, int len)
| | {
| | if (likely(len 0))/* don't update on empty
packets (e.g. ACKs) */
| | hcrx-ccid3hcrx_s =
tfrc_ewma(hcrx-ccid3hcrx_s, len, 9);
| |
and/or delayed packets.
This is not what I would call entirely equivalent as you claim. Your
algorithm is fundamentally different, the control flow is not the same,
nor are the underlying data structures.
| Credit here goes to Gerrit Renker, that provided the initial implementation
for
| this new
1 - 100 of 185 matches
Mail list logo