Skip to content
Snippets Groups Projects
  1. Jan 18, 2010
    • Octavian Purdila's avatar
      tcp: account SYN-ACK timeouts & retransmissions · 72659ecc
      Octavian Purdila authored
      
      Currently we don't increment SYN-ACK timeouts & retransmissions
      although we do increment the same stats for SYN. We seem to have lost
      the SYN-ACK accounting with the introduction of tcp_syn_recv_timer
      (commit 2248761e in the netdev-vger-cvs tree).
      
      This patch fixes this issue. In the process we also rename the v4/v6
      syn/ack retransmit functions for clarity. We also add a new
      request_socket operations (syn_ack_timeout) so we can keep code in
      inet_connection_sock.c protocol agnostic.
      
      Signed-off-by: default avatarOctavian Purdila <opurdila@ixiacom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      72659ecc
  2. Jan 15, 2010
  3. Jan 12, 2010
  4. Jan 07, 2010
    • Jesper Dangaard Brouer's avatar
      net: RFC3069, private VLAN proxy arp support · 65324144
      Jesper Dangaard Brouer authored
      
      This is to be used together with switch technologies, like RFC3069,
      that where the individual ports are not allowed to communicate with
      each other, but they are allowed to talk to the upstream router.  As
      described in RFC 3069, it is possible to allow these hosts to
      communicate through the upstream router by proxy_arp'ing.
      
      This patch basically allow proxy arp replies back to the same
      interface (from which the ARP request/solicitation was received).
      
      Tunable per device via proc "proxy_arp_pvlan":
        /proc/sys/net/ipv4/conf/*/proxy_arp_pvlan
      
      This switch technology is known by different vendor names:
       - In RFC 3069 it is called VLAN Aggregation.
       - Cisco and Allied Telesyn call it Private VLAN.
       - Hewlett-Packard call it Source-Port filtering or port-isolation.
       - Ericsson call it MAC-Forced Forwarding (RFC Draft).
      
      Signed-off-by: default avatarJesper Dangaard Brouer <hawk@comx.dk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      65324144
    • Octavian Purdila's avatar
      ip: fix mc_loop checks for tunnels with multicast outer addresses · 7ad6848c
      Octavian Purdila authored
      
      When we have L3 tunnels with different inner/outer families
      (i.e. IPV4/IPV6) which use a multicast address as the outer tunnel
      destination address, multicast packets will be loopbacked back to the
      sending socket even if IP*_MULTICAST_LOOP is set to disabled.
      
      The mc_loop flag is present in the family specific part of the socket
      (e.g. the IPv4 or IPv4 specific part).  setsockopt sets the inner
      family mc_loop flag. When the packet is pushed through the L3 tunnel
      it will eventually be processed by the outer family which if different
      will check the flag in a different part of the socket then it was set.
      
      Signed-off-by: default avatarOctavian Purdila <opurdila@ixiacom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7ad6848c
  5. Dec 26, 2009
    • Jamal Hadi Salim's avatar
      net: restore ip source validation · 28f6aeea
      Jamal Hadi Salim authored
      
      when using policy routing and the skb mark:
      there are cases where a back path validation requires us
      to use a different routing table for src ip validation than
      the one used for mapping ingress dst ip.
      One such a case is transparent proxying where we pretend to be
      the destination system and therefore the local table
      is used for incoming packets but possibly a main table would
      be used on outbound.
      Make the default behavior to allow the above and if users
      need to turn on the symmetry via sysctl src_valid_mark
      
      Signed-off-by: default avatarJamal Hadi Salim <hadi@cyberus.ca>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      28f6aeea
  6. Dec 23, 2009
  7. Dec 16, 2009
    • David S. Miller's avatar
      tcp: Revert per-route SACK/DSACK/TIMESTAMP changes. · bb5b7c11
      David S. Miller authored
      
      It creates a regression, triggering badness for SYN_RECV
      sockets, for example:
      
      [19148.022102] Badness at net/ipv4/inet_connection_sock.c:293
      [19148.022570] NIP: c02a0914 LR: c02a0904 CTR: 00000000
      [19148.023035] REGS: eeecbd30 TRAP: 0700   Not tainted  (2.6.32)
      [19148.023496] MSR: 00029032 <EE,ME,CE,IR,DR>  CR: 24002442  XER: 00000000
      [19148.024012] TASK = eee9a820[1756] 'privoxy' THREAD: eeeca000
      
      This is likely caused by the change in the 'estab' parameter
      passed to tcp_parse_options() when invoked by the functions
      in net/ipv4/tcp_minisocks.c
      
      But even if that is fixed, the ->conn_request() changes made in
      this patch series is fundamentally wrong.  They try to use the
      listening socket's 'dst' to probe the route settings.  The
      listening socket doesn't even have a route, and you can't
      get the right route (the child request one) until much later
      after we setup all of the state, and it must be done by hand.
      
      This stuff really isn't ready, so the best thing to do is a
      full revert.  This reverts the following commits:
      
      f55017a9
      022c3f7d
      1aba721e
      cda42ebd
      345cda2f
      dc343475
      05eaade2
      6a2a2d6b
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bb5b7c11
  8. Dec 15, 2009
  9. Dec 14, 2009
  10. Dec 09, 2009
  11. Dec 04, 2009
    • André Goddard Rosa's avatar
      tree-wide: fix assorted typos all over the place · af901ca1
      André Goddard Rosa authored
      
      That is "success", "unknown", "through", "performance", "[re|un]mapping"
      , "access", "default", "reasonable", "[con]currently", "temperature"
      , "channel", "[un]used", "application", "example","hierarchy", "therefore"
      , "[over|under]flow", "contiguous", "threshold", "enough" and others.
      
      Signed-off-by: default avatarAndré Goddard Rosa <andre.goddard@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      af901ca1
    • Eric Dumazet's avatar
      tcp: fix a timewait refcnt race · 47e1c323
      Eric Dumazet authored
      
      After TCP RCU conversion, tw->tw_refcnt should not be set to 1 in
      inet_twsk_alloc(). It allows a RCU reader to get this timewait socket,
      while we not yet stabilized it.
      
      Only choice we have is to set tw_refcnt to 0 in inet_twsk_alloc(),
      then atomic_add() it later, once everything is done.
      
      Location of this atomic_add() is tricky, because we dont want another
      writer to find this timewait in ehash, while tw_refcnt is still zero !
      
      Thanks to Kapil Dakhane tests and reports.
      
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      47e1c323
    • Eric Dumazet's avatar
      tcp: connect() race with timewait reuse · 13475a30
      Eric Dumazet authored
      
      Its currently possible that several threads issuing a connect() find
      the same timewait socket and try to reuse it, leading to list
      corruptions.
      
      Condition for bug is that these threads bound their socket on same
      address/port of to-be-find timewait socket, and connected to same
      target. (SO_REUSEADDR needed)
      
      To fix this problem, we could unhash timewait socket while holding
      ehash lock, to make sure lookups/changes will be serialized. Only
      first thread finds the timewait socket, other ones find the
      established socket and return an EADDRNOTAVAIL error.
      
      This second version takes into account Evgeniy's review and makes sure
      inet_twsk_put() is called outside of locked sections.
      
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      13475a30
    • Eric Dumazet's avatar
      tcp: diag: Dont report negative values for rx queue · 49d09007
      Eric Dumazet authored
      
      Both netlink and /proc/net/tcp interfaces can report transient
      negative values for rx queue.
      
      ss ->
      State   Recv-Q Send-Q  Local Address:Port  Peer Address:Port
      ESTAB   -6     6       127.0.0.1:45956     127.0.0.1:3333 
      
      netstat ->
      tcp   4294967290      6 127.0.0.1:37784  127.0.0.1:3333 ESTABLISHED
      
      This is because we dont lock socket while computing 
      tp->rcv_nxt - tp->copied_seq,
      and another CPU can update copied_seq before rcv_next in RX path.
      
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      49d09007
  12. Dec 03, 2009
  13. Dec 02, 2009
Loading