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