e3737c33e7
features. The changes in particular are: o Remove rarely used "header" pointer and replace it with a 64bit protocol/ layer specific union PH_loc for local use. Protocols can flexibly overlay their own 8 to 64 bit fields to store information while the packet is worked on. o Mechanically convert IP reassembly, IGMP/MLD and ATM to use pkthdr.PH_loc instead of pkthdr.header. o Extend csum_flags to 64bits to allow for additional future offload information to be carried (e.g. iSCSI, IPsec offload, and others). o Move the RSS hash type enumerator from abusing m_flags to its own 8bit rsstype field. Adjust accessor macros. o Add cosqos field to store Class of Service / Quality of Service information with the packet. It is not yet supported in any drivers but allows us to get on par with Cisco/Juniper in routing applications (plus MPLS QoS) with a modernized ALTQ. o Add four 8 bit fields l[2-5]hlen to store the relative header offsets from the start of the packet. This is important for various offload capabilities and to relieve the drivers from having to parse the packet and protocol headers to find out location of checksums and other information. Header parsing in drivers is a lot of copy-paste and unhandled corner cases which we want to avoid. o Add another flexible 64bit union to map various additional persistent packet information, like ether_vtag, tso_segsz and csum fields. Depending on the csum_flags settings some fields may have different usage making it very flexible and adaptable to future capabilities. o Restructure the CSUM flags to better signify their outbound (down the stack) and inbound (up the stack) use. The CSUM flags used to be a bit chaotic and rather poorly documented leading to incorrect use in many places. Bring clarity into their use through better naming. Compatibility mappings are provided to preserve the API. The drivers can be corrected one by one and MFC'd without issue. o The size of pkthdr stays the same at 48/56bytes (32/64bit architectures). Sponsored by: The FreeBSD Foundation |
||
---|---|---|
.. | ||
qla_dbg.c | ||
qla_dbg.h | ||
qla_def.h | ||
qla_glbl.h | ||
qla_hw.c | ||
qla_hw.h | ||
qla_inline.h | ||
qla_ioctl.c | ||
qla_ioctl.h | ||
qla_isr.c | ||
qla_misc.c | ||
qla_os.c | ||
qla_os.h | ||
qla_reg.h | ||
qla_ver.h | ||
README.txt |
# $FreeBSD$ README File QLogic 3200 and 8200 series Single/Dual Port 10 Gigabit Ethernet & CNA Adapter Driver for FreeBSD 7.x/8.x/9.x QLogic Corporation. All rights reserved. Table of Contents 1. Package Contents 2. OS Support 3. Supported Features 4. Using the Driver 4.1 Installing the driver 4.2 Removing the driver 5. Driver Parameters 6. Additional Notes 7. Contacting Support 1. Package Contents * Documentation - README (this document) version:1.0 - Release Notes Version:1.0 * Driver (if_qlxgb.ko) - FreeBSD 7.x/8.x/9.x * Firmware: pre-flashed on QLogic adapter; 2. OS Support The Qlogic 10Gigabit Ethernet/CNA driver is compatible with the following OS platforms: * FreeBSD 7.x/8.x/9.x (64-bit) [Intel EM64T, AMD64] 3. Supported Features 10Gigabit Ethernet NIC/CNA driver supports following features * Large Segment Offload over TCP IPV4 * Large Segment Offload over TCP IPV6 * Receive Side scaling * TCP over IPv4 checksum offload * UDP over IPv4 checksum offload * IPV4 checksum offload * TCP over IPv6 checksum offload * UDP over IPv6 checksum offload * Jumbo frames * VLAN Tag 4. Using the driver 4.1 Installing the driver - copy the driver file (if_qlxgb.ko) into some directory (say qla_driver) - cd <to qla_driver> - kldload -v ./if_qlxgb.ko 4.2 Removing the driver - kldunload if_qlxgb 5. Parameters to set prior to installing the driver - Add the following lines to /etc/sysctl.conf and reboot the machine prior to installing the driver kern.ipc.nmbjumbo9=262144 net.inet.tcp.recvbuf_max=262144 net.inet.tcp.recvbuf_inc=16384 kern.ipc.nmbclusters=1000000 kern.ipc.maxsockbuf=2097152 net.inet.tcp.recvspace=131072 net.inet.tcp.sendbuf_max=262144 net.inet.tcp.sendspace=65536 - If you do not want to reboot the system please run the following commands login or su to root sysctl kern.ipc.nmbjumbo9=262144 sysctl net.inet.tcp.recvbuf_max=262144 sysctl net.inet.tcp.recvbuf_inc=16384 sysctl kern.ipc.nmbclusters=1000000 sysctl kern.ipc.maxsockbuf=2097152 sysctl net.inet.tcp.recvspace=131072 sysctl net.inet.tcp.sendbuf_max=262144 sysctl net.inet.tcp.sendspace=65536 6. Contacting Support Please feel free to contact your QLogic approved reseller or QLogic Technical Support at any phase of integration for assistance. QLogic Technical Support can be reached by the following methods: Web: http://support.qlogic.com E-mail: support@qlogic.com (c) Copyright 2013. All rights reserved worldwide. QLogic, the QLogic logo, and the Powered by QLogic logo are registered trademarks of QLogic Corporation. All other brand and product names are trademarks or registered trademarks of their respective owners.