11 Jul, 2007

1 commit

  • This patch makes MIPv6 loadable module named "mip6".

    Here is a modprobe.conf(5) example to load it automatically
    when user application uses XFRM state for MIPv6:

    alias xfrm-type-10-43 mip6
    alias xfrm-type-10-60 mip6

    Some MIPv6 feature is not included by this modular, however,
    it should not be affected to other features like either IPsec
    or IPv6 with and without the patch.
    We may discuss XFRM, MH (RAW socket) and ancillary data/sockopt
    separately for future work.

    Loadable features:
    * MH receiving check (to send ICMP error back)
    * RO header parsing and building (i.e. RH2 and HAO in DSTOPTS)
    * XFRM policy/state database handling for RO

    These are NOT covered as loadable:
    * Home Address flags and its rule on source address selection
    * XFRM sub policy (depends on its own kernel option)
    * XFRM functions to receive RO as IPv6 extension header
    * MH sending/receiving through raw socket if user application
    opens it (since raw socket allows to do so)
    * RH2 sending as ancillary data
    * RH2 operation with setsockopt(2)

    Signed-off-by: Masahide NAKAMURA
    Signed-off-by: David S. Miller

    Masahide NAKAMURA
     

09 May, 2007

1 commit


26 Apr, 2007

7 commits


27 Feb, 2007

1 commit

  • This patch for adjust inet6_exit() to inverse sequence to inet6_init().

    At ipv6_init, it first create proc_root/net/dev_snmp6 entry by call
    ipv6_misc_proc_init(), then call addrconf_init() to create the corresponding
    device entry at this directory, but at inet6_exit, ipv6_misc_proc_exit()
    called first, then call addrconf_init().

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

    Joe Jin
     

15 Feb, 2007

1 commit

  • After Al Viro (finally) succeeded in removing the sched.h #include in module.h
    recently, it makes sense again to remove other superfluous sched.h includes.
    There are quite a lot of files which include it but don't actually need
    anything defined in there. Presumably these includes were once needed for
    macros that used to live in sched.h, but moved to other header files in the
    course of cleaning it up.

    To ease the pain, this time I did not fiddle with any header files and only
    removed #includes from .c-files, which tend to cause less trouble.

    Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
    arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
    allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
    configs in arch/arm/configs on arm. I also checked that no new warnings were
    introduced by the patch (actually, some warnings are removed that were emitted
    by unnecessarily included header files).

    Signed-off-by: Tim Schmielau
    Acked-by: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tim Schmielau
     

11 Feb, 2007

1 commit


10 Jan, 2007

1 commit


09 Jan, 2007

1 commit

  • The inet_create() and inet6_create() functions incorrectly set the
    inet_sock->is_icsk field. Both functions assume that the is_icsk field is
    large enough to hold at least a INET_PROTOSW_ICSK value when it is actually
    only a single bit. This patch corrects the assignment by doing a boolean
    comparison whose result will safely fit into a single bit field.

    Signed-off-by: Paul Moore
    Signed-off-by: David S. Miller

    Paul Moore
     

08 Dec, 2006

1 commit

  • The patch (as824b) makes percpu_free() ignore NULL arguments, as one would
    expect for a deallocation routine. (Note that free_percpu is #defined as
    percpu_free in include/linux/percpu.h.) A few callers are updated to remove
    now-unneeded tests for NULL. A few other callers already seem to assume
    that passing a NULL pointer to percpu_free() is okay!

    The patch also removes an unnecessary NULL check in percpu_depopulate().

    Signed-off-by: Alan Stern
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alan Stern
     

03 Dec, 2006

3 commits

  • Signed-off-by: Al Viro
    Signed-off-by: David S. Miller

    Al Viro
     
  • This is a revision of the previously submitted patch, which alters
    the way files are organized and compiled in the following manner:

    * UDP and UDP-Lite now use separate object files
    * source file dependencies resolved via header files
    net/ipv{4,6}/udp_impl.h
    * order of inclusion files in udp.c/udplite.c adapted
    accordingly

    [NET/IPv4]: Support for the UDP-Lite protocol (RFC 3828)

    This patch adds support for UDP-Lite to the IPv4 stack, provided as an
    extension to the existing UDPv4 code:
    * generic routines are all located in net/ipv4/udp.c
    * UDP-Lite specific routines are in net/ipv4/udplite.c
    * MIB/statistics support in /proc/net/snmp and /proc/net/udplite
    * shared API with extensions for partial checksum coverage

    [NET/IPv6]: Extension for UDP-Lite over IPv6

    It extends the existing UDPv6 code base with support for UDP-Lite
    in the same manner as per UDPv4. In particular,
    * UDPv6 generic and shared code is in net/ipv6/udp.c
    * UDP-Litev6 specific extensions are in net/ipv6/udplite.c
    * MIB/statistics support in /proc/net/snmp6 and /proc/net/udplite6
    * support for IPV6_ADDRFORM
    * aligned the coding style of protocol initialisation with af_inet6.c
    * made the error handling in udpv6_queue_rcv_skb consistent;
    to return `-1' on error on all error cases
    * consolidation of shared code

    [NET]: UDP-Lite Documentation and basic XFRM/Netfilter support

    The UDP-Lite patch further provides
    * API documentation for UDP-Lite
    * basic xfrm support
    * basic netfilter support for IPv4 and IPv6 (LOG target)

    Signed-off-by: Gerrit Renker
    Signed-off-by: David S. Miller

    Gerrit Renker
     
  • Signed-off-by: Al Viro
    Signed-off-by: David S. Miller

    Al Viro
     

12 Oct, 2006

1 commit


29 Sep, 2006

1 commit


23 Sep, 2006

5 commits


03 Aug, 2006

1 commit

  • The current users of ip6_dst_lookup can be divided into two classes:

    1) The caller holds no locks and is in user-context (UDP).
    2) The caller does not want to lookup the dst cache at all.

    The second class covers everyone except UDP because most people do
    the cache lookup directly before calling ip6_dst_lookup. This patch
    adds ip6_sk_dst_lookup for the first class.

    Similarly ip6_dst_store users can be divded into those that need to
    take the socket dst lock and those that don't. This patch adds
    __ip6_dst_store for those (everyone except UDP/datagram) that don't
    need an extra lock.

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

    Herbert Xu
     

01 Jul, 2006

3 commits

  • * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
    [IPV6]: Added GSO support for TCPv6
    [NET]: Generalise TSO-specific bits from skb_setup_caps
    [IPV6]: Added GSO support for TCPv6
    [IPV6]: Remove redundant length check on input
    [NETFILTER]: SCTP conntrack: fix crash triggered by packet without chunks
    [TG3]: Update version and reldate
    [TG3]: Add TSO workaround using GSO
    [TG3]: Turn on hw fix for ASF problems
    [TG3]: Add rx BD workaround
    [TG3]: Add tg3_netif_stop() in vlan functions
    [TCP]: Reset gso_segs if packet is dodgy

    Linus Torvalds
     
  • This patch adds GSO support for IPv6 and TCPv6. This is based on a patch
    by Ananda Raju . His original description is:

    This patch enables TSO over IPv6. Currently Linux network stacks
    restricts TSO over IPv6 by clearing of the NETIF_F_TSO bit from
    "dev->features". This patch will remove this restriction.

    This patch will introduce a new flag NETIF_F_TSO6 which will be used
    to check whether device supports TSO over IPv6. If device support TSO
    over IPv6 then we don't clear of NETIF_F_TSO and which will make the
    TCP layer to create TSO packets. Any device supporting TSO over IPv6
    will set NETIF_F_TSO6 flag in "dev->features" along with NETIF_F_TSO.

    In case when user disables TSO using ethtool, NETIF_F_TSO will get
    cleared from "dev->features". So even if we have NETIF_F_TSO6 we don't
    get TSO packets created by TCP layer.

    SKB_GSO_TCPV4 renamed to SKB_GSO_TCP to make it generic GSO packet.
    SKB_GSO_UDPV4 renamed to SKB_GSO_UDP as UFO is not a IPv4 feature.
    UFO is supported over IPv6 also

    The following table shows there is significant improvement in
    throughput with normal frames and CPU usage for both normal and jumbo.

    --------------------------------------------------
    | | 1500 | 9600 |
    | ------------------|-------------------|
    | | thru CPU | thru CPU |
    --------------------------------------------------
    | TSO OFF | 2.00 5.5% id | 5.66 20.0% id |
    --------------------------------------------------
    | TSO ON | 2.63 78.0 id | 5.67 39.0% id |
    --------------------------------------------------

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

    Herbert Xu
     
  • Signed-off-by: Jörn Engel
    Signed-off-by: Adrian Bunk

    Jörn Engel
     

21 Mar, 2006

2 commits


03 Feb, 2006

1 commit

  • On Tue, Jan 31, 2006 at 10:24:32PM +0100, Ingo Molnar wrote:
    >
    > [] _write_lock+0x8/0x10
    > [] inet6_destroy_sock+0x25/0x100
    > [] tcp_v6_destroy_sock+0x12/0x20
    > [] inet_csk_destroy_sock+0x4a/0x150
    > [] tcp_rcv_state_process+0xd4c/0xdd0
    > [] tcp_v4_do_rcv+0xa9/0x340
    > [] tcp_v4_rcv+0x8eb/0x9d0

    OK this is definitely broken. We should never touch the dst lock in
    softirq context. Since inet6_destroy_sock may be called from that
    context due to the asynchronous nature of sockets, we can't take the
    lock there.

    In fact this sk_dst_reset is totally redundant since all IPv6 sockets
    use inet_sock_destruct as their socket destructor which always cleans
    up the dst anyway. So the solution is to simply remove the call.

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

    Herbert Xu
     

12 Jan, 2006

1 commit


09 Jan, 2006

1 commit

  • __alloc_percpu and alloc_percpu both take an 'align' argument which is
    completely ignored. snmp6_mib_init() in net/ipv6/af_inet6.c attempts to use
    it, but it will be ignored. Therefore, remove the 'align' argument and fixup
    the lone caller.

    Signed-off-by: Matthew Dobson
    Acked-by: Manfred Spraul
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pekka Enberg
     

04 Jan, 2006

6 commits

  • Currently all network protocols need to call dev_ioctl as the default
    fallback in their ioctl implementations. This patch adds a fallback
    to dev_ioctl to sock_ioctl if the protocol returned -ENOIOCTLCMD.
    This way all the procotol ioctl handlers can be simplified and we don't
    need to export dev_ioctl.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: David S. Miller

    Christoph Hellwig
     
  • 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
     
  • As DCCP needs to be called in the same spots.

    Now we have a member in inet_sock (is_icsk), set at sock creation time from
    struct inet_protosw->flags (if INET_PROTOSW_ICSK is set, like for TCP and
    DCCP) to see if a struct sock instance is a inet_connection_sock for places
    like the ones in ip_sockglue.c (v4 and v6) where we previously were looking if
    sk_type was SOCK_STREAM, that is insufficient because we now use the same code
    for DCCP, that has sk_type SOCK_DCCP.

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

    Arnaldo Carvalho de Melo
     
  • It was already non-TCP specific, will be used by DCCPv6.

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

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

    Arnaldo Carvalho de Melo
     
  • Using sk->sk_protocol instead of IPPROTO_TCP.

    Will be used by DCCPv6 in the next changesets.

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

    Arnaldo Carvalho de Melo