summaryrefslogtreecommitdiffstats
path: root/sys/dev/cxgb
Commit message (Collapse)AuthorAgeFilesLines
* MFC r285340:dim2015-07-281-1/+1
| | | | | | | | | | Fix swapped copyin(9) arguments in cxgb's iwch_arm_cq() function. Detected by clang 3.7.0 with the warning: sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c:309:18: error: variable 'rptr' is uninitialized when used here [-Werror,-Wuninitialized] chp->cq.rptr = rptr; ^~~~
* MFC r275358 r275483 r276982 - Removing M_FLOWID by hps@hiren2015-04-241-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r275358: Start process of removing the use of the deprecated "M_FLOWID" flag from the FreeBSD network code. The flag is still kept around in the "sys/mbuf.h" header file, but does no longer have any users. Instead the "m_pkthdr.rsstype" field in the mbuf structure is now used to decide the meaning of the "m_pkthdr.flowid" field. To modify the "m_pkthdr.rsstype" field please use the existing "M_HASHTYPE_XXX" macros as defined in the "sys/mbuf.h" header file. This patch introduces new behaviour in the transmit direction. Previously network drivers checked if "M_FLOWID" was set in "m_flags" before using the "m_pkthdr.flowid" field. This check has now now been replaced by checking if "M_HASHTYPE_GET(m)" is different from "M_HASHTYPE_NONE". In the future more hashtypes will be added, for example hashtypes for hardware dedicated flows. "M_HASHTYPE_OPAQUE" indicates that the "m_pkthdr.flowid" value is valid and has no particular type. This change removes the need for an "if" statement in TCP transmit code checking for the presence of a valid flowid value. The "if" statement mentioned above is now a direct variable assignment which is then later checked by the respective network drivers like before. r275483: Remove M_FLOWID from SCTP code. r276982: Remove no longer used "M_FLOWID" flag from mbuf.h and update the netisr manpage. Note: The FreeBSD version has been bumped. Reviewed by: hps, tuexen Sponsored by: Limelight Networks
* MFC r278364:ngie2015-02-141-3/+3
| | | | | | | | | | | | | r278364: Remove kdb_backtrace extern; get the definition for kdb_backtrace from <sys/kdb.h> instead Fix whitespace in WARN_ON macro definition Reviewed by: np Differential Revision: https://reviews.freebsd.org/D1799 Sponsored by: EMC / Isilon Storage Division
* MFC r276959:np2015-01-188-33/+59
| | | | | | | | | | | | | cxgb: replace r273280 with a more comprehensive fix. Poll for link state when the link is down, even for interrupt capable PHYs. Allow PHYs to report a dubious "partial" link. If this state is seen 3 consecutive times (each check is ~1s apart) then reset the PHY. This is a workaround for a situation where repeatedly toggling the link from the peer gets the AEL2005 PHY into a state where it never establishes a PCS block lock even when everything is in order.
* MFC r273280:np2014-11-121-1/+3
| | | | cxgb(4): reset the PHY if it generates an interrupt for no apparent reason.
* MFC r263710, r273377, r273378, r273423 and r273455:hselasky2014-10-271-5/+5
| | | | | | | - De-vnet hash sizes and hash masks. - Fix multiple issues related to arguments passed to SYSCTL macros. Sponsored by: Mellanox Technologies
* MFC r270710 and r270821:hselasky2014-09-041-2/+0
| | | | | | | | | | | | | | | - Update the OFED Linux Emulation layer as a preparation for a hardware driver update from Mellanox Technologies. - Remove empty files from the OFED Linux Emulation layer. - Fix compile warnings related to printf() and the "%lld" and "%llx" format specifiers. - Add some missing 2-clause BSD copyrights. - Add "Mellanox Technologies, Ltd." to list of copyright holders. - Add some new compatibility files. - Fix order of uninit in the mlx4ib module to avoid crash at unload using the new module_exit_order() function. Sponsored by: Mellanox Technologies
* MFC r259897:dim2013-12-281-47/+0
| | | | | | In sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c, remove static functions mk_cpl_barrier_ulp(), mk_get_tcb_ulp() and mk_set_tcb_field_ulp(), which are all unused since r237263.
* MFC r259896:dim2013-12-281-7/+0
| | | | | In sys/dev/cxgb/common/cxgb_mc5.c, remove static function dbgi_wr_addr3(), which is unused since r167514.
* MFC r256302:np2013-10-101-0/+1
| | | | | | Add dependency on ibcore now that it has been modularized. Approved by: re (gjb)
* Update OFED to Linux 3.7 and update Mellanox drivers.alfred2013-09-291-2/+3
| | | | | | | | | | | | | | | | | | | | | | | Update the OFED Infiniband core to the version supplied in Linux version 3.7. The update to OFED is nearly all additional defines and functions with the exception of the addition of additional parameters to ib_register_device() and the reg_user_mr callback. In addition the ibcore (Infiniband core) and ipoib (IP over Infiniband) have both been made into completely loadable modules to facilitate testing of the OFED stack in FreeBSD. Finally the Mellanox Infiniband drivers are now updated to the latest version shipping with Linux 3.7. Submitted by: Mellanox FreeBSD driver team: Oded Shanoon (odeds mellanox.com), Meny Yossefi (menyy mellanox.com), Orit Moskovich (oritm mellanox.com) Approved by: re
* Restructure the mbuf pkthdr to make it fit for upcoming capabilities andandre2013-08-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Remove unnecessary setup of the m->pkthdr.header pointer.andre2013-08-241-1/+0
| | | | Sponsored by: The FreeBSD Foundation
* Whitespace cleanup.np2013-08-231-2/+1
|
* Remove unnecessary #include's.alc2013-06-021-5/+0
|
* Add dependencies on the firmware, which allows the loading of the cxgbkib2013-05-161-0/+1
| | | | | | | and cxgbe modules. Reviewed and approved by: np MFC after: 1 week
* - Correct mispellings of the word occurrencegabor2013-04-171-1/+1
| | | | Submitted by: Christoph Mallon <christoph.mallon@gmx.de> (via private mail)
* Mechanically substitute flags from historic mbuf allocator withglebius2012-12-043-6/+6
| | | | malloc(9) flags in sys/dev.
* Initialize the response queue mutex a bit earlier to avoid a panic thatnp2012-10-251-5/+5
| | | | | | | | occurs if t3_sge_alloc_qset fails and then t3_free_qset attempts to destroy an uninitialized mutex. Submitted by: Vijay Singh <vijju dot singh at gmail> MFC after: 3 days
* remove duplicate semicolons where possible.eadler2012-10-221-1/+1
| | | | | Approved by: cperciva MFC after: 1 week
* Prefer __containerof() over __member2struct().ed2012-10-191-1/+2
| | | | | The former works better with qualifiers, but also properly type checks the input pointer.
* Revert previous commit...kevlo2012-10-103-7/+7
| | | | Pointyhat to: kevlo (myself)
* Prefer NULL over 0 for pointerskevlo2012-10-093-7/+7
|
* Align the PCI Express #defines with the style used for the PCI-Xgavin2012-09-182-7/+7
| | | | | | | | | | | | | | | | | #defines. This also has the advantage that it makes the names more compact, iand also allows us to correct the non-uniform naming of the PCIM_LINK_* defines, making them all consistent amongst themselves. This is a mostly mechanical rename: s/PCIR_EXPRESS_/PCIER_/g s/PCIM_EXP_/PCIEM_/g s/PCIM_LINK_/PCIEM_LINK_/g When this is MFC'd, #defines will be added for the old names to assist out-of-tree drivers. Discussed with: jhb MFC after: 1 week
* Attach interrupt handlers during attach instead of during the first timejhb2012-08-301-5/+5
| | | | | | | | | | | | the interface is brought up. Without this, the boot time interrupt round-robin assignment does not think the allocated interrupt resources are active and leaves them assigned to CPU 0. While here, add descriptive tags to each interrupt handler when MSI-X is used. Reviewed by: np MFC after: 1 week
* Deal with the case where a syncache entry added by the TOE driver isnp2012-08-212-0/+12
| | | | | | evicted from the syncache but a later syncache_expand succeeds because of syncookies. The TOE driver has to resort to more direct means to install its hooks in the socket in this case.
* Correctly handle the case where an inp has already been dropped by the timenp2012-08-211-13/+9
| | | | | | the TOE driver reports that an active open failed. toe_connect_failed is supposed to handle this but it should be provided the inpcb instead of the tcpcb which may no longer be around.
* In cxgb(4), in function iwch_reregister_phys_mem(), initialize thedim2012-08-061-1/+1
| | | | | | | | | 'npages' variable to zero, to avoid using it uninitialized in certain cases. Found by: clang Reviewed by: np MFC after: 1 week
* cxgb(4): IPv6 rx/tx hw checksum, IPv6 TSO and LRO too.np2012-06-303-44/+74
| | | | (Some parts already worked, this makes it complete).
* - Updated TOE support in the kernel.np2012-06-1943-11348/+4834
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Stateful TCP offload drivers for Terminator 3 and 4 (T3 and T4) ASICs. These are available as t3_tom and t4_tom modules that augment cxgb(4) and cxgbe(4) respectively. The cxgb/cxgbe drivers continue to work as usual with or without these extra features. - iWARP driver for Terminator 3 ASIC (kernel verbs). T4 iWARP in the works and will follow soon. Build-tested with make universe. 30s overview ============ What interfaces support TCP offload? Look for TOE4 and/or TOE6 in the capabilities of an interface: # ifconfig -m | grep TOE Enable/disable TCP offload on an interface (just like any other ifnet capability): # ifconfig cxgbe0 toe # ifconfig cxgbe0 -toe Which connections are offloaded? Look for toe4 and/or toe6 in the output of netstat and sockstat: # netstat -np tcp | grep toe # sockstat -46c | grep toe Reviewed by: bz, gnn Sponsored by: Chelsio communications. MFC after: ~3 months (after 9.1, and after ensuring MFC is feasible)
* MFp4 bz_ipv6_fast:bz2012-05-251-6/+10
| | | | | | | | | | | | Allow LRO to work on IPv6 as well. Fix the module Makefile to at least properly inlcude opt_inet6.h and allow builds without INET or INET6. Sponsored by: The FreeBSD Foundation Sponsored by: iXsystems Reviewed by: gnn (as part of the whole) MFC After: 3 days
* MFp4 bz_ipv6_fast:bz2012-05-241-0/+1
| | | | | | | | | | | | | | | | | | | | | | Significantly update tcp_lro for mostly two things: 1) introduce basic support for IPv6 without extension headers. 2) try hard to also get the incremental checksum updates right, especially also in the IPv4 case for the IP and TCP header. Move variables around for better locality, factor things out into functions, allow checksum updates to be compiled out, ... Leave a few comments on further things to look at in the future, though that is not the full list. Update drivers with appropriate #includes as needed for IPv6 data type in LRO. Sponsored by: The FreeBSD Foundation Sponsored by: iXsystems Reviewed by: gnn (as part of the whole) MFC After: 3 days
* Convert a number of drivers to obtaining their parent DMA tag from theirscottl2012-03-121-1/+1
| | | | PCI device attachment.
* Add IPv6 TSO (including TSO+VLAN) support to cxgb(4).np2012-02-092-14/+34
| | | | | | If an IPv6 packet has extension headers the kernel needs to deal with it itself. For the rest it can set various CSUM_XXX flags and the driver will act on them.
* Allocate the BAR for userspace doorbells after the is_offload checknp2012-02-081-9/+11
| | | | | | is functional. MFC after: 3 days
* Remove if_start from cxgb and cxgbe.np2012-02-073-29/+2
| | | | | Submitted by: jhb MFC after: 3 days
* Fix return value of function.np2011-12-231-1/+1
| | | | Submitted by: Dan McGregor <dan dot mcgregor at usask dot ca>
* - There's no need to overwrite the default device method with the defaultmarius2011-11-221-5/+1
| | | | | | | | | | one. Interestingly, these are actually the default for quite some time (bus_generic_driver_added(9) since r52045 and bus_generic_print_child(9) since r52045) but even recently added device drivers do this unnecessarily. Discussed with: jhb, marcel - While at it, use DEVMETHOD_END. Discussed with: jhb - Also while at it, use __FBSDID.
* Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.ed2011-11-071-1/+1
| | | | | | The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static.
* Update T3 firmware to 7.11.0np2011-03-252-1493/+1527
| | | | | | | | | | | | | | | | Changes since 7.8.0 (from the official changelog): - Fixed sporadic interrupt generation for associated CQ when processing a local invalidate work request - Changes to core scheduling to avoid starving requests from the host under heavy RDMA Read Request load (e.g. packets to the wire) - Programmed the tp tx resource limiter in function of the traffic (only affects iWarp) - Increased the egress NIC gather list length from 36 to 46 entries MFC after: 1 week
* t3_free_sge_resources should be given the number of qsets it needs to free.np2011-03-243-12/+9
| | | | MFC after: 1 week
* T3C initialization should setup the parity fence too.np2011-03-241-2/+3
| | | | MFC after: 1 week
* Do a sweep of the tree replacing calls to pci_find_extcap() with calls tojhb2011-03-231-1/+1
| | | | pci_find_cap() instead.
* Fix typos - remove duplicate "the".brucec2011-02-211-2/+2
| | | | | | PR: bin/154928 Submitted by: Eitan Adler <lists at eitanadler.com> MFC after: 3 days
* Explicitly wire the user buffer rather than doing it implicitly inmdf2011-01-271-2/+9
| | | | | | | | sbuf_new_for_sysctl(9). This allows using an sbuf with a SYSCTL_OUT drain for extremely large amounts of data where the caller knows that appropriate references are held, and sleeping is not an issue. Inspired by: rwatson
* Introduce signed and unsigned version of CTLTYPE_QUAD, renamingmdf2011-01-191-2/+2
| | | | existing uses. Rename sysctl_handle_quad() to sysctl_handle_64().
* sysctl(8) should use the CTLTYPE to determine the type of data whenmdf2011-01-191-2/+2
| | | | | | | | | | | reading. (This was already done for writing to a sysctl). This requires all SYSCTL setups to specify a type. Most of them are now checked at compile-time. Remove SYSCTL_*X* sysctl additions as the print being in hex should be controlled by the -x flag to sysctl(8). Succested by: bde
* sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly.mdf2011-01-123-24/+24
| | | | Commit the cxgb driver piece.
* Introduce and use a new VM interface for temporarily pinning pages. Thisalc2010-12-254-198/+9
| | | | | | | new interface replaces the combined use of vm_fault_quick() and pmap_extract_and_hold() throughout the kernel. In collaboration with: kib@
* The local variable "rv" is still required by vm_fault_hold_user_pages().alc2010-12-201-3/+3
|
OpenPOWER on IntegriCloud