sysfs interface common for all infiniband devices
-------------------------------------------------

What:		/sys/class/infiniband/<device>/node_type
What:		/sys/class/infiniband/<device>/node_guid
What:		/sys/class/infiniband/<device>/sys_image_guid
Date:		Apr, 2005
KernelVersion:	v2.6.12
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== ===========================================
		node_type:	(RO) Node type (CA, RNIC, usNIC, usNIC UDP,
				switch or router)

		node_guid:	(RO) Node GUID

		sys_image_guid:	(RO) System image GUID
		=============== ===========================================


What:		/sys/class/infiniband/<device>/node_desc
Date:		Feb, 2006
KernelVersion:	v2.6.17
Contact:	linux-rdma@vger.kernel.org
Description:
		(RW) Update the node description with information such as the
		node's hostname, so that IB network management software can tie
		its view to the real world.


What:		/sys/class/infiniband/<device>/fw_ver
Date:		Jun, 2016
KernelVersion:	v4.10
Contact:	linux-rdma@vger.kernel.org
Description:
		(RO) Display firmware version


What:		/sys/class/infiniband/<device>/ports/<port-num>/lid
What:		/sys/class/infiniband/<device>/ports/<port-num>/rate
What:		/sys/class/infiniband/<device>/ports/<port-num>/lid_mask_count
What:		/sys/class/infiniband/<device>/ports/<port-num>/sm_sl
What:		/sys/class/infiniband/<device>/ports/<port-num>/sm_lid
What:		/sys/class/infiniband/<device>/ports/<port-num>/state
What:		/sys/class/infiniband/<device>/ports/<port-num>/phys_state
What:		/sys/class/infiniband/<device>/ports/<port-num>/cap_mask
Date:		Apr, 2005
KernelVersion:	v2.6.12
Contact:	linux-rdma@vger.kernel.org
Description:

		=============== ===============================================
		lid:		(RO) Port LID

		rate:		(RO) Port data rate (active width * active
				speed)

		lid_mask_count:	(RO) Port LID mask count

		sm_sl:		(RO) Subnet manager SL for port's subnet

		sm_lid:		(RO) Subnet manager LID for port's subnet

		state:		(RO) Port state (DOWN, INIT, ARMED, ACTIVE or
				ACTIVE_DEFER)

		phys_state:	(RO) Port physical state (Sleep, Polling,
				LinkUp, etc)

		cap_mask:	(RO) Port capability mask. 2 bits here are
				settable- IsCommunicationManagementSupported
				(set when CM module is loaded) and IsSM (set
				via open of issmN file).
		=============== ===============================================


What:		/sys/class/infiniband/<device>/ports/<port-num>/link_layer
Date:		Oct, 2010
KernelVersion:	v2.6.37
Contact:	linux-rdma@vger.kernel.org
Description:
		(RO) Link layer type information (Infiniband or Ethernet type)


What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/symbol_error
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_errors
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_remote_physical_errors
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_switch_relay_errors
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/link_error_recovery
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_xmit_constraint_errors
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_contraint_errors
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/local_link_integrity_errors
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/excessive_buffer_overrun_errors
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_xmit_data
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_data
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_xmit_packets
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_rcv_packets
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/unicast_rcv_packets
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/unicast_xmit_packets
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/multicast_rcv_packets
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/multicast_xmit_packets
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/link_downed
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_xmit_discards
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/VL15_dropped
What:		/sys/class/infiniband/<device>/ports/<port-num>/counters/port_xmit_wait
Date:		Apr, 2005
KernelVersion:	v2.6.12
Contact:	linux-rdma@vger.kernel.org
Description:
		**Errors info**:

		symbol_error: (RO) Total number of minor link errors detected on
		one or more physical lanes.

		port_rcv_errors : (RO) Total number of packets containing an
		error that were received on the port.

		port_rcv_remote_physical_errors : (RO) Total number of packets
		marked with the EBP delimiter received on the port.

		port_rcv_switch_relay_errors : (RO) Total number of packets
		received on the port that were discarded because they could not
		be forwarded by the switch relay.

		link_error_recovery: (RO) Total number of times the Port
		Training state machine has successfully completed the link error
		recovery process.

		port_xmit_constraint_errors: (RO) Total number of packets not
		transmitted from the switch physical port due to outbound raw
		filtering or failing outbound partition or IP version check.

		port_rcv_constraint_errors: (RO) Total number of packets
		received on the switch physical port that are discarded due to
		inbound raw filtering or failing inbound partition or IP version
		check.

		local_link_integrity_errors: (RO) The number of times that the
		count of local physical errors exceeded the threshold specified
		by LocalPhyErrors

		excessive_buffer_overrun_errors: (RO) This counter, indicates an
		input buffer overrun. It indicates possible misconfiguration of
		a port, either by the Subnet Manager (SM) or by user
		intervention. It can also indicate hardware issues or extremely
		poor link signal integrity

		**Data info**:

		port_xmit_data: (RO) Total number of data octets, divided by 4
		(lanes), transmitted on all VLs. This is 64 bit counter

		port_rcv_data: (RO) Total number of data octets, divided by 4
		(lanes), received on all VLs. This is 64 bit counter.

		port_xmit_packets: (RO) Total number of packets transmitted on
		all VLs from this port. This may include packets with errors.
		This is 64 bit counter.

		port_rcv_packets: (RO) Total number of packets (this may include
		packets containing Errors. This is 64 bit counter.

		link_downed: (RO) Total number of times the Port Training state
		machine has failed the link error recovery process and downed
		the link.

		unicast_rcv_packets: (RO) Total number of unicast packets,
		including unicast packets containing errors.

		unicast_xmit_packets: (RO) Total number of unicast packets
		transmitted on all VLs from the port. This may include unicast
		packets with errors.

		multicast_rcv_packets: (RO) Total number of multicast packets,
		including multicast packets containing errors.

		multicast_xmit_packets: (RO) Total number of multicast packets
		transmitted on all VLs from the port. This may include multicast
		packets with errors.

		**Misc info**:

		port_xmit_discards: (RO) Total number of outbound packets
		discarded by the port because the port is down or congested.

		VL15_dropped: (RO) Number of incoming VL15 packets dropped due
		to resource limitations (e.g., lack of buffers) of the port.

		port_xmit_wait: (RO) The number of ticks during which the port
		had data to transmit but no data was sent during the entire tick
		(either because of insufficient credits or because of lack of
		arbitration).

		Each of these files contains the corresponding value from the
		port's Performance Management PortCounters attribute, as
		described in the InfiniBand Architecture Specification.


What:		/sys/class/infiniband/<device-name>/hw_counters/lifespan
What:		/sys/class/infiniband/<device-name>/ports/<port-num>/hw_counters/lifespan
Date:		May, 2016
KernelVersion:	4.6
Contact:	linux-rdma@vger.kernel.org
Description:
		The optional "hw_counters" subdirectory can be under either the
		parent device or the port subdirectories or both. If present,
		there are a list of counters provided by the hardware. They may
		match some of the counters in the counters directory, but they
		often include many other counters. In addition to the various
		counters, there will be a file named "lifespan" that configures
		how frequently the core should update the counters when they are
		being accessed (counters are not updated if they are not being
		accessed). The lifespan is in milliseconds and defaults to 10
		unless set to something else by the driver. Users may echo a
		value between 0-10000 to the lifespan file to set the length
		of time between updates in milliseconds.


What:		/sys/class/infiniband/<hca>/ports/<port-number>/gid_attrs/ndevs/<gid-index>
Date:		November 29, 2015
KernelVersion:	4.4.0
Contact:	linux-rdma@vger.kernel.org
Description: 	The net-device's name associated with the GID resides
		at index <gid-index>.

What:		/sys/class/infiniband/<hca>/ports/<port-number>/gid_attrs/types/<gid-index>
Date:		November 29, 2015
KernelVersion:	4.4.0
Contact:	linux-rdma@vger.kernel.org
Description: 	The RoCE type of the associated GID resides at index <gid-index>.
		This could either be "IB/RoCE v1" for IB and RoCE v1 based GIDs
		or "RoCE v2" for RoCE v2 based GIDs.


What:		/sys/class/infiniband_mad/umad<N>/ibdev
What:		/sys/class/infiniband_mad/umad<N>/port
What:		/sys/class/infiniband_mad/issm<N>/ibdev
What:		/sys/class/infiniband_mad/issm<N>/port
Date:		Apr, 2005
KernelVersion:	v2.6.12
Contact:	linux-rdma@vger.kernel.org
Description:
		Each port of each InfiniBand device has a "umad" device and an
		"issm" device attached. For example, a two-port HCA will have
		two umad devices and two issm devices, while a switch will have
		one device of each type (for switch port 0).

		======= =====================================
		ibdev:	(RO) Show Infiniband (IB) device name

		port:	(RO) Display port number
		======= =====================================


What:		/sys/class/infiniband_mad/abi_version
Date:		Apr, 2005
KernelVersion:	v2.6.12
Contact:	linux-rdma@vger.kernel.org
Description:
		(RO) Value is incremented if any changes are made that break
		userspace ABI compatibility of umad & issm devices.


What:		/sys/class/infiniband_verbs/uverbs<N>/ibdev
What:		/sys/class/infiniband_verbs/uverbs<N>/abi_version
Date:		Sept, 2005
KernelVersion:	v2.6.14
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== ===========================================
		ibdev:		(RO) Display Infiniband (IB) device name

		abi_version:	(RO) Show ABI version of IB device specific
				interfaces.
		=============== ===========================================


What:		/sys/class/infiniband_verbs/abi_version
Date:		Sep, 2005
KernelVersion:	v2.6.14
Contact:	linux-rdma@vger.kernel.org
Description:
		(RO) Value is incremented if any changes are made that break
		userspace ABI compatibility of uverbs devices.


sysfs interface for Mellanox IB HCA low-level driver (mthca)
------------------------------------------------------------

What:		/sys/class/infiniband/mthcaX/hw_rev
What:		/sys/class/infiniband/mthcaX/hca_type
What:		/sys/class/infiniband/mthcaX/board_id
Date:		Apr, 2005
KernelVersion:	v2.6.12
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== ================================================
		hw_rev:		(RO) Hardware revision number

		hca_type:	(RO) Host Channel Adapter type: MT23108, MT25208
				(MT23108 compat mode), MT25208 or MT25204

		board_id:	(RO) Manufacturing board ID
		=============== ================================================


sysfs interface for Mellanox ConnectX HCA IB driver (mlx4)
----------------------------------------------------------

What:		/sys/class/infiniband/mlx4_X/hw_rev
What:		/sys/class/infiniband/mlx4_X/hca_type
What:		/sys/class/infiniband/mlx4_X/board_id
Date:		Sep, 2007
KernelVersion:	v2.6.24
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== ===============================
		hw_rev:		(RO) Hardware revision number

		hca_type:	(RO) Host channel adapter type

		board_id:	(RO) Manufacturing board ID
		=============== ===============================


What:		/sys/class/infiniband/mlx4_X/iov/ports/<port-num>/gids/<n>
What:		/sys/class/infiniband/mlx4_X/iov/ports/<port-num>/admin_guids/<n>
What:		/sys/class/infiniband/mlx4_X/iov/ports/<port-num>/pkeys/<n>
What:		/sys/class/infiniband/mlx4_X/iov/ports/<port-num>/mcgs/
What:		/sys/class/infiniband/mlx4_X/iov/ports/<pci-slot-num>/ports/<m>/gid_idx/0
What:		/sys/class/infiniband/mlx4_X/iov/ports/<pci-slot-num>/ports/<m>/pkey_idx/<n>
Date:		Aug, 2012
KernelVersion:	v3.6.15
Contact:	linux-rdma@vger.kernel.org
Description:
		The sysfs iov directory is used to manage and examine the port
		P_Key and guid paravirtualization. This directory is added only
		for the master -- slaves do not have it.

		Under iov/ports, the administrator may examine the gid and P_Key
		tables as they are present in the device (and as are seen in the
		"network view" presented to the SM).

		The "pkeys" and "gids" subdirectories contain one file for each
		entry in the port's P_Key or GID table respectively. For
		example, ports/1/pkeys/10 contains the value at index 10 in port
		1's P_Key table.

		======================= ==========================================
		gids/<n>:		(RO) The physical port gids n = 0..127

		admin_guids/<n>:	(RW) Allows examining or changing the
					administrative state of a given GUID
					n = 0..127

		pkeys/<n>:		(RO) Displays the contents of the physical
					key table n = 0..126

		mcgs/:			(RO) Multicast group table

		<m>/gid_idx/0:		(RO) Display the GID mapping m = 1..2

		<m>/pkey_idx/<n>:	(RW) Writable except for RoCE pkeys.
					m = 1..2, n = 0..126

					Under the iov/<pci slot number>
					directories, the admin may map the index
					numbers in the physical tables (as under
					iov/ports) to the paravirtualized index
					numbers that guests see.

					For example, if the administrator, for
					port 1 on guest 2 maps physical pkey
					index 10 to virtual index 1, then that
					guest, whenever it uses its pkey index
					1, will actually be using the real pkey
					index 10.
		======================= ==========================================


What:		/sys/class/infiniband/mlx4_X/iov/<pci-slot-num>/ports/<m>/smi_enabled
What:           /sys/class/infiniband/mlx4_X/iov/<pci-slot-num>/ports/<m>/enable_smi_admin
Date:		May, 2014
KernelVersion:	v3.15.7
Contact:	linux-rdma@vger.kernel.org
Description:
		Enabling QP0 on VFs for selected VF/port. By default, no VFs are
		enabled for QP0 operation.

		================= ==== ===========================================
		smi_enabled:	  (RO) Indicates whether smi is currently enabled
				       for the indicated VF/port

		enable_smi_admin: (RW) Used by the admin to request that smi
				       capability be enabled or disabled for the
				       indicated VF/port. 0 = disable, 1 = enable.
		================= ==== ===========================================

		The requested enablement will occur at the next reset of the VF
		(e.g. driver restart on the VM which owns the VF).


sysfs interface for Chelsio T4/T5 RDMA driver (cxgb4)
-----------------------------------------------------

What:		/sys/class/infiniband/cxgb4_X/hw_rev
What:		/sys/class/infiniband/cxgb4_X/hca_type
What:		/sys/class/infiniband/cxgb4_X/board_id
Date:		Apr, 2010
KernelVersion:	v2.6.35
Contact:	linux-rdma@vger.kernel.org
Description:

		=============== =============================================
		hw_rev:		(RO) Hardware revision number

		hca_type:	(RO) Driver short name. Should normally match
				the name in its bus driver structure (e.g.
				pci_driver::name)

		board_id:	(RO) Manufacturing board id. (Vendor + device
				information)
		=============== =============================================


sysfs interface for Intel IB driver qib
---------------------------------------

What:		/sys/class/infiniband/qibX/version
What:		/sys/class/infiniband/qibX/hw_rev
What:		/sys/class/infiniband/qibX/hca_type
What:		/sys/class/infiniband/qibX/board_id
What:		/sys/class/infiniband/qibX/boardversion
What:		/sys/class/infiniband/qibX/nctxts
What:		/sys/class/infiniband/qibX/localbus_info
What:		/sys/class/infiniband/qibX/tempsense
What:		/sys/class/infiniband/qibX/serial
What:		/sys/class/infiniband/qibX/nfreectxts
What:		/sys/class/infiniband/qibX/chip_reset
Date:		May, 2010
KernelVersion:	v2.6.35
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== ======================================================
		version:	(RO) Display version information of installed software
				and drivers.

		hw_rev:		(RO) Hardware revision number

		hca_type:	(RO) Host channel adapter type

		board_id:	(RO) Manufacturing board id

		boardversion:	(RO) Current version of the chip architecture

		nctxts:		(RO) Return the number of user ports (contexts)
				available

		localbus_info:	(RO) Human readable localbus info

		tempsense:	(RO) Display temp sense registers in decimal

		serial:		(RO) Serial number of the HCA

		nfreectxts:	(RO) The number of free user ports (contexts)
				available.

		chip_reset:	(WO) Reset the chip if possible by writing
				"reset" to this file. Only allowed if no user
				contexts are open that use chip resources.
		=============== ======================================================


What:		/sys/class/infiniband/qibX/ports/<N>/sl2vl/[0-15]
Date:		May, 2010
KernelVersion:	v2.6.35
Contact:	linux-rdma@vger.kernel.org
Description:
		(RO) The directory contains 16 files numbered 0-15 that specify
		the Service Level (SL). Listing the SL files returns the Virtual
		Lane (VL) as programmed by the SL.

What:		/sys/class/infiniband/qibX/ports/<N>/CCMgtA/cc_settings_bin
What:		/sys/class/infiniband/qibX/ports/<N>/CCMgtA/cc_table_bin
Date:		May, 2010
KernelVersion:	v2.6.35
Contact:	linux-rdma@vger.kernel.org
Description:
		Per-port congestion control. Both are binary attributes.

		=============== ================================================
		cc_table_bin	(RO) Congestion control table size followed by
				table entries.

		cc_settings_bin (RO) Congestion settings: port control, control
				map and an array of 16 entries for the
				congestion entries - increase, timer, event log
				trigger threshold and the minimum injection rate
				delay.
		=============== ================================================

What:		/sys/class/infiniband/qibX/ports/<N>/linkstate/loopback
What:		/sys/class/infiniband/qibX/ports/<N>/linkstate/led_override
What:		/sys/class/infiniband/qibX/ports/<N>/linkstate/hrtbt_enable
What:		/sys/class/infiniband/qibX/ports/<N>/linkstate/status
What:		/sys/class/infiniband/qibX/ports/<N>/linkstate/status_str
Date:		May, 2010
KernelVersion:	v2.6.35
Contact:	linux-rdma@vger.kernel.org
Description:
		[to be documented]

		=============== ===============================================
		loopback:	(WO)
		led_override:	(WO)
		hrtbt_enable:	(RW)
		status:		(RO)

		status_str:	(RO) Displays information about the link state,
				possible cable/switch problems, and hardware
				errors. Possible states are- "Initted",
				"Present", "IB_link_up", "IB_configured" or
				"Fatal_Hardware_Error".
		=============== ===============================================

What:		/sys/class/infiniband/qibX/ports/<N>/diag_counters/rc_resends
What:		/sys/class/infiniband/qibX/ports/<N>/diag_counters/seq_naks
What:		/sys/class/infiniband/qibX/ports/<N>/diag_counters/rdma_seq
What:		/sys/class/infiniband/qibX/ports/<N>/diag_counters/rnr_naks
What:		/sys/class/infiniband/qibX/ports/<N>/diag_counters/other_naks
What:		/sys/class/infiniband/qibX/ports/<N>/diag_counters/rc_timeouts
What:		/sys/class/infiniband/qibX/ports/<N>/diag_counters/look_pkts
What:		/sys/class/infiniband/qibX/ports/<N>/diag_counters/pkt_drops
What:		/sys/class/infiniband/qibX/ports/<N>/diag_counters/dma_wait
What:		/sys/class/infiniband/qibX/ports/<N>/diag_counters/unaligned
Date:		May, 2010
KernelVersion:	v2.6.35
Contact:	linux-rdma@vger.kernel.org
Description:
		[to be documented]


sysfs interface for Mellanox Connect-IB HCA driver mlx5
-------------------------------------------------------

What:		/sys/class/infiniband/mlx5_X/hw_rev
What:		/sys/class/infiniband/mlx5_X/hca_type
What:		/sys/class/infiniband/mlx5_X/reg_pages
What:		/sys/class/infiniband/mlx5_X/fw_pages
Date:		Jul, 2013
KernelVersion:	v3.11
Contact:	linux-rdma@vger.kernel.org
Description:
		[to be documented]


sysfs interface for Cisco VIC (usNIC) Verbs Driver
--------------------------------------------------

What:		/sys/class/infiniband/usnic_X/board_id
What:		/sys/class/infiniband/usnic_X/config
What:		/sys/class/infiniband/usnic_X/qp_per_vf
What:		/sys/class/infiniband/usnic_X/max_vf
What:		/sys/class/infiniband/usnic_X/cq_per_vf
What:		/sys/class/infiniband/usnic_X/iface
Date:		Sep, 2013
KernelVersion:	v3.14
Contact:	Christian Benvenuti <benve@cisco.com>,
		Dave Goodell <dgoodell@cisco.com>,
		linux-rdma@vger.kernel.org
Description:

		=============== ===============================================
		board_id:	(RO) Manufacturing board id

		config:		(RO) Report the configuration for this PF

		qp_per_vf:	(RO) Queue pairs per virtual function.

		max_vf:		(RO) Max virtual functions

		cq_per_vf:	(RO) Completion queue per virtual function

		iface:		(RO) Shows which network interface this usNIC
				entry is associated to (visible with ifconfig).
		=============== ===============================================

What:		/sys/class/infiniband/usnic_X/qpn/summary
What:		/sys/class/infiniband/usnic_X/qpn/context
Date:		Sep, 2013
KernelVersion:	v3.14
Contact:	Christian Benvenuti <benve@cisco.com>,
		Dave Goodell <dgoodell@cisco.com>,
		linux-rdma@vger.kernel.org
Description:
		[to be documented]


sysfs interface for Emulex RoCE HCA Driver
------------------------------------------

What:		/sys/class/infiniband/ocrdmaX/hw_rev
Date:		Feb, 2014
KernelVersion:	v3.14
Description:
		hw_rev:		(RO) Hardware revision number

What:		/sys/class/infiniband/ocrdmaX/hca_type
Date:		Jun, 2014
KernelVersion:	v3.16
Contact:	linux-rdma@vger.kernel.org
Description:
		hca_type:	(RO) Display FW version


sysfs interface for Intel Omni-Path driver (HFI1)
-------------------------------------------------

What:		/sys/class/infiniband/hfi1_X/hw_rev
What:		/sys/class/infiniband/hfi1_X/board_id
What:		/sys/class/infiniband/hfi1_X/nctxts
What:		/sys/class/infiniband/hfi1_X/serial
What:		/sys/class/infiniband/hfi1_X/chip_reset
What:		/sys/class/infiniband/hfi1_X/boardversion
What:		/sys/class/infiniband/hfi1_X/nfreectxts
What:		/sys/class/infiniband/hfi1_X/tempsense
Date:		May, 2016
KernelVersion:	v4.6
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== =============================================
		hw_rev:		(RO) Hardware revision number

		board_id:	(RO) Manufacturing board id

		nctxts:		(RO) Total contexts available.

		serial:		(RO) Board serial number

		chip_reset:	(WO) Write "reset" to this file to reset the
				chip if possible. Only allowed if no user
				contexts are open that use chip resources.

		boardversion:	(RO) Human readable board info

		nfreectxts:	(RO) The number of free user ports (contexts)
				available.

		tempsense:	(RO) Thermal sense information
		=============== =============================================


What:		/sys/class/infiniband/hfi1_X/ports/<N>/CCMgtA/cc_settings_bin
What:		/sys/class/infiniband/hfi1_X/ports/<N>/CCMgtA/cc_table_bin
What:		/sys/class/infiniband/hfi1_X/ports/<N>/CCMgtA/cc_prescan
Date:		May, 2016
KernelVersion:	v4.6
Contact:	linux-rdma@vger.kernel.org
Description:
		Per-port congestion control.

		=============== ================================================
		cc_table_bin	(RO) CCA tables used by PSM2 Congestion control
				table size followed by table entries. Binary
				attribute.

		cc_settings_bin (RO) Congestion settings: port control, control
				map and an array of 16 entries for the
				congestion entries - increase, timer, event log
				trigger threshold and the minimum injection rate
				delay. Binary attribute.

		cc_prescan	(RW) enable prescanning for faster BECN
				response. Write "on" to enable and "off" to
				disable.
		=============== ================================================

What:		/sys/class/infiniband/hfi1_X/ports/<N>/sc2vl/[0-31]
What:		/sys/class/infiniband/hfi1_X/ports/<N>/sl2sc/[0-31]
What:		/sys/class/infiniband/hfi1_X/ports/<N>/vl2mtu/[0-15]
Date:		May, 2016
KernelVersion:	v4.6
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== ===================================================
		sc2vl/:		(RO) 32 files (0 - 31) used to translate sl->vl

		sl2sc/:		(RO) 32 files (0 - 31) used to translate sl->sc

		vl2mtu/:	(RO) 16 files (0 - 15) used to determine MTU for vl
		=============== ===================================================


What:		/sys/class/infiniband/hfi1_X/sdma_<N>/cpu_list
What:		/sys/class/infiniband/hfi1_X/sdma_<N>/vl
Date:		Sept, 2016
KernelVersion:	v4.8
Contact:	linux-rdma@vger.kernel.org
Description:
		sdma<N>/ contains one directory per sdma engine (0 - 15)

		=============== ==============================================
		cpu_list:	(RW) List of cpus for user-process to sdma
				engine assignment.

		vl:		(RO) Displays the virtual lane (vl) the sdma
				engine maps to.
		=============== ==============================================

		This interface gives the user control on the affinity settings
		for the device. As an example, to set an sdma engine irq
		affinity and thread affinity of a user processes to use the
		sdma engine, which is "near" in terms of NUMA configuration, or
		physical cpu location, the user will do::

		  echo "3" > /proc/irq/<N>/smp_affinity_list
		  echo "4-7" > /sys/devices/.../sdma3/cpu_list
		  cat /sys/devices/.../sdma3/vl
		  0
		  echo "8" > /proc/irq/<M>/smp_affinity_list
		  echo "9-12" > /sys/devices/.../sdma4/cpu_list
		  cat /sys/devices/.../sdma4/vl
		  1

		to make sure that when a process runs on cpus 4,5,6, or 7, and
		uses vl=0, then sdma engine 3 is selected by the driver, and
		also the interrupt of the sdma engine 3 is steered to cpu 3.
		Similarly, when a process runs on cpus 9,10,11, or 12 and sets
		vl=1, then engine 4 will be selected and the irq of the sdma
		engine 4 is steered to cpu 8.  This assumes that in the above N
		is the irq number of "sdma3", and M is irq number of "sdma4" in
		the /proc/interrupts file.

sysfs interface for QLogic qedr NIC Driver
------------------------------------------

What:		/sys/class/infiniband/qedrX/hw_rev
What:		/sys/class/infiniband/qedrX/hca_type
Date:		Oct, 2016
KernelVersion:	v4.10
Contact:	linux-rdma@vger.kernel.org
Description:

		=============== ==== ========================
		hw_rev:		(RO) Hardware revision number

		hca_type:	(RO) Display HCA type
		=============== ==== ========================


sysfs interface for VMware Paravirtual RDMA driver
--------------------------------------------------

What:		/sys/class/infiniband/vmw_pvrdmaX/hw_rev
What:		/sys/class/infiniband/vmw_pvrdmaX/hca_type
What:		/sys/class/infiniband/vmw_pvrdmaX/board_id
Date:		Oct, 2016
KernelVersion:	v4.10
Contact:	linux-rdma@vger.kernel.org
Description:

		=============== ==== =====================================
		hw_rev:		(RO) Hardware revision number

		hca_type:	(RO) Host channel adapter type

		board_id:	(RO) Display PVRDMA manufacturing board ID
		=============== ==== =====================================


sysfs interface for Broadcom NetXtreme-E RoCE driver
----------------------------------------------------

What:		/sys/class/infiniband/bnxt_reX/hw_rev
What:		/sys/class/infiniband/bnxt_reX/hca_type
Date:		Feb, 2017
KernelVersion:	v4.11
Contact:	linux-rdma@vger.kernel.org
Description:
		=============== ==== =========================
		hw_rev:		(RO) Hardware revision number

		hca_type:	(RO) Host channel adapter type
		=============== ==== =========================
