21 Mar, 2006

2 commits


03 Feb, 2006

1 commit

  • SCTP used to "fast retransmit" a TSN every time we hit the number
    of missing reports for the TSN. However the Implementers Guide
    specifies that we should only "fast retransmit" a given TSN once.
    Subsequent retransmits should be timeouts only. Also change the
    number of missing reports to 3 as per the latest IG(similar to TCP).

    Signed-off-by: Vlad Yasevich
    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Vlad Yasevich
     

31 Jan, 2006

2 commits

  • The number of HEARTBEAT chunks that an association may transmit is
    limited by Association.Max.Retrans count; however, the code allows
    us to send one extra heartbeat.

    This patch limits the number of heartbeats to the maximum count.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • We currently count the initial INIT/COOKIE_ECHO chunk toward the
    retransmit count and thus sends a total of sctp_max_retrans_init chunks.
    The correct behavior is to retransmit the chunk sctp_max_retrans_init in
    addition to sending the original.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Vlad Yasevich
     

18 Jan, 2006

8 commits

  • Signed-off-by: Tsutomu Fujii
    Signed-off-by: Sridhar Samudrala

    Tsutomu Fujii
     
  • Validate and update the sk in sctp_rcv() to avoid the race where an
    assoc/ep could move to a different socket after we get the sk, but before
    the skb is added to the backlog.

    Also migrate the skb's in backlog queue to new sk when doing a peeloff.

    Signed-off-by: Sridhar Samudrala

    Sridhar Samudrala
     
  • sctp_unpack_cookie used an on-stack array called digest as a result/out
    parameter in the call to crypto_hmac. However, hmac code
    (crypto_hmac_final)
    assumes that the 'out' argument is in virtual memory (identity mapped
    region)
    and can use virt_to_page call on it. This does not work with the on-stack
    declared digest. The problems observed so far have been:
    a) incorrect hmac digest
    b) machine check and hardware reset.

    Solution is to define the digest in an identity mapped region by
    kmalloc'ing
    it. We can do this once as part of the endpoint structure and re-use it
    when
    verifying the SCTP cookie.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: Sridhar Samudrala

    Vlad Yasevich
     
  • Change all the structure members that hold jiffies to be of type
    unsigned long. This also corrects bad sysctl formating on 64 bit
    architectures.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: Sridhar Samudrala

    Vlad Yasevich
     
  • This patch corrects the panic by casting the argument to the
    pointer of correct size. On big-endian systems we ended up loading
    only 32 bits of data because we are treating the pointer as an int*.
    By treating this pointer as loff_t*, we'll load the full 64 bits
    and then let regular integer demotion take place which will give us
    the correct value.

    Signed-off-by: Vlad Yaseivch
    Signed-off-by: Sridhar Samudrala

    Vlad Yasevich
     
  • When creating a very large number of associations (and endpoints),
    /proc/assocs and /proc/eps will not show all of them. As a result
    netstat will not show all of the either. This is particularly evident
    when creating 1000+ associations (or endpoints). As an example with
    1500 tcp style associations over loopback, netstat showed 1420 on my
    system instead of 3000.

    The reason for this is that the seq_operations start method is invoked
    multiple times bacause of the amount of data that is provided. The
    start method always increments the position parameter and since we use
    the position as the hash bucket id, we end up skipping hash buckets.

    This patch corrects this situation and get's rid of the silly hash-1
    decrement.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: Sridhar Samudrala

    Vlad Yasevich
     
  • On 64 bit architectures, sctp_cookie sent as part of INIT-ACK is not
    aligned on a 64 bit boundry and thus causes unaligned access exceptions.

    The layout of the cookie prameter is this:
    |
    Signed-off-by: Sridhar Samudrala

    Vlad Yasevich
     
  • Do not release the reference to association/endpoint if an incoming skb is
    added to backlog. Instead release it after the chunk is processed in
    sctp_backlog_rcv().

    Signed-off-by: Sridhar Samudrala
    Signed-off-by: Vlad Yasevich

    Sridhar Samudrala
     

14 Jan, 2006

1 commit

  • There are errors and inconsistency in the display of NIP6 strings.
    ie: net/ipv6/ip6_flowlabel.c

    There are errors and inconsistency in the display of NIPQUAD strings too.
    ie: net/netfilter/nf_conntrack_ftp.c

    This patch:
    adds NIP6_FMT to kernel.h
    changes all code to use NIP6_FMT
    fixes net/ipv6/ip6_flowlabel.c
    adds NIPQUAD_FMT to kernel.h
    fixes net/netfilter/nf_conntrack_ftp.c
    changes a few uses of "%u.%u.%u.%u" to NIPQUAD_FMT for symmetry to NIP6_FMT

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     

12 Jan, 2006

2 commits


10 Jan, 2006

1 commit


08 Jan, 2006

2 commits


04 Jan, 2006

4 commits

  • To help in reducing the number of include dependencies, several files were
    touched as they were getting needed headers indirectly for stuff they use.

    Thanks also to Alan Menegotto for pointing out that net/dccp/proto.c had
    linux/dccp.h include twice.

    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Arnaldo Carvalho de Melo
     
  • I noticed that some of 'struct proto_ops' used in the kernel may share
    a cache line used by locks or other heavily modified data. (default
    linker alignement is 32 bytes, and L1_CACHE_LINE is 64 or 128 at
    least)

    This patch makes sure a 'struct proto_ops' can be declared as const,
    so that all cpus can share all parts of it without false sharing.

    This is not mandatory : a driver can still use a read/write structure
    if it needs to (and eventually a __read_mostly)

    I made a global stubstitute to change all existing occurences to make
    them const.

    This should reduce the possibility of false sharing on SMP, and
    speedup some socket system calls.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Signed-off-by: Frank Filz
    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Frank Filz
     
  • This patch adds support to set/get heartbeat interval, maximum number of
    retransmissions, pathmtu, sackdelay time for a particular transport/
    association/socket as per the latest SCTP sockets api draft11.

    Signed-off-by: Frank Filz
    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Frank Filz
     

20 Dec, 2005

1 commit


16 Dec, 2005

1 commit


03 Dec, 2005

2 commits


12 Nov, 2005

3 commits

  • Also introduces a sysctl option to configure the receive buffer
    accounting policy to be either at socket or association level.
    Default is all the associations on the same socket share the
    receive buffer.

    Signed-off-by: Neil Horman
    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Neil Horman
     
  • The socket level timeout values are maintained in sctp_sock and
    association level timeouts are in sctp_association. So there is
    no need for ep->timeouts.

    Signed-off-by: Vladislav Yasevich
    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Vladislav Yasevich
     
  • It is possible to get to sctp_v4_get_saddr() without a valid
    association. This happens when processing OOTB packets and
    the cached route entry is no longer valid.
    However, when responding to OOTB packets we already properly
    set the source address based on the information in the OOTB
    packet. So, if we we get to sctp_v4_get_saddr() without an
    association we can simply return.

    Signed-off-by: Vladislav Yasevich
    Signed-off-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Vladislav Yasevich
     

09 Nov, 2005

1 commit

  • From: Jesper Juhl

    This is the net/ part of the big kfree cleanup patch.

    Remove pointless checks for NULL prior to calling kfree() in net/.

    Signed-off-by: Jesper Juhl
    Cc: "David S. Miller"
    Cc: Arnaldo Carvalho de Melo
    Acked-by: Marcel Holtmann
    Acked-by: YOSHIFUJI Hideaki
    Signed-off-by: Andrew Morton

    Jesper Juhl
     

29 Oct, 2005

5 commits


26 Oct, 2005

1 commit

  • In 'net' change the explicit use of for-loops and NR_CPUS into the
    general for_each_cpu() or for_each_online_cpu() constructs, as
    appropriate. This widens the scope of potential future optimizations
    of the general constructs, as well as takes advantage of the existing
    optimizations of first_cpu() and next_cpu(), which is advantageous
    when the true CPU count is much smaller than NR_CPUS.

    Signed-off-by: John Hawkes
    Signed-off-by: David S. Miller
    Signed-off-by: Arnaldo Carvalho de Melo

    John Hawkes
     

09 Oct, 2005

1 commit

  • - added typedef unsigned int __nocast gfp_t;

    - replaced __nocast uses for gfp flags with gfp_t - it gives exactly
    the same warnings as far as sparse is concerned, doesn't change
    generated code (from gcc point of view we replaced unsigned int with
    typedef) and documents what's going on far better.

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     

07 Oct, 2005

1 commit


04 Oct, 2005

1 commit

  • The following patch renames __in_dev_get() to __in_dev_get_rtnl() and
    introduces __in_dev_get_rcu() to cover the second case.

    1) RCU with refcnt should use in_dev_get().
    2) RCU without refcnt should use __in_dev_get_rcu().
    3) All others must hold RTNL and use __in_dev_get_rtnl().

    There is one exception in net/ipv4/route.c which is in fact a pre-existing
    race condition. I've marked it as such so that we remember to fix it.

    This patch is based on suggestions and prior work by Suzanne Wood and
    Paul McKenney.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu