Current File : //kernel/drv/oce.conf
#
# Copyright (c) 2009-2014 Emulex. All rights reserved.
# EMULEX CONFIDENTIAL. Unpublished work. Copying, access, use or
# distribution requires an applicable license approved by Emulex.
#


#
# Driver.conf file for Emulex oce driver for Emulex OneConnect CNAs
#

#
# default_mtu
#	The MTU to be used by the driver by default
# 	Allowed  values:	1500 or 9000
#	Default value:		1500
#default_mtu		= 1500;

# flow_control
#       Ethernet flow control
#       Allowed values: 0 - Disable
#                       1 - Transmit only
#                       2 - Receive only
#                       3 - Both Receive and transmit
#       Default value:  3
#
# flow_control          = 3;
#
# Note: flow_control cannot be disabled on NIC/FCOE UCNA

#
# max_tx_rings
#	Maximum number of Transmit Queues
#	Allowed values:	1 (OCE10102)
#			1 - 16 (OCE11102, LPem16002-M6-O, LPe16002-M6-O)
#	Default value:	1 (OCE10102)
#			8 (OCE11102, LPem16002-M6-O, LPe16002-M6-O)

#
# max_rx_rings
#	Maximum number of Recieve  Queues
#	Allowed values:	1 - 5 (OCE10102, OCE11102)
#			1 - 16 (OCE11102 Native mode, LPem16002-M6-O, LPe16002-M6-O)
#	Default value:	1 - 5 (OCE10102, OCE11102)
#			1 - 8 (OCE11102 Native mode, LPem16002-M6-O, LPe16002-M6-O)
# Note: The actual number of tx/rx queeus created depends on the number of
# vectors allocated. The actual number can be checked using ndd(1m) command.
# On non IRM capable machines with Flex10 or multiadapter setup some of the
# functions may fail to attach because of lack of interrupts refer the section
# "How to change the Interrupt Priorities on non-IRM capable systems" to
# workaround this problem.


# fm_capability
#	sets the driver's device fault management capability
#	to one of the values defined for Solaris FM capability. It is a bitmap
#	of one or more of these values. A value of zero implies that the
#	capability is disabled
#	Allowed values: 0x00000000 - DDI_FM_NOT_CAPABLE
# 			0x00000001 - DDI_FM_EREPORT_CAPABLE
#			0x00000002 - DDI_FM_ACCCHK_CAPABLE
#			0x00000004 - DDI_FM_DMA_CHK_CAPABLE
#			0x00000008 - DDI_FM_ERRCB_CAPABLE
#	Default value:	0x00000007
#
#fm_capability		= 7;

#
# log_level
#	Sets the driver's verbosity in logs through /var/adm/messages
#	It is a bitmask of the form (MOD_MASK | SEVERITY) where
#	Valid Values :
#	MOD_MASK:
#		0x10000 - MOD_CONFIG
#		0x20000 - MOD_TX
#		0x40000 - MOD_RX
#		0x80000 - MOD_ISR
#
# 	SEVERITY:
#		0 - CE_CONT
#		1 - CE_NOTE
#		2 - CE_WARN
#		3 - CE_PANIC
#		4 - CE_IGNORE
#
#	Default value:	0x00070002
#log_level		= 0;

#----- How to change the Interrupt Priorities on non-IRM capable systems -----
#
# The Solaris operating system divides the available interrupts among
# multiple priority levels. Each priority level having a maximum of 31
# vectors. By default each function gets a maximum of two MSIX vectors
# on x86 platforms. With Flex10 and 3 adapters, there are 24 functions
# and the driver needs at least two vectors per function for a total of
# 48 vectors. If the MSIX allocation fails, the driver reverts to the INTX
# allocation that results in suboptimal performance.
# Normally the network drivers allocate vectors at level six, but our
# requirement of 48  vectors is beyond the limit which causes problems. The
# workaround is to assign level six to say 12 functions and level five to the
# remaining functions so that all functions can get 2 MSIX vectors for optimum
# performance. It is not uncommon to assign level 5 or 6 on Solaris under these
# conditions.

# The following example shows how the interrupt-priority for a PCI function can be configured to 5:
# 1. grep elxnic /etc/path_to_inst
#"/pci@0,0/pci8086,340a@3/pci10b5,8624@0/pci10b5,8624@1/pci10df,e702@0" 2 "oce"
#"/pci@0,0/pci8086,340a@3/pci10b5,8624@0/pci10b5,8624@1/pci10df,e702@0,1" 3 "oce"
#"/pci@0,0/pci8086,340a@3/pci10b5,8624@0/pci10b5,8624@5/pci10df,e20e@0" 0 "oce"
#"/pci@0,0/pci8086,340a@3/pci10b5,8624@0/pci10b5,8624@5/pci10df,e20e@0,1" 1 "oce"

#Note: In the example above, /pci@n,n/pcinnnn,nnnd@n represents the parent of the pci
#function, the unit number follows the last @ symbol, and pciexnnan,nnn indicates the
#device name.The path and unit number may vary on your system.

# grep elxnic /etc/driver_aliases
# elxnic "pciex19a2,710"
# 2. Add the following entry to /kernel/drv/oce.conf:
# name= "pciex19a2,710" parent = "/pci@0,0/pci8086,340a@3/pci10b5,8624@0/pci10b5,8624@1" unit-address = "0" interrupt-priorities = 5;
# 3. Now reboot the system. Interrupt priorities can be examined using mdb:
# echo "::interrupts "| mdb -k | grep oce
#0/0x26    -   5   PCI    Edg MSI-X  1     -         oce_isr
#1/0x28    -   5   PCI    Edg MSI-X  1     -         oce_isr