Advertisement
Guest User

readme driver FC

a guest
Mar 22nd, 2014
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.84 KB | None | 0 0
  1. ########################################################################
  2. # Release notes for the BSD NIC driver for OneConnect CNA using SLI-4.
  3. ########################################################################
  4.  
  5. OCE Release: "806:2.0.1:145"
  6.  
  7. #
  8. #-
  9. # Copyright (C) 2013 Emulex
  10. # All rights reserved.
  11. #
  12. # Redistribution and use in source and binary forms, with or without
  13. # modification, are permitted provided that the following conditions are met:
  14. #
  15. # 1. Redistributions of source code must retain the above copyright notice,
  16. # this list of conditions and the following disclaimer.
  17. #
  18. # 2. Redistributions in binary form must reproduce the above copyright
  19. # notice, this list of conditions and the following disclaimer in the
  20. # documentation and/or other materials provided with the distribution.
  21. #
  22. # 3. Neither the name of the Emulex Corporation nor the names of its
  23. # contributors may be used to endorse or promote products derived from
  24. # this software without specific prior written permission.
  25. #
  26. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  27. # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  28. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  29. # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  30. # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  31. # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  32. # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  33. # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  34. # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  35. # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  36. # POSSIBILITY OF SUCH DAMAGE.
  37. #
  38. # Contact Information:
  39. #
  40. # Emulex
  41. # 3333 Susan Street
  42. # Costa Mesa, CA 92626
  43. #
  44.  
  45. ########################################################################
  46. # Getting started
  47. ########################################################################
  48.  
  49. System requirements (recommended):
  50.  
  51. OS: FreeBSD 8.2
  52. Arch: AMD64
  53. PCI-X: MSI-x support
  54. CPU: Dual-core or better
  55.  
  56. This is a SOURCE release. Extract the files into a work directory on
  57. a BSD system capable of performing kernel builds.
  58.  
  59. Files in this release are as follows:
  60.  
  61. dev/oce/README
  62. dev/oce/loadit
  63. dev/oce/oce_buf.h
  64. dev/oce/oce_hw.c
  65. dev/oce/oce_hw.h
  66. dev/oce/oce_hw_eth.h
  67. dev/oce/oce_if.c
  68. dev/oce/oce_if.h
  69. dev/oce/oce_info.c
  70. dev/oce/oce_info.h
  71. dev/oce/oce_info_data.h
  72. dev/oce/oce_io.h
  73. dev/oce/oce_mbox.c
  74. dev/oce/oce_queue.c
  75. dev/oce/oce_rx.c
  76. dev/oce/oce_tx.c
  77. dev/oce/oce_util.c
  78. dev/oce/Makefile
  79. dev/oce/doc/Makefile
  80. dev/oce/doc/Config.doxy
  81. dev/oce/doc/Copyright
  82.  
  83.  
  84. ########################################################################
  85. # Driver Documentation
  86. ########################################################################
  87.  
  88. To build driver documentation, change directory to dev/oce/doc and type:
  89.  
  90. make
  91. firefox html/index.html
  92.  
  93. Note: Requires doxygen, graphviz, mscgen packages:
  94.  
  95. sudo pkg_add -r doxygen
  96. sudo pkg_add -r graphviz
  97. sudo pkg_add -r mscgen
  98.  
  99. If mscgen package not found then build and install it from source.
  100. Source for FreeBSD packages can be found here:
  101.  
  102. ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/
  103.  
  104. ########################################################################
  105. # Driver Build
  106. ########################################################################
  107.  
  108. To build the kernel module, change directory to dev/oce and type:
  109.  
  110. make oce.ko
  111.  
  112. This will build the oce.ko loadable kernel object module.
  113. This command must be exectued in the same directory as the
  114. oce.ko file, or the complete path to the oce.ko file must
  115. be provided instead of ./oce.ko.
  116.  
  117. ########################################################################
  118. # Driver Load/Unload
  119. ########################################################################
  120.  
  121.  
  122. To load the kernel module type:
  123.  
  124. sudo kldload ./oce.ko
  125.  
  126. To unload the kernel module type:
  127.  
  128. sudo kldunload oce
  129.  
  130. Or simply use the "dev/oce/loadit" script. See script for
  131. setting options.
  132.  
  133.  
  134. ########################################################################
  135. # Driver Statistics
  136. ########################################################################
  137.  
  138. To view device driver statistics simply type:
  139.  
  140. sysctl -a | grep oce
  141.  
  142. To view function call statistics simply type:
  143.  
  144. ifconfig
  145.  
  146. Note: OCE_TRACE_FUNC must be enabled (see 'loadit' script).
  147.  
  148.  
  149. ########################################################################
  150. # Driver Exercises
  151. ########################################################################
  152.  
  153. The ping, ttcp and netperf programs can be usefull for
  154. exercising adaptor interface traffic.
  155.  
  156. On the 1st host machine type:
  157.  
  158. ./loadit 1
  159.  
  160. Note: assigns 192.168.100.1 to oce0, 192.168.101.1 to oce1
  161.  
  162. On the 2nd host machine type:
  163.  
  164. ./loadit 2
  165.  
  166. Note: assigns 192.168.100.2 to oce0, 192.168.101.2 to oce1
  167.  
  168. For 'ping' on host1 type:
  169.  
  170. ping 192.168.100.2
  171. ping 192.168.101.2
  172.  
  173. For 'ping' on host2 type:
  174.  
  175. ping 192.168.100.1
  176. ping 192.168.101.1
  177.  
  178. For 'ttcp' RX on host1 type:
  179.  
  180. ttcp -r -s -n 54321
  181.  
  182. For 'ttcp' TX on host2 type:
  183.  
  184. ttcp -t -s -n 44444 192.168.100.1
  185.  
  186. For 'netperf' server on host1 type:
  187.  
  188. netserver -L 192.168.100.1,inet
  189.  
  190. For 'netperf' client on host2 type:
  191.  
  192. netperf -L 192.168.100.2,inet -H 192.168.100.1,inet
  193.  
  194.  
  195. ########################################################################
  196. # Driver Parameters
  197. ########################################################################
  198.  
  199. Kernel module parameters:
  200.  
  201. disable_msix:
  202. kenv name: hw.oce.disable_msix
  203. sysctl name: <NOT APPLICABLE>
  204. default: 0
  205. allowed values: 0, 1
  206.  
  207. 0 allows MSIx interrupts to be used, if available.
  208. 1 will cause the INTx interrupt to be used, even
  209. if MSIx is available.
  210.  
  211. This parameter is not available via sysctl.
  212.  
  213. max_rsp_handled:
  214. kenv name: hw.oce.max_rsp_handled
  215. sysctl name: dev.oceX.max_rsp_handled
  216. default: 512
  217. allowed values: 1 - 1024
  218.  
  219. The maximum number of receive frames that will be
  220. processed during a single receive frame interrupt.
  221.  
  222. enable_csum:
  223. kenv name: hw.oce.enable_csum
  224. sysctl name: <NOT APPLICABLE>
  225. default: 1
  226. allowd values: 0, 1
  227.  
  228. A setting of 1 will cause the driver to indicate
  229. to the network layers above that the adapter is capable
  230. of performing TCP, UDP, and IP checksum offload.
  231. A setting of 0 will disable this feature.
  232.  
  233. trace_enable:
  234. kenv name: hw.oce.trace_enable
  235. sysctl name: dev.oceX.trace_enable
  236. default: 0x00000001
  237. allowed values: 0-0xffffffff
  238.  
  239. Each bit corresponds to a trace flag. Each trace flag
  240. turns on a separate set of trace messages. Bit 0
  241. corresponds to ERROR, so it should always be enabled
  242. to show unexpeced errors. Trace messages are emitted
  243. to the console and the /var/log/messages file.
  244.  
  245. The different sets of trace messages are indicated below:
  246.  
  247. OCE_TRACE_ERROR 0x00000001
  248. OCE_TRACE_ENTRY_EXIT 0x00000002
  249. OCE_TRACE_IOCTL 0x00000004
  250. OCE_TRACE_MAILBOX 0x00000008
  251. OCE_TRACE_INIT 0x00000010
  252. OCE_TRACE_INTR 0x00000020
  253. OCE_TRACE_FAST_INTR 0x00000040
  254. OCE_TRACE_TX 0x00000080
  255. OCE_TRACE_RX 0x00000100
  256. OCE_TRACE_PCI 0x00000200
  257. OCE_TRACE_UNHANDLED 0x00000400
  258. OCE_TRACE_IF 0x00000800
  259. OCE_TRACE_RING_BUF 0x00001000
  260. OCE_TRACE_FUNC 0x00002000
  261. OCE_TRACE_STRUCT 0x00004000
  262. OCE_TRACE_STATS 0x00008000
  263. OCE_TRACE_HEXDUMPS 0x00010000
  264. OCE_TRACE_FLAGS 0x00020000
  265.  
  266. OCE_TRACE_NONE 0x00000000
  267. OCE_TRACE_ALL 0xFFFFFFFF
  268.  
  269. Note: see 'loadit' script for setting trace_enable parameters.
  270.  
  271.  
  272. ########################################################################
  273. # Driver Statistics Instrumentation
  274. ########################################################################
  275.  
  276. Accessing Statistics:
  277.  
  278. For FreeBSD the mechanism to access device driver adaptor
  279. statistics and instrumenation counters is the "sysctl"
  280. command:
  281.  
  282. For a list of all OCE device driver statistics type:
  283.  
  284. sysctl -a | grep oce
  285.  
  286. ########################################################################
  287. # Driver Supported Features
  288. ########################################################################
  289.  
  290. This is a "basic" target mode NIC driver release and therefore
  291. does not (as yet) include support for advanced EMULEX driver
  292. features such as SR-IOV, MR-IOV, QGroups, HDS and VMQ.
  293.  
  294. This driver spupports *both* the EMULEX BE3 (Tomcat) and
  295. EMULEX XE201 (Lancer) converged network adapters. Please
  296. contact EMULEX concerning availablity of updates to this driver.
  297.  
  298. The following table lists the current disposition of features
  299. for the EMULEX FreeBSD OneConnect 10Gb Ethernet (OCE) device
  300. driver for BE3 and Lacer adpaptors:
  301.  
  302. --------------------------------------------------------
  303. Features Support: Emulex FreeBSD OCE device driver.
  304. --------------------------------------------------------
  305.  
  306. OS FreeBSD 8.2
  307. Architecture AMD64
  308. --------------------- ---------------------------
  309. Feature Support
  310. --------------------- ---------------------------
  311. BE3/Tomcat Yes
  312. XE201/Lancer Yes
  313. Lancer A0-chip errata Yes
  314. 2-port Yes
  315. 4-port Planned
  316. Multicore Yes
  317. Multiprocessor Yes
  318. PCI-E Yes
  319. Statistics Yes
  320. Jumbo Packets Yes
  321. VLAN Yes
  322. Multicast Yes
  323. RSS Yes (4RQ/port, >4 planned)
  324. TSO/LSO Yes
  325. Software LRO Yes
  326. CSO Yes
  327. SR IOV Planned
  328. MR IOV Planned
  329. Bonding Yes
  330. PXE Yes
  331. MSI-x Yes (32/BE3, 1024/XE201)
  332. Debug Yes
  333. Diagnostics Planned
  334. Promiscuous-mode Yes
  335.  
  336.  
  337. ########################################################################
  338. # Driver Errata and workarounds:
  339. ########################################################################
  340.  
  341. The following lists known errata pertinate to this release of the
  342. BSD NIC driver for OneConnect BE3 and XE201 CNA's using SLI-4.
  343.  
  344.  
  345. 1) Disabling MSI-x is not supported.
  346.  
  347. 2) The FreeBSD "ifconfig" command includes capabilities
  348. or dynamically modifying and setting TSO offload and
  349. IP, UDP and TCP checksum offload. Dynamically modifing these
  350. options is not supported. The driver supports static (driver
  351. load tunable and sysctl CSO parameters.
  352.  
  353. 3) Device driver performance has not been optimized.
  354. Optimizations will be addressed in future releases.
  355.  
  356. Lancer A0 is the first generation chipset. Emulex has performed
  357. an engineering analysis of A0 chipset errata from the FreeBSD
  358. device driver perspective. The following outlines the results of
  359. the analysis as well and pending work planned for implementation.
  360.  
  361. 1) RQ entry starvation may cause port blocking resulting in
  362. dropping of packets/frames.
  363. -> Driver implements policy for dropping packets on stalled
  364. RX queues.
  365.  
  366. 2) MSI/MSI-X interrupt is received in the driver before related
  367. Event Queue entry.
  368. -> Implemented lost interrupt EQ workaround.
  369.  
  370. 3) IOC XE201 does not generate an interrupt until the coalesce
  371. count is reached.
  372.  
  373. 4) Zero-length BDEs may generate invalid DMA commands.
  374. -> Reasonable behavior, driver should avoid setting the
  375. length of valid DMA buffer data descriptors to zero
  376. (a non-nonsensical value).
  377.  
  378. 5) SLI Port issues DMA requests inappropriately.
  379. -> Driver implement DMA mappings release delay.
  380.  
  381. 6) NIC packets always drop with L3/L4 checksum errors.
  382. -> Driver implemented SLI-4 option default as no-L3/L4 error
  383. notification.
  384.  
  385. 7) Unnecessary padding added to 64B packets in some fields.
  386. -> Non-issue: not visible over link or to the driver.
  387.  
  388. 8) Short TCP IPv4 packets (<60 bytes) with TCP checksum
  389. offload transmitted with an incorrect TCP checksum.
  390. -> Workqueue packet length must reflect data, not padding
  391. for checksum to be correct.
  392.  
  393. 9) Receive packets must not have two (or more) VNTAGs.
  394. -> Normal behavior, driver statistics will note dropped packets.
  395.  
  396. 10) Hardware Large Receive Offload (LRO) is not supported.
  397. -> Implemented software LRO in the driver.
  398.  
  399. 12) Transmit restrictions in Ethernet packet headers.
  400. -> Driver implement Tx packet length tracking.
  401.  
  402. 13) Incorrect indication in CQE on TCP/IDP IPv4/IPv6 checksums.
  403. -> Driver implements recommended workaround given in errata.
  404.  
  405. 14) The IOC XE201 indicates incorrect number of fragments in
  406. the completion for an HDS packet.
  407. -> Driver implements recommended workaround given in errata.
  408.  
  409. 15) The IOC XE201 does not forward packets with L3/L4 illegal
  410. or truncated headers.
  411. -> Normal expected behavior, adaptor statistics do reflect
  412. dropped packets.
  413.  
  414. 16) The NIC driver may not be informed of truncated L4 payload.
  415. -> Normal expected behavior is L4 layer catches and correctly
  416. processes.
  417.  
  418. 17) Ethernet packets may be misprocessed if the L2 header
  419. contains too many tag bytes.
  420. -> Normal expected behavior for non-standard frames.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement