1. 18 7月, 2008 8 次提交
  2. 12 6月, 2008 1 次提交
  3. 01 4月, 2008 3 次提交
  4. 07 3月, 2008 1 次提交
    • D
      [UDP]: Revert udplite and code split. · db8dac20
      David S. Miller 提交于
      This reverts commit db1ed684 ("[IPV6]
      UDP: Rename IPv6 UDP files."), commit
      8be8af8f ("[IPV4] UDP: Move
      IPv4-specific bits to other file.") and commit
      e898d4db ("[UDP]: Allow users to
      configure UDP-Lite.").
      
      First, udplite is of such small cost, and it is a core protocol just
      like TCP and normal UDP are.
      
      We spent enormous amounts of effort to make udplite share as much code
      with core UDP as possible.  All of that work is less valuable if we're
      just going to slap a config option on udplite support.
      
      It is also causing build failures, as reported on linux-next, showing
      that the changeset was not tested very well.  In fact, this is the
      second build failure resulting from the udplite change.
      
      Finally, the config options provided was a bool, instead of a modular
      option.  Meaning the udplite code does not even get build tested
      by allmodconfig builds, and furthermore the user is not presented
      with a reasonable modular build option which is particularly needed
      by distribution vendors.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      db8dac20
  5. 04 3月, 2008 1 次提交
    • Y
      [UDP]: Allow users to configure UDP-Lite. · e898d4db
      YOSHIFUJI Hideaki 提交于
      Let's give users an option for disabling UDP-Lite (~4K).
      
      old:
      |    text	   data	    bss	    dec	    hex	filename
      |  286498	  12432	   6072	 305002	  4a76a	net/ipv4/built-in.o
      |  193830	   8192	   3204	 205226	  321aa	net/ipv6/ipv6.o
      
      new (without UDP-Lite):
      |    text	   data	    bss	    dec	    hex	filename
      |  284086	  12136	   5432	 301654	  49a56	net/ipv4/built-in.o
      |  191835	   7832	   3076	 202743	  317f7	net/ipv6/ipv6.o
      Signed-off-by: NYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
      e898d4db
  6. 29 1月, 2008 5 次提交
  7. 07 11月, 2007 1 次提交
    • E
      [NET]: Define infrastructure to keep 'inuse' changes in an efficent SMP/NUMA way. · 286ab3d4
      Eric Dumazet 提交于
      "struct proto" currently uses an array stats[NR_CPUS] to track change on
      'inuse' sockets per protocol.
      
      If NR_CPUS is big, this means we use a big memory area for this.
      Moreover, all this memory area is located on a single node on NUMA
      machines, increasing memory pressure on the boot node.
      
      In this patch, I tried to :
      
      - Keep a fast !CONFIG_SMP implementation
      - Keep a fast CONFIG_SMP implementation for often used protocols
      (tcp,udp,raw,...)
      - Introduce a NUMA efficient implementation
      
      Some helper macros are defined in include/net/sock.h
      These macros take into account CONFIG_SMP
      
      If a "struct proto" is declared without using DEFINE_PROTO_INUSE /
      REF_PROTO_INUSE
      macros, it will automatically use a default implementation, using a
      dynamically allocated percpu zone.
      This default implementation will be NUMA efficient, but might use 32/64
      bytes per possible cpu
      because of current alloc_percpu() implementation.
      However it still should be better than previous implementation based on
      stats[NR_CPUS] field.
      
      When a "struct proto" is changed to use the new macros, we use a single
      static "int" percpu variable,
      lowering the memory and cpu costs, still preserving NUMA efficiency.
      Signed-off-by: NEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      286ab3d4
  8. 30 10月, 2007 1 次提交
  9. 26 10月, 2007 1 次提交
  10. 16 10月, 2007 1 次提交
    • P
      [INET]: Collect frag queues management objects together · 7eb95156
      Pavel Emelyanov 提交于
      There are some objects that are common in all the places
      which are used to keep track of frag queues, they are:
      
       * hash table
       * LRU list
       * rw lock
       * rnd number for hash function
       * the number of queues
       * the amount of memory occupied by queues
       * secret timer
      
      Move all this stuff into one structure (struct inet_frags)
      to make it possible use them uniformly in the future. Like
      with the previous patch this mostly consists of hunks like
      
      -    write_lock(&ipfrag_lock);
      +    write_lock(&ip4_frags.lock);
      
      To address the issue with exporting the number of queues and
      the amount of memory occupied by queues outside the .c file
      they are declared in, I introduce a couple of helpers.
      Signed-off-by: NPavel Emelyanov <xemul@openvz.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7eb95156
  11. 11 10月, 2007 5 次提交
  12. 08 6月, 2007 1 次提交
  13. 14 5月, 2007 1 次提交
  14. 26 4月, 2007 3 次提交
  15. 13 2月, 2007 1 次提交
  16. 11 2月, 2007 1 次提交
  17. 03 12月, 2006 1 次提交
    • G
      [NET]: Supporting UDP-Lite (RFC 3828) in Linux · ba4e58ec
      Gerrit Renker 提交于
      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: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ba4e58ec
  18. 23 9月, 2006 1 次提交
  19. 11 4月, 2006 1 次提交
  20. 06 2月, 2006 1 次提交
  21. 04 1月, 2006 1 次提交