1. 16 Oct, 2017 6 commits
    • Jiri Pirko's avatar
      net: sched: teach tcf_bind/unbind_filter to use block->q · 34e3759c
      Jiri Pirko authored
      Whenever the block->q is set, it can be used instead of tp->q as it
      contains the same value. When it is not set, which can't happen now but
      it might happen with the follow-up shared blocks introduction, the class
      is not set in the result. That would lead to a class lookup instead
      of direct class pointer use for classful qdiscs. However, it is not
      planned to support classful qdisqs sharing filter blocks, so that may
      never happen.
      Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      34e3759c
    • Jiri Pirko's avatar
      net: sched: introduce tcf_block_q and tcf_block_dev helpers · 44186460
      Jiri Pirko authored
      These helpers allows to get a q and netdev pointers
      for given block easily.
      Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      44186460
    • Jiri Pirko's avatar
      net: sched: store net pointer in block and introduce qdisc_net helper · 855319be
      Jiri Pirko authored
      Store net pointer in the block structure. Along the way, introduce
      qdisc_net helper which allows to easily obtain net pointer for
      qdisc instance.
      Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      855319be
    • Jiri Pirko's avatar
      net: sched: store Qdisc pointer in struct block · 69d78ef2
      Jiri Pirko authored
      Prepare for removal of tp->q and store Qdisc pointer in the block
      structure.
      Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      69d78ef2
    • Alexander Duyck's avatar
      mqprio: Reserve last 32 classid values for HW traffic classes and misc IDs · 32302902
      Alexander Duyck authored
      This patch makes a slight tweak to mqprio in order to bring the
      classid values used back in line with what is used for mq. The general idea
      is to reserve values :ffe0 - :ffef to identify hardware traffic classes
      normally reported via dev->num_tc. By doing this we can maintain a
      consistent behavior with mq for classid where :1 - :ffdf will represent a
      physical qdisc mapped onto a Tx queue represented by classid - 1, and the
      traffic classes will be mapped onto a known subset of classid values
      reserved for our virtual qdiscs.
      
      Note I reserved the range from :fff0 - :ffff since this way we might be
      able to reuse these classid values with clsact and ingress which would mean
      that for mq, mqprio, ingress, and clsact we should be able to maintain a
      similar classid layout.
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Tested-by: default avatarJesus Sanchez-Palencia <jesus.sanchez-palencia@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      32302902
    • David S. Miller's avatar
      Merge tag 'mlx5-updates-2017-10-11' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux · af28f6f2
      David S. Miller authored
      Saeed Mahameed says:
      
      ====================
      mlx5-updates-2017-10-11: IPoIB Multi Pkey support
      
      This series provides the support for IPoIB Multi Pkey.
      InfiniBand Pkeys are the equivalent of Ethernet vlans.
      Currently IPoIB device driver supports only default Pkey and IPoIB Pkey child
      interfaces are not supported with IPoIB offloads mode, this series will add
      the support for that by allowing creating mlx5 multiple IPoIB netdevices with
      a non-default Pkey.
      
      mlx5 IPoIB Pkey child interface is smaller version of mlx5i IPoIB interfaces and shares
      most of its resources with the parent IPoIB interface, namely RX steering and ring
      queue resources.
      
      The only mlx5 resources a child Pkey interface will be creating are the TX rings,
      since they should be assigned to a specific Pkey.
      
      mlx5i Pkey netdev is implemented via new mlx5e netdev profile implemented in
      mlx5/core/ipoib/ipoib_vlan.c.
      
      The series starts with a refactoring of mlx5e PTP and mlx5 clock implementation
      to move the code to be part of mlx5 core rather than mlx5e netdevice, in order to
      make mlx5 clock and PTP registration part of the core to be shared with mlx5e
      master Ethernet netdev/IPoIB parent netdev and mlx5_ib in the near future.
      
      Add the support for attaching multiple underlay QPs for the different Pkeys
      in mlx5 core RX steering.
      
      Add Pkey index to rdma_netdev to add the ability to set PKEY index to lower
      IPoIB offload netdev.
      
      Use hash-table to map between DQPN (Destination QP number) to child netdev
      for the IPoIB parent netdev to forward RX packets to the corresponding
      child Pkey netdev, since the RX rings are shared.
      
      The reset of the series adds the ipoib child Pkey: mlx5e netdev profile,
      netdev nods implementation and minimal set of ethtool callbacks.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      af28f6f2
  2. 15 Oct, 2017 34 commits