1. 16 10月, 2007 3 次提交
    • P
      [INET]: Consolidate the xxx_evictor · 8e7999c4
      Pavel Emelyanov 提交于
      The evictors collect some statistics for ipv4 and ipv6,
      so make it return the number of evicted queues and account
      them all at once in the caller.
      
      The XXX_ADD_STATS_BH() macros are just for this case,
      but maybe there are places in code, that can make use of
      them as well.
      Signed-off-by: NPavel Emelyanov <xemul@openvz.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8e7999c4
    • P
      [INET]: Collect common frag sysctl variables together · 04128f23
      Pavel Emelyanov 提交于
      Some sysctl variables are used to tune the frag queues
      management and it will be useful to work with them in
      a common way in the future, so move them into one
      structure, moreover they are the same for all the frag
      management codes.
      
      I don't place them in the existing inet_frags object,
      introduced in the previous patch for two reasons:
      
       1. to keep them in the __read_mostly section;
       2. not to export the whole inet_frags objects outside.
      Signed-off-by: NPavel Emelyanov <xemul@openvz.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      04128f23
    • 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
  2. 11 10月, 2007 2 次提交
    • D
      [IPV6]: Add ICMPMsgStats MIB (RFC 4293) [rev 2] · 14878f75
      David L Stevens 提交于
      Background: RFC 4293 deprecates existing individual, named ICMP
      type counters to be replaced with the ICMPMsgStatsTable. This table
      includes entries for both IPv4 and IPv6, and requires counting of all
      ICMP types, whether or not the machine implements the type.
      
      These patches "remove" (but not really) the existing counters, and
      replace them with the ICMPMsgStats tables for v4 and v6.
      It includes the named counters in the /proc places they were, but gets the
      values for them from the new tables. It also counts packets generated
      from raw socket output (e.g., OutEchoes, MLD queries, RA's from
      radvd, etc).
      
      Changes:
      1) create icmpmsg_statistics mib
      2) create icmpv6msg_statistics mib
      3) modify existing counters to use these
      4) modify /proc/net/snmp to add "IcmpMsg" with all ICMP types
              listed by number for easy SNMP parsing
      5) modify /proc/net/snmp printing for "Icmp" to get the named data
              from new counters.
      [new to 2nd revision]
      6) support per-interface ICMP stats
      7) use common macro for per-device stat macros
      Signed-off-by: NDavid L Stevens <dlstevens@us.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      14878f75
    • B
      [IPV6]: Add v4mapped address inline · e773e4fa
      Brian Haley 提交于
      Add v4mapped address inline to avoid calls to ipv6_addr_type().
      Signed-off-by: NBrian Haley <brian.haley@hp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e773e4fa
  3. 31 7月, 2007 1 次提交
  4. 11 7月, 2007 1 次提交
  5. 25 5月, 2007 1 次提交
    • D
      [XFRM]: Allow packet drops during larval state resolution. · 14e50e57
      David S. Miller 提交于
      The current IPSEC rule resolution behavior we have does not work for a
      lot of people, even though technically it's an improvement from the
      -EAGAIN buisness we had before.
      
      Right now we'll block until the key manager resolves the route.  That
      works for simple cases, but many folks would rather packets get
      silently dropped until the key manager resolves the IPSEC rules.
      
      We can't tell these folks to "set the socket non-blocking" because
      they don't have control over the non-block setting of things like the
      sockets used to resolve DNS deep inside of the resolver libraries in
      libc.
      
      With that in mind I coded up the patch below with some help from
      Herbert Xu which provides packet-drop behavior during larval state
      resolution, controllable via sysctl and off by default.
      
      This lays the framework to either:
      
      1) Make this default at some point or...
      
      2) Move this logic into xfrm{4,6}_policy.c and implement the
         ARP-like resolution queue we've all been dreaming of.
         The idea would be to queue packets to the policy, then
         once the larval state is resolved by the key manager we
         re-resolve the route and push the packets out.  The
         packets would timeout if the rule didn't get resolved
         in a certain amount of time.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      14e50e57
  6. 04 5月, 2007 1 次提交
    • E
      [IPV6]: Some cleanups in include/net/ipv6.h · db3459d1
      Eric Dumazet 提交于
      1) struct ip6_flowlabel : moves 'users' field to avoid two 32bits
         holes for 64bit arches. Shrinks by 8 bytes sizeof(struct
         ip6_flowlabel)
      
      2) ipv6_addr_cmp() and ipv6_addr_copy() dont need (void *) casts :
         Compiler might take into account natural alignement of in6_addr
         structs to emit better code for memcpy()/memcmp() Casts to (void *)
         force byte accesses.
      
      3) ipv6_addr_prefix() optimization :
      
      Better to clear whole struct, as compiler can emit better code for
      memset(addr, 0, 16) (2 stores on x86_64), and avoid some conditional
      branches.
      
      # size vmlinux.after vmlinux.before
         text    data     bss     dec     hex filename
      5262262  647612  557432 6467306  62aeea vmlinux.after
      5262550  647612  557432 6467594  62b00a vmlinux.before
      
      thats 288 bytes saved.
      Signed-off-by: NEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      db3459d1
  7. 03 5月, 2007 1 次提交
  8. 26 4月, 2007 4 次提交
  9. 03 12月, 2006 6 次提交
  10. 29 9月, 2006 1 次提交
  11. 23 9月, 2006 3 次提交
  12. 03 8月, 2006 1 次提交
    • H
      [IPV6]: Audit all ip6_dst_lookup/ip6_dst_store calls · 497c615a
      Herbert Xu 提交于
      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: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      497c615a
  13. 26 4月, 2006 1 次提交
  14. 19 4月, 2006 1 次提交
  15. 21 3月, 2006 2 次提交
  16. 08 1月, 2006 1 次提交
  17. 04 1月, 2006 4 次提交
  18. 20 11月, 2005 1 次提交
  19. 09 11月, 2005 2 次提交
  20. 08 9月, 2005 2 次提交
  21. 30 8月, 2005 1 次提交