1. 14 Jan, 2015 6 commits
    • zhuyj's avatar
      ipv6:icmp:remove unnecessary brackets · 9a6b4b39
      zhuyj authored
      
      
      There are too many brackets. Maybe only one bracket is enough.
      Signed-off-by: default avatarZhu Yanjun <Yanjun.Zhu@windriver.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9a6b4b39
    • Fan Du's avatar
      openvswitch: Introduce ovs_tunnel_route_lookup · 3f4c1d87
      Fan Du authored
      
      
      Introduce ovs_tunnel_route_lookup to consolidate route lookup
      shared by vxlan, gre, and geneve ports.
      Signed-off-by: default avatarFan Du <fan.du@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3f4c1d87
    • David S. Miller's avatar
      Merge branch 'vxlan_rco' · 27331353
      David S. Miller authored
      Tom Herbert says:
      
      ====================
      net: Remote checksum offload for VXLAN
      
      This patch set adds support for remote checksum offload in VXLAN.
      
      The remote checksum offload is generalized by creating a common
      function (remcsum_adjust) that does the work of modifying the
      checksum in remote checksum offload. This function can be called
      from normal or GRO path. GUE was modified to use this function.
      
      To support RCO is VXLAN we use the 9th bit in the reserved
      flags to indicated remote checksum offload. The start and offset
      values are encoded n a compressed form in the low order (reserved)
      byte of the vni field.
      
      Remote checksum offload is described in
      https://tools.ietf.org/html/draft-herbert-remotecsumoffload-01
      
      
      
      Changes in v2:
        - Add udp_offload_callbacks which has GRO functions that take a
          udp_offload pointer argument. This argument can be used to retrieve
          a per port structure of the encapsulation for use in gro processing
          (mostly by doing container_of on the structure).
        - Use the 10th bit in VXLAN flags for RCO which does not seem to
          conflict with other proposals at this time (ie. VXLAN-GPE and
          VXLAN-GPB)
        - Require that RCO must be explicitly enabled on the receiver
          as well as the sender.
      
      Tested by running 200 TCP_STREAM connections with VXLAN (over IPv4).
      
      With UDP checksums and Remote Checksum Offload
        IPv4
            Client
              11.84% CPU utilization
            Server
              12.96% CPU utilization
            9197 Mbps
        IPv6
            Client
              12.46% CPU utilization
            Server
              14.48% CPU utilization
            8963 Mbps
      
      With UDP checksums, no remote checksum offload
        IPv4
            Client
              15.67% CPU utilization
            Server
              14.83% CPU utilization
            9094 Mbps
        IPv6
            Client
              16.21% CPU utilization
            Server
              14.32% CPU utilization
            9058 Mbps
      
      No UDP checksums
        IPv4
            Client
              15.03% CPU utilization
            Server
              23.09% CPU utilization
            9089 Mbps
        IPv6
            Client
              16.18% CPU utilization
            Server
              26.57% CPU utilization
             8954 Mbps
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      27331353
    • Tom Herbert's avatar
      vxlan: Remote checksum offload · dfd8645e
      Tom Herbert authored
      Add support for remote checksum offload in VXLAN. This uses a
      reserved bit to indicate that RCO is being done, and uses the low order
      reserved eight bits of the VNI to hold the start and offset values in a
      compressed manner.
      
      Start is encoded in the low order seven bits of VNI. This is start >> 1
      so that the checksum start offset is 0-254 using even values only.
      Checksum offset (transport checksum field) is indicated in the high
      order bit in the low order byte of the VNI. If the bit is set, the
      checksum field is for UDP (so offset = start + 6), else checksum
      field is for TCP (so offset = start + 16). Only TCP and UDP are
      supported in this implementation.
      
      Remote checksum offload for VXLAN is described in:
      
      https://tools.ietf.org/html/draft-herbert-vxlan-rco-00
      
      
      
      Tested by running 200 TCP_STREAM connections with VXLAN (over IPv4).
      
      With UDP checksums and Remote Checksum Offload
        IPv4
            Client
              11.84% CPU utilization
            Server
              12.96% CPU utilization
            9197 Mbps
        IPv6
            Client
              12.46% CPU utilization
            Server
              14.48% CPU utilization
            8963 Mbps
      
      With UDP checksums, no remote checksum offload
        IPv4
            Client
              15.67% CPU utilization
            Server
              14.83% CPU utilization
            9094 Mbps
        IPv6
            Client
              16.21% CPU utilization
            Server
              14.32% CPU utilization
            9058 Mbps
      
      No UDP checksums
        IPv4
            Client
              15.03% CPU utilization
            Server
              23.09% CPU utilization
            9089 Mbps
        IPv6
            Client
              16.18% CPU utilization
            Server
              26.57% CPU utilization
             8954 Mbps
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dfd8645e
    • Tom Herbert's avatar
      udp: pass udp_offload struct to UDP gro callbacks · a2b12f3c
      Tom Herbert authored
      
      
      This patch introduces udp_offload_callbacks which has the same
      GRO functions (but not a GSO function) as offload_callbacks,
      except there is an argument to a udp_offload struct passed to
      gro_receive and gro_complete functions. This additional argument
      can be used to retrieve the per port structure of the encapsulation
      for use in gro processing (mostly by doing container_of on the
      structure).
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a2b12f3c
    • hayeswang's avatar
      r8152: replace tasklet with NAPI · d823ab68
      hayeswang authored
      
      
      Replace tasklet with NAPI.
      
      Add rx_queue to queue the remaining rx packets if the number of the
      rx packets is more than the request from poll().
      Signed-off-by: default avatarHayes Wang <hayeswang@realtek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d823ab68
  2. 13 Jan, 2015 34 commits