1. 05 Feb, 2017 2 commits
    • David Ahern's avatar
      net: ipv6: Allow shorthand delete of all nexthops in multipath route · 0ae81335
      David Ahern authored
      IPv4 allows multipath routes to be deleted using just the prefix and
      length. For example:
          $ ip ro ls vrf red
          unreachable default metric 8192
          1.1.1.0/24
              nexthop via 10.100.1.254  dev eth1 weight 1
              nexthop via 10.11.200.2  dev eth11.200 weight 1
          10.11.200.0/24 dev eth11.200 proto kernel scope link src 10.11.200.3
          10.100.1.0/24 dev eth1 proto kernel scope link src 10.100.1.3
      
          $ ip ro del 1.1.1.0/24 vrf red
      
          $ ip ro ls vrf red
          unreachable default metric 8192
          10.11.200.0/24 dev eth11.200 proto kernel scope link src 10.11.200.3
          10.100.1.0/24 dev eth1 proto kernel scope link src 10.100.1.3
      
      The same notation does not work with IPv6 because of how multipath routes
      are implemented for IPv6. For IPv6 only the first nexthop of a multipath
      route is deleted if the request contains only a prefix and length. This
      leads to unnecessary complexity in userspace dealing with IPv6 multipath
      routes.
      
      This patch allows all nexthops to be deleted without specifying each one
      in the delete request. Internally, this is done by walking the sibling
      list of the route matching the specifications given (prefix, length,
      metric, protocol, etc).
      
          $  ip -6 ro ls vrf red
          2001:db8:1::/120 dev eth1 proto kernel metric 256  pref medium
          2001:db8:2::/120 dev eth2 proto kernel metric 256  pref medium
          2001:db8:200::/120 via 2001:db8:1::2 dev eth1 metric 1024  pref medium
          2001:db8:200::/120 via 2001:db8:2::2 dev eth2 metric 1024  pref medium
          ...
      
          $ ip -6 ro del vrf red 2001:db8:200::/120
      
          $ ip -6 ro ls vrf red
          2001:db8:1::/120 dev eth1 proto kernel metric 256  pref medium
          2001:db8:2::/120 dev eth2 proto kernel metric 256  pref medium
          ...
      
      Because IPv6 allows individual nexthops to be deleted without deleting
      the entire route, the ip6_route_multipath_del and non-multipath code
      path (ip6_route_del) have to be discriminated so that all nexthops are
      only deleted for the latter case. This is done by making the existing
      fc_type in fib6_config a u16 and then adding a new u16 field with
      fc_delete_all_nh as the first bit.
      Suggested-by: default avatarDinesh Dutt <ddutt@cumulusnetworks.com>
      Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0ae81335
    • Eric Dumazet's avatar
      virtio_net: exploit napi_complete_done() return value · 4d6308aa
      Eric Dumazet authored
      Since commit 364b6055 ("net: busy-poll: return busypolling status to
      drivers"), napi_complete_done() returns a boolean that can be used
      by drivers to conditionally rearm interrupts.
      
      This patch changes virtio_net to use this boolean to avoid a bit of
      overhead for busy-poll users.
      
      Jason reports about 1.1% improvement for 1 byte TCP_RR (burst 100).
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarJason Wang <jasowang@redhat.com>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Cc: Willem de Bruijn <willemb@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4d6308aa
  2. 04 Feb, 2017 1 commit
    • David S. Miller's avatar
      Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue · a076d1bd
      David S. Miller authored
      Jeff Kirsher says:
      
      ====================
      40GbE Intel Wired LAN Driver Updates 2017-02-03
      
      This series contains updates to i40e/i40evf only.
      
      Jake fixes up the driver to not call i40e_vsi_kill_vlan() or
      i40e_vsi_add_vlan() when the PVID is set or when the VID is less than 1.
      Cleaned up a check which really is not needed since there is no real
      reason why we cannot just call i40e_del_mac_all_vlan() directly.  Renamed
      functions to better reflect their actual purpose and how they function
      in a more clear manner.
      
      Bimmy cleans up unused/deprecated macros.
      
      Mitch cleans up unused device ids which were intended for use when
      running Linux VF drivers under Hyper-V, but found to be not needed.
      Then cleaned up a function that is no longer needed since the client
      open and close functions were refactored.  Adds a sleep without timeout
      until the reply from the PF driver has been received since the iWARP
      client cannot continue until the operation has been completed.
      
      Tushar Dave fixes an issue seen on SPARC where the use of the 'packed'
      directive was causing kernel unaligned errors.
      
      Alex does a refactor to pull some data off of the stack and store it
      in the transmit buffer info section of the transmit ring.
      
      Alan fixes a bug which was caused by passing a bad register value to the
      firmware, by refactoring the macro INTRL_USEC_TO_REG into a static
      inline function.  Also added feedback to the user as to the actual
      interrupt rate limit being used when it differs from the requested limit.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a076d1bd
  3. 03 Feb, 2017 37 commits