Hi Dave,
please find attached 3 bug fixes which recently came up on dccp@vger.
Patch #1: fixes a bug which wrongly classified sequence-invalid packets.
Patch #2: fixes a bug in updating the Greatest Sequence number Received (GSR).
Patch #3: fixes an inconsistency in setting the sequence window on 32/64 bit.
I have also placed this in into a fresh (today's) copy of net-next-2.6, on
git://eden-feed.erg.abdn.ac.uk/net-next-2.6 [subtree 'dccp']
---
Documentation/networking/dccp.txt | 1 +
net/dccp/dccp.h | 3 ++-
net/dccp/input.c | 2 +-
net/dccp/sysctl.c | 4 +++-
4 files changed, 7 insertions(+), 3 deletions(-)
From: Samuel Jero <redacted>
Currently dccp_check_seqno returns 0 (indicating a valid packet) if the
acknowledgment number is out of bounds and the sync that RFC 4340 mandates at
this point is currently being rate-limited. This function should return -1,
indicating an invalid packet.
Signed-off-by: Samuel Jero <redacted>
Acked-by: Gerrit Renker <redacted>
---
net/dccp/input.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
--- a/net/dccp/input.c+++ b/net/dccp/input.c
@@ -260,7 +260,7 @@ static int dccp_check_seqno(struct sock *sk, struct sk_buff *skb)*/if(time_before(now,(dp->dccps_rate_last+sysctl_dccp_sync_ratelimit)))-return0;+return-1;DCCP_WARN("Step 6 failed for %s packet, ""(LSWL(%llu) <= P.seqno(%llu) <= S.SWH(%llu)) and "
From: Samuel Jero <redacted>
Currently dccp_check_seqno allows any valid packet to update the Greatest
Sequence Number Received, even if that packet's sequence number is less than
the current GSR. This patch adds a check to make sure that the new packet's
sequence number is greater than GSR.
Signed-off-by: Samuel Jero <redacted>
Signed-off-by: Gerrit Renker <redacted>
---
net/dccp/dccp.h | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
The 'seq_window' sysctl sets the initial value for the DCCP Sequence Window,
which may range from 32..2^46-1 (RFC 4340, 7.5.2). The patch sets the upper
bound consistently to 2^32-1 on both 32 and 64 bit systems, which should be
sufficient - with a RTT of 1sec and 1-byte packets, a seq_window of 2^32-1
corresponds to a link speed of 34 Gbps.
Signed-off-by: Gerrit Renker <redacted>
---
Documentation/networking/dccp.txt | 1 +
net/dccp/sysctl.c | 4 +++-
2 files changed, 4 insertions(+), 1 deletions(-)
@@ -167,6 +167,7 @@ rx_ccid = 2 seq_window = 100 The initial sequence window (sec. 7.5.2) of the sender. This influences the local ackno validity and the remote seqno validity windows (7.5.1).+ Values in the range Wmin = 32 (RFC 4340, 7.5.2) up to 2^32-1 can be set. tx_qlen = 5 The size of the transmit buffer in packets. A value of 0 corresponds--- a/net/dccp/sysctl.c+++ b/net/dccp/sysctl.c
@@ -21,7 +21,8 @@ /* Boundary values */ static int zero = 0, u8_max = 0xFF;-static unsigned long seqw_min = 32;+static unsigned long seqw_min = DCCPF_SEQ_WMIN,+ seqw_max = 0xFFFFFFFF; /* maximum on 32 bit */ static struct ctl_table dccp_default_table[] = { {
Hi Dave,
please find attached 3 bug fixes which recently came up on dccp@vger.
Patch #1: fixes a bug which wrongly classified sequence-invalid packets.
Patch #2: fixes a bug in updating the Greatest Sequence number Received (GSR).
Patch #3: fixes an inconsistency in setting the sequence window on 32/64 bit.
I have also placed this in into a fresh (today's) copy of net-next-2.6, on
git://eden-feed.erg.abdn.ac.uk/net-next-2.6 [subtree 'dccp']