1. 03 8月, 2006 9 次提交
  2. 26 7月, 2006 2 次提交
  3. 25 7月, 2006 4 次提交
  4. 22 7月, 2006 3 次提交
  5. 15 7月, 2006 1 次提交
  6. 13 7月, 2006 3 次提交
    • H
      [IPV4]: Fix error handling for fib_insert_node call · b47b2ec1
      Herbert Xu 提交于
      The error handling around fib_insert_node was broken because we always
      zeroed the error before checking it.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b47b2ec1
    • H
      [IPCOMP]: Fix truesize after decompression · da952315
      Herbert Xu 提交于
      The truesize check has uncovered the fact that we forgot to update truesize
      after pskb_expand_head.  Unfortunately pskb_expand_head can't update it for
      us because it's used in all sorts of different contexts, some of which would
      not allow truesize to be updated by itself.
      
      So the solution for now is to simply update it in IPComp.
      
      This patch also changes skb_put to __skb_put since we've just expanded
      tailroom by exactly that amount so we know it's there (but gcc does not).
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      da952315
    • X
      [TCP] tcp_highspeed: Fix AI updates. · 6150c22e
      Xiaoliang (David) Wei 提交于
      I think there is still a problem with the AIMD parameter update in
      HighSpeed TCP code.
      
      Line 125~138 of the code (net/ipv4/tcp_highspeed.c):
      
      	/* Update AIMD parameters */
      	if (tp->snd_cwnd > hstcp_aimd_vals[ca->ai].cwnd) {
      		while (tp->snd_cwnd > hstcp_aimd_vals[ca->ai].cwnd &&
      		       ca->ai < HSTCP_AIMD_MAX - 1)
      			ca->ai++;
      	} else if (tp->snd_cwnd < hstcp_aimd_vals[ca->ai].cwnd) {
      		while (tp->snd_cwnd > hstcp_aimd_vals[ca->ai].cwnd &&
      		       ca->ai > 0)
      			ca->ai--;
      
      In fact, the second part (decreasing ca->ai) never decreases since the
      while loop's inequality is in the reverse direction. This leads to
      unfairness with multiple flows (once a flow happens to enjoy a higher
      ca->ai, it keeps enjoying that even its cwnd decreases)
      
      Here is a tentative fix (I also added a comment, trying to keep the
      change clear):
      Acked-by: NStephen Hemminger <shemminger@osdl.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6150c22e
  7. 11 7月, 2006 2 次提交
  8. 09 7月, 2006 3 次提交
  9. 04 7月, 2006 5 次提交
  10. 01 7月, 2006 6 次提交
    • H
      [IPV6]: Added GSO support for TCPv6 · f83ef8c0
      Herbert Xu 提交于
      This patch adds GSO support for IPv6 and TCPv6.  This is based on a patch
      by Ananda Raju <Ananda.Raju@neterion.com>.  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: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f83ef8c0
    • H
      [NET]: Generalise TSO-specific bits from skb_setup_caps · bcd76111
      Herbert Xu 提交于
      This patch generalises the TSO-specific bits from sk_setup_caps by adding
      the sk_gso_type member to struct sock.  This makes sk_setup_caps generic
      so that it can be used by TCPv6 or UFO.
      
      The only catch is that whoever uses this must provide a GSO implementation
      for their protocol which I think is a fair deal :) For now UFO continues to
      live without a GSO implementation which is OK since it doesn't use the sock
      caps field at the moment.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bcd76111
    • H
      [IPV6]: Added GSO support for TCPv6 · adcfc7d0
      Herbert Xu 提交于
      This patch adds GSO support for IPv6 and TCPv6.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      adcfc7d0
    • P
      [NETFILTER]: SCTP conntrack: fix crash triggered by packet without chunks · dd7271fe
      Patrick McHardy 提交于
      When a packet without any chunks is received, the newconntrack variable
      in sctp_packet contains an out of bounds value that is used to look up an
      pointer from the array of timeouts, which is then dereferenced, resulting
      in a crash. Make sure at least a single chunk is present.
      
      Problem noticed by George A. Theall <theall@tenablesecurity.com>
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dd7271fe
    • H
      [TCP]: Reset gso_segs if packet is dodgy · 3820c3f3
      Herbert Xu 提交于
      I wasn't paranoid enough in verifying GSO information.  A bogus gso_segs
      could upset drivers as much as a bogus header would.  Let's reset it in
      the per-protocol gso_segment functions.
      
      I didn't verify gso_size because that can be verified by the source of
      the dodgy packets.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3820c3f3
    • J
      Remove obsolete #include <linux/config.h> · 6ab3d562
      Jörn Engel 提交于
      Signed-off-by: NJörn Engel <joern@wohnheim.fh-wedel.de>
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      6ab3d562
  11. 30 6月, 2006 2 次提交
    • M
      [NETFILTE] ipv4: Fix typo (Bugzilla #6753) · c22751b7
      Matt LaPlante 提交于
      This patch fixes bugzilla #6753, a typo in the netfilter Kconfig
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c22751b7
    • M
      [NET]: Add ECN support for TSO · b0da8537
      Michael Chan 提交于
      In the current TSO implementation, NETIF_F_TSO and ECN cannot be
      turned on together in a TCP connection.  The problem is that most
      hardware that supports TSO does not handle CWR correctly if it is set
      in the TSO packet.  Correct handling requires CWR to be set in the
      first packet only if it is set in the TSO header.
      
      This patch adds the ability to turn on NETIF_F_TSO and ECN using
      GSO if necessary to handle TSO packets with CWR set.  Hardware
      that handles CWR correctly can turn on NETIF_F_TSO_ECN in the dev->
      features flag.
      
      All TSO packets with CWR set will have the SKB_GSO_TCPV4_ECN set.  If
      the output device does not have the NETIF_F_TSO_ECN feature set, GSO
      will split the packet up correctly with CWR only set in the first
      segment.
      
      With help from Herbert Xu <herbert@gondor.apana.org.au>.
      
      Since ECN can always be enabled with TSO, the SOCK_NO_LARGESEND sock
      flag is completely removed.
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b0da8537