1. 08 8月, 2017 14 次提交
  2. 07 8月, 2017 18 次提交
  3. 05 8月, 2017 4 次提交
  4. 04 8月, 2017 4 次提交
    • W
      sock: enable MSG_ZEROCOPY · 1f8b977a
      Willem de Bruijn 提交于
      Prepare the datapath for refcounted ubuf_info. Clone ubuf_info with
      skb_zerocopy_clone() wherever needed due to skb split, merge, resize
      or clone.
      
      Split skb_orphan_frags into two variants. The split, merge, .. paths
      support reference counted zerocopy buffers, so do not do a deep copy.
      Add skb_orphan_frags_rx for paths that may loop packets to receive
      sockets. That is not allowed, as it may cause unbounded latency.
      Deep copy all zerocopy copy buffers, ref-counted or not, in this path.
      
      The exact locations to modify were chosen by exhaustively searching
      through all code that might modify skb_frag references and/or the
      the SKBTX_DEV_ZEROCOPY tx_flags bit.
      
      The changes err on the safe side, in two ways.
      
      (1) legacy ubuf_info paths virtio and tap are not modified. They keep
          a 1:1 ubuf_info to sk_buff relationship. Calls to skb_orphan_frags
          still call skb_copy_ubufs and thus copy frags in this case.
      
      (2) not all copies deep in the stack are addressed yet. skb_shift,
          skb_split and skb_try_coalesce can be refined to avoid copying.
          These are not in the hot path and this patch is hairy enough as
          is, so that is left for future refinement.
      Signed-off-by: NWillem de Bruijn <willemb@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1f8b977a
    • I
      mlxsw: spectrum_router: Don't ignore IPv6 notifications · 65e65ec1
      Ido Schimmel 提交于
      We now have all the necessary IPv6 infrastructure in place, so stop
      ignoring these notifications.
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      65e65ec1
    • I
      mlxsw: spectrum_router: Abort on source-specific routes · f36f5ac6
      Ido Schimmel 提交于
      Without resorting to ACLs, the device performs route lookup solely based
      on the destination IP address.
      
      In case source-specific routing is needed, an error is returned and the
      abort mechanism is activated, thus allowing the kernel to take over
      forwarding decisions.
      
      Instead of aborting, we can trap specific destination prefixes where
      source-specific routes are present, but this will result in a lot more
      code that is unlikely to ever be used.
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f36f5ac6
    • I
      mlxsw: spectrum_router: Add support for route replace · 0a7fd1ac
      Ido Schimmel 提交于
      In case we got a replace event, then the replaced route must exist. If
      the route isn't capable of multipath, then replace first matching
      non-multipath capable route.
      
      If the route is capable of multipath and matching multipath capable
      route is found, then replace it. Otherwise, replace first matching
      non-multipath capable route.
      
      The new route is inserted before the replaced one. In case the replaced
      route is currently offloaded, then it's overwritten in the device's table
      by the new route and later deleted, thus not impacting routed traffic.
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0a7fd1ac