Merge tag 'mlx5-updates-2017-10-11' of git://git./linux/kernel/git/mellanox/linux into mlnx-shared
mlx5-updates-2017-10-11: IPoIB Muli 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.
Thanks,
Saeed.
Signed-off-by: Doug Ledford <dledford@redhat.com>