Skip to content
Snippets Groups Projects
  1. Oct 05, 2009
    • Johannes Berg's avatar
      net: introduce NETDEV_POST_INIT notifier · 7ffbe3fd
      Johannes Berg authored
      
      For various purposes including a wireless extensions
      bugfix, we need to hook into the netdev creation before
      before netdev_register_kobject(). This will also ease
      doing the dev type assignment that Marcel was working
      on for cfg80211 drivers w/o touching them all.
      
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7ffbe3fd
    • Eric Dumazet's avatar
      tunnels: Optimize tx path · 0bfbedb1
      Eric Dumazet authored
      
      We currently dirty a cache line to update tunnel device stats
      (tx_packets/tx_bytes). We better use the txq->tx_bytes/tx_packets
      counters that already are present in cpu cache, in the cache
      line shared with txq->_xmit_lock
      
      This patch extends IPTUNNEL_XMIT() macro to use txq pointer
      provided by the caller.
      
      Also &tunnel->dev->stats can be replaced by &dev->stats
      
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0bfbedb1
    • Stephen Hemminger's avatar
      ipv4: fib table algorithm performance improvement · 16c6cf8b
      Stephen Hemminger authored
      
      The FIB algorithim for IPV4 is set at compile time, but kernel goes through
      the overhead of function call indirection at runtime. Save some
      cycles by turning the indirect calls to direct calls to either
      hash or trie code.
      
      Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      16c6cf8b
    • Neil Horman's avatar
      af_packet: add interframe drop cmsg (v6) · 97775007
      Neil Horman authored
      
      Add Ancilliary data to better represent loss information
      
      I've had a few requests recently to provide more detail regarding frame loss
      during an AF_PACKET packet capture session.  Specifically the requestors want to
      see where in a packet sequence frames were lost, i.e. they want to see that 40
      frames were lost between frames 302 and 303 in a packet capture file.  In order
      to do this we need:
      
      1) The kernel to export this data to user space
      2) The applications to make use of it
      
      This patch addresses item (1).  It does this by doing the following:
      
      A) Anytime we drop a frame for which we would increment po->stats.tp_drops, we
      also no increment a stats called po->stats.tp_gap.
      
      B) Every time we successfully enqueue a frame to sk_receive_queue, we record the
      value of po->stats.tp_gap in skb->mark.  skb->cb would nominally be the place to
      record this, but since all the space there is used up, we're overloading
      skb->mark.  Its safe to do since any enqueued packet is guaranteed to be
      unshared at this point, and skb->mark isn't used for anything else in the rx
      path to the application.  After we record tp_gap in the skb, we zero
      po->stats.tp_gap.  This allows us to keep a counter of the number of frames lost
      between any two enqueued packets
      
      C) When the application goes to dequeue a frame from the packet socket, we look
      at skb->mark for that frame.  If it is non-zero, we add a cmsg chunk to the
      msghdr of level SOL_PACKET and type PACKET_GAPDATA.  Its a 32 bit integer that
      represents the number of frames lost between this packet and the last previous
      frame received.
      
      Note there is a chance that if there is frame loss after a receive, and then the
      socket is closed, some gap data might be lost.  This is covered by the use of
      the PACKET_AUXDATA socket option, which gives total loss data.  With a bit of
      math, the final gap can be determined that way.
      
      I've tested this patch myself, and it works well.
      
      Signed-off-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      
       include/linux/if_packet.h |    2 ++
       net/packet/af_packet.c    |   33 +++++++++++++++++++++++++++++++++
       2 files changed, 35 insertions(+)
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      97775007
    • Eric Dumazet's avatar
      pktgen: Avoid dirtying skb->users when txq is full · 0835acfe
      Eric Dumazet authored
      
      We can avoid two atomic ops on skb->users if packet is not going to be
      sent to the device (because hardware txqueue is full)
      
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Acked-by: default avatarStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0835acfe
    • Eric Dumazet's avatar
      icmp: No need to call sk_write_space() · b3a5b6cc
      Eric Dumazet authored
      
      We can make icmp messages tx completion callback a litle bit faster.
      
      Setting SOCK_USE_WRITE_QUEUE sk flag tells sock_wfree() to
      not call sk_write_space() on a socket we know no thread is posssibly
      waiting for write space. (on per cpu kernel internal icmp sockets only)
      
      This avoids the sock_def_write_space() call and
      read_lock(&sk->sk_callback_lock)/read_unlock(&sk->sk_callback_lock) calls
      as well.
      
      We avoid three atomic ops.
      
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b3a5b6cc
    • Ben Hutchings's avatar
      ethtool: Remove support for obsolete string query operations · a9828ec6
      Ben Hutchings authored
      
      The in-tree implementations have all been converted to
      get_sset_count().
      
      Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a9828ec6
  2. Oct 04, 2009
  3. Oct 02, 2009
  4. Oct 01, 2009
    • Atis Elsts's avatar
      net: Use sk_mark for routing lookup in more places · 914a9ab3
      Atis Elsts authored
      
      This patch against v2.6.31 adds support for route lookup using sk_mark in some 
      more places. The benefits from this patch are the following.
      First, SO_MARK option now has effect on UDP sockets too.
      Second, ip_queue_xmit() and inet_sk_rebuild_header() could fail to do routing 
      lookup correctly if TCP sockets with SO_MARK were used.
      
      Signed-off-by: default avatarAtis Elsts <atis@mikrotik.com>
      Acked-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      914a9ab3
    • Ori Finkelman's avatar
      IPv4 TCP fails to send window scale option when window scale is zero · 89e95a61
      Ori Finkelman authored
      
      Acknowledge TCP window scale support by inserting the proper option in SYN/ACK
      and SYN headers even if our window scale is zero.
      
      This fixes the following observed behavior:
      
      1. Client sends a SYN with TCP window scaling option and non zero window scale
      value to a Linux box.
      2. Linux box notes large receive window from client.
      3. Linux decides on a zero value of window scale for its part.
      4. Due to compare against requested window scale size option, Linux does not to
       send windows scale TCP option header on SYN/ACK at all.
      
      With the following result:
      
      Client box thinks TCP window scaling is not supported, since SYN/ACK had no
      TCP window scale option, while Linux thinks that TCP window scaling is
      supported (and scale might be non zero), since SYN had  TCP window scale
      option and we have a mismatched idea between the client and server
      regarding window sizes.
      
      Probably it also fixes up the following bug (not observed in practice):
      
      1. Linux box opens TCP connection to some server.
      2. Linux decides on zero value of window scale.
      3. Due to compare against computed window scale size option, Linux does
      not to set windows scale TCP  option header on SYN.
      
      With the expected result that the server OS does not use window scale option
      due to not receiving such an option in the SYN headers, leading to suboptimal
      performance.
      
      Signed-off-by: default avatarGilad Ben-Yossef <gilad@codefidence.com>
      Signed-off-by: default avatarOri Finkelman <ori@comsleep.com>
      Acked-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      89e95a61
    • Andrew Morton's avatar
      net/ipv4/tcp.c: fix min() type mismatch warning · 4fdb78d3
      Andrew Morton authored
      
      net/ipv4/tcp.c: In function 'do_tcp_setsockopt':
      net/ipv4/tcp.c:2050: warning: comparison of distinct pointer types lacks a cast
      
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4fdb78d3
    • Eric Dumazet's avatar
      pktgen: Fix delay handling · 417bc4b8
      Eric Dumazet authored
      
      After last pktgen changes, delay handling is wrong.
      
      pktgen actually sends packets at full line speed.
      
      Fix is to update pkt_dev->next_tx even if spin() returns early,
      so that next spin() calls have a chance to see a positive delay.
      
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      417bc4b8
  5. Sep 30, 2009
  6. Sep 29, 2009
    • Igor Perminov's avatar
      mac80211: Fix [re]association power saving issue on AP side · 1f08e84f
      Igor Perminov authored
      
      Consider the following step-by step:
      1. A STA authenticates and associates with the AP and exchanges
      traffic.
      2. The STA reports to the AP that it is going to PS state.
      3. Some time later the STA device goes to the stand-by mode (not only
      its wi-fi card, but the device itself) and drops the association state
      without sending a disassociation frame.
      4. The STA device wakes up and begins authentication with an
      Auth frame as it hasn't been authenticated/associated previously.
      
      At the step 4 the AP "remembers" the STA and considers it is still in
      the PS state, so the AP buffers frames, which it has to send to the STA.
      But the STA isn't actually in the PS state and so it neither checks
      TIM bits nor reports to the AP that it isn't power saving.
      Because of that authentication/[re]association fails.
      
      To fix authentication/[re]association stage of this issue, Auth, Assoc
      Resp and Reassoc Resp frames are transmitted disregarding of STA's power
      saving state.
      
      N.B. This patch doesn't fix further data frame exchange after
      authentication/[re]association. A patch in hostapd is required to fix
      that.
      
      Signed-off-by: default avatarIgor Perminov <igor.perminov@inbox.ru>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      1f08e84f
  7. Sep 28, 2009
  8. Sep 27, 2009
  9. Sep 25, 2009
  10. Sep 24, 2009
Loading