1. 01 7月, 2006 3 次提交
    • 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
      [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
    • H
      [IPV6]: Remove redundant length check on input · 2889139a
      Herbert Xu 提交于
      We don't need to check skb->len when we're just about to call
      pskb_may_pull since that checks it for us.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Acked-by: NYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2889139a
  2. 30 6月, 2006 3 次提交
  3. 28 6月, 2006 1 次提交
  4. 23 6月, 2006 4 次提交
    • H
      [IPSEC]: Handle GSO packets · 09b8f7a9
      Herbert Xu 提交于
      This patch segments GSO packets received by the IPsec stack.  This can
      happen when a NIC driver injects GSO packets into the stack which are
      then forwarded to another host.
      
      The primary application of this is going to be Xen where its backend
      driver may inject GSO packets into dom0.
      
      Of course this also can be used by other virtualisation schemes such as
      VMWare or UML since the tap device could be modified to inject GSO packets
      received through splice.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      09b8f7a9
    • H
      [NET]: Merge TSO/UFO fields in sk_buff · 7967168c
      Herbert Xu 提交于
      Having separate fields in sk_buff for TSO/UFO (tso_size/ufo_size) is not
      going to scale if we add any more segmentation methods (e.g., DCCP).  So
      let's merge them.
      
      They were used to tell the protocol of a packet.  This function has been
      subsumed by the new gso_type field.  This is essentially a set of netdev
      feature bits (shifted by 16 bits) that are required to process a specific
      skb.  As such it's easy to tell whether a given device can process a GSO
      skb: you just have to and the gso_type field and the netdev's features
      field.
      
      I've made gso_type a conjunction.  The idea is that you have a base type
      (e.g., SKB_GSO_TCPV4) that can be modified further to support new features.
      For example, if we add a hardware TSO type that supports ECN, they would
      declare NETIF_F_TSO | NETIF_F_TSO_ECN.  All TSO packets with CWR set would
      have a gso_type of SKB_GSO_TCPV4 | SKB_GSO_TCPV4_ECN while all other TSO
      packets would be SKB_GSO_TCPV4.  This means that only the CWR packets need
      to be emulated in software.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7967168c
    • Y
      [IPV6] ADDRCONF: Fix default source address selection without CONFIG_IPV6_PRIVACY · 5e2707fa
      YOSHIFUJI Hideaki 提交于
      We need to update hiscore.rule even if we don't enable CONFIG_IPV6_PRIVACY,
      because we have more less significant rule; longest match.
      Signed-off-by: NYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5e2707fa
    • Ł
      [IPV6]: Fix source address selection. · 102128e3
      Łukasz Stelmach 提交于
      Two additional labels (RFC 3484, sec. 10.3) for IPv6 addreses
      are defined to make a distinction between global unicast
      addresses and Unique Local Addresses (fc00::/7, RFC 4193) and
      Teredo (2001::/32, RFC 4380). It is necessary to avoid attempts
      of connection that would either fail (eg. fec0:: to 2001:feed::)
      or be sub-optimal (2001:0:: to 2001:feed::).
      Signed-off-by: NŁukasz Stelmach <stlman@poczta.fm>
      Signed-off-by: NYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      102128e3
  5. 18 6月, 2006 10 次提交
  6. 27 5月, 2006 1 次提交
  7. 23 5月, 2006 1 次提交
  8. 19 5月, 2006 2 次提交
  9. 17 5月, 2006 1 次提交
  10. 11 5月, 2006 1 次提交
  11. 30 4月, 2006 1 次提交
    • Y
      [IPV6]: Fix race in route selection. · c302e6d5
      YOSHIFUJI Hideaki 提交于
      We eliminated rt6_dflt_lock (to protect default router pointer)
      at 2.6.17-rc1, and introduced rt6_select() for general router selection.
      The function is called in the context of rt6_lock read-lock held,
      but this means, we have some race conditions when we do round-robin.
      
      Signed-off-by; YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c302e6d5
  12. 25 4月, 2006 1 次提交
  13. 19 4月, 2006 4 次提交
  14. 12 4月, 2006 1 次提交
  15. 11 4月, 2006 1 次提交
  16. 10 4月, 2006 5 次提交