OpenCloudOS-Kernel/drivers/net/ethernet/mellanox/mlx5/core
David S. Miller 488e5b30d3 Merge tag 'mlx5-updates-2017-11-04' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
Saeed Mahameed says:

====================
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
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
2017-11-05 23:25:02 +09:00
..
accel net/mlx5: Add Makefiles for subdirectories 2017-07-06 15:13:20 +03:00
diag net/mlx5: Fix static checker warning on steering tracepoints code 2017-09-28 07:23:10 +03:00
en_accel net/mlx5: Remove redundant unlikely() 2017-09-26 10:15:44 -07:00
fpga net/mlx5: Fix FPGA capability location 2017-09-28 07:23:09 +03:00
ipoib net/mlx5e: IPoIB, Add inner TTC table to IPoIB flow steering 2017-11-04 21:27:11 -07:00
lib net/mlx5: PTP code migration to driver core section 2017-10-14 11:22:06 -07:00
Kconfig net/mlx5: File renaming towards ptp core implementation 2017-10-14 11:22:05 -07:00
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
alloc.c net/mlx5: Add a blank line after declarations 2017-08-20 12:57:19 +03:00
cmd.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-09-06 14:45:08 -07:00
cq.c drivers, net, mlx5: convert mlx5_cq.refcount from atomic_t to refcount_t 2017-10-22 02:22:38 +01:00
debugfs.c net/mlx5: Avoid using multiple blank lines 2017-06-16 00:12:40 +03:00
dev.c net/mlx5: Delay events till mlx5 interface's add complete for pci resume 2017-10-26 00:47:27 -07:00
en.h net/mlx5e: Enable CQE based moderation on TX CQ 2017-11-04 21:27:15 -07:00
en_arfs.c net/mlx5: Initialize destination_flow struct to 0 2017-11-04 21:27:06 -07:00
en_common.c net/mlx5e: Support DSCP trust state to Ethernet's IP packet on SQ 2017-11-04 21:26:42 -07:00
en_dcbnl.c net/mlx5e: DCBNL, Add debug messages log 2017-11-04 21:26:56 -07:00
en_ethtool.c net/mlx5e: Enable CQE based moderation on TX CQ 2017-11-04 21:27:15 -07:00
en_fs.c net/mlx5e: IPoIB, Add inner TTC table to IPoIB flow steering 2017-11-04 21:27:11 -07:00
en_fs_ethtool.c net/mlx5: Fix mlx5_add_flow_rules call with correct num of dests 2017-07-27 16:40:17 +03:00
en_main.c Merge tag 'mlx5-updates-2017-11-04' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux 2017-11-05 23:25:02 +09:00
en_rep.c net: sched: move the can_offload check from binding phase to rule insertion phase 2017-11-02 16:10:39 +09:00
en_rep.h net/mlx5: Add CONFIG_MLX5_ESWITCH Kconfig 2017-08-07 10:47:06 +03:00
en_rx.c Merge tag 'mlx5-updates-2017-10-11' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux 2017-10-16 05:42:41 +01:00
en_rx_am.c net/mlx5e: Enable CQE based moderation on TX CQ 2017-11-04 21:27:15 -07:00
en_selftest.c net/mlx5e: Enable local loopback in loopback selftest 2017-07-24 10:29:18 -04:00
en_stats.c net/mlx5e: Switch channels counters to use stats group API 2017-10-31 14:20:48 -07:00
en_stats.h net/mlx5e: Switch channels counters to use stats group API 2017-10-31 14:20:48 -07:00
en_tc.c net/mlx5: Enlarge the NIC TC offload table size 2017-11-04 21:27:01 -07:00
en_tc.h mlx5-shared-2017-08-07 2017-08-07 10:42:09 -07:00
en_tx.c net/mlx5e: Support DSCP trust state to Ethernet's IP packet on SQ 2017-11-04 21:26:42 -07:00
en_txrx.c net/mlx5e: Stop NAPI when irq balancer changes affinity 2017-09-03 06:34:09 +03:00
eq.c net/mlx5: PTP code migration to driver core section 2017-10-14 11:22:06 -07:00
eswitch.c net/mlx5: Initialize destination_flow struct to 0 2017-11-04 21:27:06 -07:00
eswitch.h net/mlx5: Add CONFIG_MLX5_ESWITCH Kconfig 2017-08-07 10:47:06 +03:00
eswitch_offloads.c net/mlx5: Initialize destination_flow struct to 0 2017-11-04 21:27:06 -07:00
fs_cmd.c net/mlx5: Support for attaching multiple underlay QPs to root flow table 2017-10-14 11:22:07 -07:00
fs_cmd.h net/mlx5: Support for attaching multiple underlay QPs to root flow table 2017-10-14 11:22:07 -07:00
fs_core.c net/mlx5: Initialize destination_flow struct to 0 2017-11-04 21:27:06 -07:00
fs_core.h drivers, net, mlx5: convert fs_node.refcount from atomic_t to refcount_t 2017-10-22 02:22:39 +01:00
fs_counters.c net/mlx5: Increase the maximum flow counters supported 2017-08-07 10:47:07 +03:00
fw.c net/mlx5: QCAM register firmware command support 2017-11-04 21:24:14 -07:00
health.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-10-30 21:09:24 +09:00
lag.c net/mlx5: Consider tx_enabled in all modes on remap 2017-07-27 16:40:16 +03:00
mad.c net/mlx5: Unify and improve command interface 2016-08-17 17:45:58 +03:00
main.c net/mlx5: PTP code migration to driver core section 2017-10-14 11:22:06 -07:00
mcg.c net/mlx5: Unify and improve command interface 2016-08-17 17:45:58 +03:00
mlx5_core.h net/mlx5: QCAM register firmware command support 2017-11-04 21:24:14 -07:00
mr.c net/mlx5: Unify and improve command interface 2016-08-17 17:45:58 +03:00
pagealloc.c net/mlx5: Avoid using multiple blank lines 2017-06-16 00:12:40 +03:00
pd.c net/mlx5: Unify and improve command interface 2016-08-17 17:45:58 +03:00
port.c net/mlx5: QPTS and QPDPM register firmware command support 2017-11-04 21:26:21 -07:00
qp.c net/mlx5: Introduce set delay drop command 2017-07-24 10:34:28 -04:00
rl.c net/mlx5: Introduce TSAR manipulation firmware commands 2016-10-30 15:43:12 +02:00
sriov.c net/mlx5: Fix wrong indentation in enable SRIOV code 2017-09-28 07:23:10 +03:00
srq.c Updates for 4.14 kernel merge window 2017-09-03 17:49:17 -07:00
transobj.c {net, IB}/mlx5: Replace mlx5_vzalloc with kvzalloc 2017-05-14 13:53:18 +03:00
uar.c net/mlx5: Fix UAR memory leak 2017-04-22 21:52:37 +03:00
vport.c net/mlx5: Add raw ethernet local loopback firmware command 2017-07-24 10:26:16 -04:00
vxlan.c net/mlx5: Unify and improve command interface 2016-08-17 17:45:58 +03:00
vxlan.h mlx5: Fix merge errors. 2016-05-09 22:05:13 -04:00
wq.c net/mlx5: Add QP WQ support 2017-06-27 16:36:47 +03:00
wq.h net/mlx5: Add QP WQ support 2017-06-27 16:36:47 +03:00