]> git.karo-electronics.de Git - linux-beck.git/commitdiff
Merge branch 'dccp' of git://eden-feed.erg.abdn.ac.uk/net-next-2.6
authorDavid S. Miller <davem@davemloft.net>
Mon, 10 Jan 2011 00:16:57 +0000 (16:16 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 10 Jan 2011 00:16:57 +0000 (16:16 -0800)
Documentation/networking/dccp.txt
net/dccp/dccp.h
net/dccp/input.c
net/dccp/sysctl.c

index b395ca6a49f296e7b1ddda4e6a580f8691b22532..811872b45beee140a7d1a561b9cee9eadf211b48 100644 (file)
@@ -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
index 45087052d8948b3fcdb8808e990217b227c5aba9..5fdb072290178a2a7b1d4b9b64fb80cbe02a465e 100644 (file)
@@ -426,7 +426,8 @@ static inline void dccp_update_gsr(struct sock *sk, u64 seq)
 {
        struct dccp_sock *dp = dccp_sk(sk);
 
-       dp->dccps_gsr = seq;
+       if (after48(seq, dp->dccps_gsr))
+               dp->dccps_gsr = seq;
        /* Sequence validity window depends on remote Sequence Window (7.5.1) */
        dp->dccps_swl = SUB48(ADD48(dp->dccps_gsr, 1), dp->dccps_r_seq_win / 4);
        /*
index 15af247ea007a9e77f484a21c3cfe10d6796ff16..8cde009e8b8501ead8ff3e94ef6bfbaabc33088c 100644 (file)
@@ -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)))
-                       return 0;
+                       return -1;
 
                DCCP_WARN("Step 6 failed for %s packet, "
                          "(LSWL(%llu) <= P.seqno(%llu) <= S.SWH(%llu)) and "
index 563943822e58287412217e3e13963a507cdeff3b..42348824ee318c31f4a3ae901d1d5e57aa1f8c17 100644 (file)
@@ -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[] = {
        {
@@ -31,6 +32,7 @@ static struct ctl_table dccp_default_table[] = {
                .mode           = 0644,
                .proc_handler   = proc_doulongvec_minmax,
                .extra1         = &seqw_min,            /* RFC 4340, 7.5.2 */
+               .extra2         = &seqw_max,
        },
        {
                .procname       = "rx_ccid",