Hi Dave, The following series provides updates for mlx5 driver which includes dscp to priority mapping support and some other misc small changes.
For extra information please see tag log below. Please Pull and let me know if ther's any problem. V1->V2: - Add missing Reviewed-by tags. Thanks, Saeed. --- The following changes since commit 27c565ae9d554fa1c00c799754cff43476c8d3b5: ipv6: remove IN6_ADDR_HSIZE from addrconf.h (2017-11-05 09:17:27 +0900) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5-updates-2017-11-04 for you to fetch changes up to 0088cbbc4b66b287132a8a04b3e2509d44a6387c: net/mlx5e: Enable CQE based moderation on TX CQ (2017-11-04 21:27:15 -0700) ---------------------------------------------------------------- mlx5-updates-2017-11-04 This series includes: >From Huy: dscp to priority mapping for Ethernet packet. =================================================== First six patches enable differentiated services code point (dscp) to priority mapping for Ethernet packet. Once this feature is enabled, the packet is routed to the corresponding priority based on its dscp. User can combine this feature with priority flow control (pfc) feature to have priority flow control based on the dscp. Firmware interface: Mellanox firmware provides two control knobs for this feature: QPTS register allow changing the trust state between dscp and pcp mode. The default is pcp mode. Once in dscp mode, firmware will route the packet based on its dscp value if the dscp field exists. QPDPM register allow mapping a specific dscp (0 to 63) to a specific priority (0 to 7). By default, all the dscps are mapped to priority zero. Software interface: This feature is controlled via application priority TLV. IEEE specification P802.1Qcd/D2.1 defines priority selector id 5 for application priority TLV. This APP TLV selector defines DSCP to priority map. This APP TLV can be sent by the switch or can be set locally using software such as lldptool. In mlx5 drivers, we add the support for net dcb's getapp and setapp call back. Mlx5 driver only handles the selector id 5 application entry (dscp application priority application entry). If user sends multiple dscp to priority APP TLV entries on the same dscp, the last sent one will take effect. All the previous sent will be deleted. The firmware trust state (in QPTS register) is changed based on the number of dscp to priority application entries. When the first dscp to priority application entry is added by the user, the trust state is changed to dscp. When the last dscp to priority application entry is deleted by the user, the trust state is changed to pcp. When the port is in DSCP trust state, the transmit queue is selected based on the dscp of the skb. When the port is in DSCP trust state and vport inline mode is not NONE, firmware requires mlx5 driver to copy the IP header to the wqe ethernet segment inline header if the skb has it. This is done by changing the transmit queue sq's min inline mode to L3. Note that the min inline mode of sqs that belong to other features such as xdpsq, icosq are not modified. =================================================== Plus to the dscp series, some small misc changes are include as well: >From Inbar, Ethtool msglvl support and some debug prints in DCBNL logic >From Or Gerlitz, Enlarge the NIC TC offload table size >From Rabie, Initialize destination_flow struct to 0 >From Feras, Add inner TTC table to IPoIB flow steering >From Tal, Enable CQE based moderation on TX CQ Thanks, Saeed. ---------------------------------------------------------------- Feras Daoud (1): net/mlx5e: IPoIB, Add inner TTC table to IPoIB flow steering Gal Pressman (1): net/mlx5e: Add support for ethtool msglvl support Huy Nguyen (6): net/dcb: Add dscp to priority selector type net/mlx5: QCAM register firmware command support net/mlx5: Add MLX5_SET16 and MLX5_GET16 net/mlx5: QPTS and QPDPM register firmware command support net/mlx5e: Add dcbnl dscp to priority support net/mlx5e: Support DSCP trust state to Ethernet's IP packet on SQ Inbar Karmy (1): net/mlx5e: DCBNL, Add debug messages log Or Gerlitz (1): net/mlx5: Enlarge the NIC TC offload table size Rabie Loulou (1): net/mlx5: Initialize destination_flow struct to 0 Tal Gilboa (1): net/mlx5e: Enable CQE based moderation on TX CQ drivers/net/ethernet/mellanox/mlx5/core/en.h | 39 ++- drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 10 +- .../net/ethernet/mellanox/mlx5/core/en_common.c | 12 + drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c | 265 ++++++++++++++++++++- .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 52 +++- drivers/net/ethernet/mellanox/mlx5/core/en_fs.c | 12 +- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 59 +++-- drivers/net/ethernet/mellanox/mlx5/core/en_rx_am.c | 8 +- drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 15 +- drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 24 +- drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 2 +- .../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 6 +- drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 4 +- drivers/net/ethernet/mellanox/mlx5/core/fw.c | 10 + .../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c | 12 +- .../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 2 + drivers/net/ethernet/mellanox/mlx5/core/port.c | 111 +++++++++ include/linux/mlx5/device.h | 31 +++ include/linux/mlx5/driver.h | 9 + include/linux/mlx5/mlx5_ifc.h | 60 ++++- include/linux/mlx5/port.h | 5 + include/uapi/linux/dcbnl.h | 1 + 22 files changed, 696 insertions(+), 53 deletions(-)