aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ixl/ixl_txrx.c
Commit message (Collapse)AuthorAgeFilesLines
* ixl(4): Report RX errors as sum of all RX error countersKrzysztof Galazka2021-03-031-7/+9
| | | | | | | | | | | | | | | | | | HW keeps track of RX errors using several counters, each for specific type of errors. Report RX errors to OS as sum of all those counters: CRC errors, illegal bytes, checksum, length, undersize, fragment, oversize and jabber errors. There is no HW counter for frames with invalid L3/L4 checksums so add a SW one. Also add a "rx_errors" sysctl with a copy of netstat IERRORS counter value to make it easier accessible from scripts. Reviewed By: erj Tested By: gowtham.kumar.ks@intel.com Sponsored By: Intel Corporation Differential Revision: https://reviews.freebsd.org/D27639
* ixl(4): Add FW recovery mode support and other thingsEric Joyner2020-06-091-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the iflib version of ixl driver based on the OOT version ixl-1.11.29. Major changes: - Extract iflib specific functions from ixl_pf_main.c to ixl_pf_iflib.c to simplify code sharing between legacy and iflib version of driver - Add support for most recent FW API version (1.10), which extends FW LLDP Agent control by user to X722 devices - Improve handling of device global reset - Add support for the FW recovery mode - Use virtchnl function to validate virtual channel messages instead of using separate checks - Fix MAC/VLAN filters accounting Submitted by: Krzysztof Galazka <krzysztof.galazka@intel.com> Reviewed by: erj@ Tested by: Jeffrey Pieper <jeffrey.e.pieper@intel.com> MFC after: 1 week Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D24564 Notes: svn path=/head/; revision=361992
* Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (15 of many)Pawel Biernacki2020-02-241-3/+5
| | | | | | | | | | | | r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Notes: svn path=/head/; revision=358286
* intel iflib drivers: correct initialization of tx_cidx_processedEric Joyner2019-01-241-9/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From Jake: In r341156 ("Fix first-packet completion", 2018-11-28) a hack to work around a delta calculation determining how many descriptors were used was added to ixl_isc_tx_credits_update_dwb. The same fix was also applied to the em and igb drivers in r340310, and to ix in r341156. The hack checked the case where prev and cur were equal, and then added one. This works, because by the time we do the delta check, we already know there is at least one packet available, so the delta should be at least one. However, it's not a complete fix, and as indicated by the comment is really a hack to work around the real bug. The real problem is that the first time that we transmit a packet, tx_cidx_processed will be set to point to the start of the ring. Ultimately, the credits_update function expects it to point to the *last* descriptor that was processed. Since we haven't yet processed any descriptors, pointing it to 0 results in this incorrect calculation. Fix the initialization code to have it point to the end of the ring instead. One way to think about this, is that we are setting the value to be one prior to the first available descriptor. Doing so, corrects the delta calculation in all cases. The original fix only works if the first packet has exactly one descriptor. Otherwise, we will report 1 less than the correct value. As part of this fix, also update the MPASS assertions to match the real expectations. First, ensure that prev is not equal to cur, since this should never happen. Second, remove the assertion about prev==0 || delta != 0. It looks like that originated from when the em driver was converted to iflib. It seems like it was supposed to ensure that delta was non-zero. However, because we originally returned 0 delta for the first calculation, the "prev == 0" was tacked on. Instead, replace this with a check that delta is greater than zero, after the correction necessary when the ring pointers wrap around. This new solution should fix the same bug as r341156 did, but in a more robust way. Submitted by: Jacob Keller <jacob.e.keller@intel.com> Reviewed by: shurd@ Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D18545 Notes: svn path=/head/; revision=343369
* Fix first-packet completionStephen Hurd2018-11-281-0/+6
| | | | | | | | | | | | | | | | | | | The first packet after the ring is initialized was never completed as isc_txd_credits_update() would not include it in the count of completed packets. This caused netmap to never complete a batch. See PR 233022 for more details. This is the same fix as the r340310 for e1000 PR: 233607 Reported by: lev Reviewed by: lev MFC after: 3 days Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D18368 Notes: svn path=/head/; revision=341156
* ixl/iavf(4): Fix TSO offloads when TXCSUM is disabledEric Joyner2018-11-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From Jake: The iflib stack does not disable TSO automatically when TXCSUM is disabled, instead assuming that the driver will correctly handle TSOs even when CSUM_IP is not set. This results in iflib calling ixl_isc_txd_encap with packets which have CSUM_IP_TSO, but do not have CSUM_IP or CSUM_IP_TCP set. Because of this, ixl_tx_setup_offload will not setup the IPv4 checksum offloading. This results in bad TSO packets being sent if a user disables TXCSUM without disabling TSO. Fix this by updating the ixl_tx_setup_offload function to check both CSUM_IP and CSUM_IP_TSO when deciding whether to enable IPv4 checksums. Once this is corrected, another issue for TSO packets is revealed. The driver sets IFLIB_NEED_ZERO_CSUM in order to enable a work around that causes the ip->sum field to be zero'd. This is necessary for ixl hardware to correctly perform TSOs. However, if TXCSUM is disabled, then the work around is not enabled, as CSUM_IP will not be set when the iflib stack checks to see if it should clear the sum field. Fix this by adding IFLIB_TSO_INIT_IP to the iflib flags for the iavf and ixl interface files. It is uncertain if the hardware needs IFLIB_NEED_ZERO_CSUM for any other case besides TSO, so leave that flag assigned. It may be worth investigating to see if this work around flag could be disabled in a future change. Once both of these changes are made, the ixl driver should correctly offload TSO packets when TSO4 offload is enabled, regardless of whether TXCSUM is enabled or disabled. Submitted by: Jacob Keller <jacob.e.keller@intel.com> Reviewed by: erj@, shurd@ MFC after: 0 days Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D17900 Notes: svn path=/head/; revision=340256
* ixl/iavf(4): Change ixlv to iavf and update it to use iflib(9)Eric Joyner2018-10-121-32/+217
| | | | | | | | | | | | | | | | | | | | | | | | | Finishes the conversion of the 40Gb Intel Ethernet drivers to iflib(9) for FreeBSD 12.0, and fixes numerous bugs in both ixl(4) and iavf(4). This commit also re-adds the VF driver to GENERIC since it now compiles and functions. The VF driver name was changed from ixlv(4) to iavf(4) because the VF driver is now intended to be used with future products, not just with Fortville/Fort Park VFs. A man page update that documents these drivers is forthcoming in a separate commit. Reviewed by: sbruno@, kbowling@ Tested by: jeffrey.e.pieper@intel.com Approved by: re (gjb@) Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D16429 Notes: svn path=/head/; revision=339338
* As suggested by a comment in ixl_initialize_vsi(), use if_getcapenable(9)Marius Strobl2018-07-151-1/+1
| | | | | | | | | | instead of directly interrogating ifp->if_capenable. Reviewed by: erj (ixl_initialize_vsi()) Differential Revision: https://reviews.freebsd.org/D15720 (part of) Notes: svn path=/head/; revision=336309
* ixl(4): Update version number to 2.0.0-kEric Joyner2018-06-181-1/+1
| | | | | | | | | | And update copyrights to current year. MFC after: 1 month Sponsored by: Intel Corporation Notes: svn path=/head/; revision=335339
* ixl(4): Update to use iflibEric Joyner2018-06-181-1798/+428
| | | | | | | | | | | | | | | | | | | | | | | Update the driver to use iflib in order to bring performance, maintainability, and (hopefully) stability benefits to the driver. The driver currently isn't completely ported; features that are missing: - VF driver (ixlv) - SR-IOV host support - RDMA support The plan is to have these re-added to the driver before the next FreeBSD release. Reviewed by: gallatin@ Contributions by: gallatin@, mmacy@, krzysztof.galazka@intel.com Tested by: jeffrey.e.pieper@intel.com MFC after: 1 month Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D15577 Notes: svn path=/head/; revision=335338
* ixl(4): Update to 1.9.9-kEric Joyner2018-05-011-145/+445
| | | | | | | | | | | | | | | | | | | | | | Refresh upstream driver before impending conversion to iflib. Major changes: - Support for descriptor writeback mode (required by ixlv(4) for AVF support) - Ability to disable firmware LLDP agent by user (PR 221530) - Fix for TX queue hang when using TSO (PR 221919) - Separate descriptor ring sizes for TX and RX rings PR: 221530, 221919 Submitted by: Krzysztof Galazka <krzysztof.galazka@intel.com> Reviewed by: #IntelNetworking MFC after: 1 day Relnotes: Yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D14985 Notes: svn path=/head/; revision=333149
* netmap: align codebase to the current upstream (commit id 3fb001303718146)Vincenzo Maffione2018-04-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changelist: - Turn tx_rings and rx_rings arrays into arrays of pointers to kring structs. This patch includes fixes for ixv, ixl, ix, re, cxgbe, iflib, vtnet and ptnet drivers to cope with the change. - Generalize the nm_config() callback to accept a struct containing many parameters. - Introduce NKR_FAKERING to support buffers sharing (used for netmap pipes) - Improved API for external VALE modules. - Various bug fixes and improvements to the netmap memory allocator, including support for externally (userspace) allocated memory. - Refactoring of netmap pipes: now linked rings share the same netmap buffers, with a separate set of kring pointers (rhead, rcur, rtail). Buffer swapping does not need to happen anymore. - Large refactoring of the control API towards an extensible solution; the goal is to allow the addition of more commands and extension of existing ones (with new options) without the need of hacks or the risk of running out of configuration space. A new NIOCCTRL ioctl has been added to handle all the requests of the new control API, which cover all the functionalities so far supported. The netmap API bumps from 11 to 12 with this patch. Full backward compatibility is provided for the old control command (NIOCREGIF), by means of a new netmap_legacy module. Many parts of the old netmap.h header has now been moved to netmap_legacy.h (included by netmap.h). Approved by: hrs (mentor) Notes: svn path=/head/; revision=332423
* ixl: Fix mbuf hash type settings.Sepherosa Ziehau2017-09-271-26/+12
| | | | | | | | | | | | | | | | | | | | | | IPV6_EXs in RSS never mean fragment. They mean: "- Home address from the home address option in the IPv6 destination options header. If the extension header is not present, use the Source IPv6 Address. - IPv6 address that is contained in the Routing-Header-Type-2 from the associated extension header. If the extension header is not present, use the Destination IPv6 Address." UDP_IPV4_EX is an invalid RSS hash type, which will be removed. Quoted from: https://docs.microsoft.com/en-us/windows-hardware/drivers/network/rss-hashing-types#ndishashipv6ex Reviewed by: erj Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D12450 Notes: svn path=/head/; revision=324051
* Drop IXL RX lock during TCP_LRO, fixes LOR mahem while holding the RXSean Bruno2017-07-271-3/+4
| | | | | | | | | | | | queue lock when the uppoer stack is called inside TCP_LRO Submitted by: Kevin Bowling <kevin.bowling@kev009.com> Reviewed by: erj Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D11724 Notes: svn path=/head/; revision=321631
* ixl: gcc build errorsRyan Libby2017-07-141-2/+0
| | | | | | | | | | | | | | Fix minor -Werror issues when building with gcc from -Wredundant-decls, -Wunused, -Wbool-operations. Also ensure the M_IXL malloc type is only defined once. Reviewed by: efj Approved by: markj (mentor) Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D11414 Notes: svn path=/head/; revision=320977
* ixl(4)/ixlv(4): Stop leaking every busdma entry in receive pathEric Joyner2017-07-131-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | From Brett: In short, busdma maps for received packets were not being unloaded in the interrupt handler before the packets were passed up the network stack. The fix was to add a busdma sync and unload for the two receive maps. This bug is significant for certain busdma providers, for example IOMMUs, where not unloading the maps means that 1) the IOMMU mappings that allow the NIC to DMA the received packets into host memory stay open indefinitely, potentially violating a desired security policy, and 2) resources such as device address space addresses and host memory for bookkeeping are never freed. Without an IOMMU or bounce buffering enabled for the ixl device, I don't think adding these calls will have any significant performance impact. With the IOMMU enabled, I have noticed a performance impact on the receive side, which is expected. Submitted by: Brett Gutstein <bgutstein@rice.edu> Reviewed by: erj@ MFC after: 1 week Notes: svn path=/head/; revision=320972
* ixl(4)/ixlv(4): Fix some busdma tags and improper map NULL.Eric Joyner2017-06-101-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Description from Brett: "The busdma tags used to create mappings for the tx and rx rings did not have the device's tag as parents, meaning that they did not respect the device's busdma properties. The other tags used in the driver had their parents set appropriately. Also, the dma maps for each buffer in ixl_txeof() were being NULLed after being unloaded, which is an error because those maps are then reused without being recreated (I believe this also leaked resources since the maps were not destroyed). Simply removing the line that sets the maps to NULL gives the desired behavior. There does not seem to be a similar problem with ixl_rxeof(). Functions to free the tx and rx rings also NULL out the dma maps for each buffer, but this seems okay because the maps are destroyed and not reused in this case. With these fixes, my ixl card seems to be working with the IOMMU enabled." Submitted by: Brett Gutstein <bgutstein@rice.edu> Reviewed by: erj Approved by: Alan Cox <alc@rice.edu> MFC after: 1 week Notes: svn path=/head/; revision=319797
* ixl(4): Update to 1.7.12-kEric Joyner2017-02-101-38/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refresh upstream driver before impending conversion to iflib. Major new features: - Support for Fortville-based 25G adapters - Support for I2C reads/writes (To prevent getting or sending corrupt data, you should set dev.ixl.0.debug.disable_fw_link_management=1 when using I2C [this will disable link!], then set it to 0 when done. The driver implements the SIOCGI2C ioctl, so ifconfig -v works for reading I2C data, but there are read_i2c and write_i2c sysctls under the .debug sysctl tree [the latter being useful for upper page support in QSFP+]). - Addition of an iWARP client interface (so the future iWARP driver for X722 devices can communicate with the base driver). - Compiling this option in is enabled by default, with "options IXL_IW" in GENERIC. Differential Revision: https://reviews.freebsd.org/D9227 Reviewed by: sbruno MFC after: 2 weeks Sponsored by: Intel Corporation Notes: svn path=/head/; revision=313497
* Fix linker warnings (errors on gcc) that resulted from r304510.Eric Joyner2016-09-011-0/+1
| | | | | | | | | | | The variables that are extern in the netmap header file should be defined in ixl_txrx.c (the file that is included in both ixl(4)/ixlv(4), not in the main driver source files. Reported by: ed@, dim@, ngie@ Notes: svn path=/head/; revision=305168
* ixl(4): Update to ixl-1.6.6-k.Sean Bruno2016-08-071-25/+39
| | | | | | | | | | | Submitted by: erj Reviewed by: jeffrey.e.pieper@intel.com MFC after: 3 days Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D7391 Notes: svn path=/head/; revision=303816
* net: Use M_HASHTYPE_OPAQUE_HASH if the mbuf flowid has hash propertiesSepherosa Ziehau2016-06-071-3/+3
| | | | | | | | | Reviewed by: hps, erj, tuexen Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D6688 Notes: svn path=/head/; revision=301538
* ixl: Update to 1.4.24-k.Eric Joyner2016-05-121-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes by author: Eric Joyner ixl: Fix compile error when IXL_DEBUG is defined. Eric Joyner ixl: Fix taskqueues created in init() not being freed in stop(). Eric Joyner ixl: Add additional debug sysctls, for Tx and Rx queue stats. Eric Joyner ixl: Enable dynamic itr by default. Eric Joyner ixl: Edit spacing, comments, function signatures (to conform to style(9)). Eric Joyner ixl: Check for errors when tearing down msix interrupts. Eric Joyner ixl: Remove unnecessary register reads/writes. Eric Joyner ixl: Remove admin queue interrupt enable from general interrupt enable. Eric Joyner ixl: Update switch config after teardown/reset flow in init(). Eric Joyner ixl: Add additional admin queue error code output to admin queue call errors. Eric Joyner ixl: Don't destroy i40e spinlock if it's already uninitialized. Shannon Nelson i40e-shared: clean event descriptor before use Anjali Singhai Jain i40e-shared: When in promisc mode apply promisc mode to Tx Traffic as well Kevin Scott i40e_shared: Increase timeout when checking GLGEN_RSTAT_DEVSTATE bit Eric Joyner ixlv: Fix IXL_DEBUG compile issue. Eric Joyner ixlv: Attempt to fix panic/other issues when rapidly unloading/loading driver. Eric Joyner ixl/ixlv: Revert m_collapse() in ixl_xmit() to m_defrag(). Deepthi Kavalur i40e_shared: Trace logging HW capabilities Eric Joyner ixlv: Correctly unlock/relock around init() call in vc_completion(). Eric Joyner ixl: Stop preventing changing flow control mode for CR4 media. Eric Joyner ixl: Set IPv6 TCP offload flag when doing TSO. Differential Revision: https://reviews.freebsd.org/D6211 Reviewed by: sbruno, kmacy, jeffrey.e.pieper@intel.com MFC after: 2 weeks Sponsored by: Intel Corporation Notes: svn path=/head/; revision=299554
* ixl: Update to 1.4.5-k.Eric Joyner2016-05-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | This first update will revert some upstream changes; forthcoming updates will reinstate them. Changes, by author: Anjali Singhai Jain i40e-shared: Add WB_ON_ITR offload support Shannon Nelson i40e-shared: fix phy_types bitmap type Kevin Scott i40e-shared: Store off PHY capabilities Shannon Nelson i40e-shared: fix byteswap of phy_type Jingjing Wu i40e-shared: Fix compile issue related to const string Greg Bowers i40e-shared: Add AQ defines for non-willing Apps (DCB) Greg Bowers i40e-shared: Support for non-willing Apps (DCB) Shannon Nelson i40e-shared: use upper-32 bit macro for address Shannon Nelson i40e-shared: grab the AQ spinlocks before clearing registers Eric Joyner ixl: Properly strip out X722_SUPPORT (temporarily). Eric Joyner ixl: Allow Fort Pond devices to advertise 100M in set_advertise sysctl. Differential Revision: https://reviews.freebsd.org/D6211 Reviewed by: sbruno, kmacy, jeffrey.e.pieper@intel.com MFC after: 2 weeks Sponsored by: Intel Corporation Notes: svn path=/head/; revision=299545
* tcp/lro: Use tcp_lro_flush_all in device drivers to avoid code duplicationSepherosa Ziehau2016-04-011-5/+1
| | | | | | | | | | | | And factor out tcp_lro_rx_done, which deduplicates the same logic with netinet/tcp_lro.c Reviewed by: gallatin (1st version), hps, zbb, np, Dexuan Cui <decui microsoft com> Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5725 Notes: svn path=/head/; revision=297482
* ixl(4)/ixlv(4): Remove a couple unnecessary register writes/flushes.Eric Joyner2016-02-241-1/+0
| | | | | | | | | | | | The one in ixl_xmit() has brought up to us as being unnecessary at least a couple times. Differential Revision: https://reviews.freebsd.org/D5208 Tested by: jeffrey.e.pieper@intel.com Sponsored by: Intel Corporation Notes: svn path=/head/; revision=295947
* ixl(4)/ixlv(4): Revert m_collapse() in ixl_xmit() to m_defrag().Eric Joyner2016-02-191-1/+1
| | | | | | | | | | | | | The m_collapse() call would fail when transmitting medium-sized packets when the interface mtu was set to 9000, so revert back to m_defrag(), which does not fail. Differential Revision: https://reviews.freebsd.org/D5207 Tested by: jeffrey.e.pieper@intel.com Sponsored by: Intel Corporation Notes: svn path=/head/; revision=295831
* Remove executable property from several ixl(4) source files.John Baldwin2015-05-191-0/+0
| | | | | | | | Differential Revision: https://reviews.freebsd.org/D2583 Reviewed by: erj Notes: svn path=/head/; revision=283119
* Replace the DEV_NETMAP code that accidentally got removed in theJack F Vogel2015-03-101-1/+67
| | | | | | | | | last commit. MFC after: 1 week Notes: svn path=/head/; revision=279860
* This delta introduces SRIOV support, thanks to Ryan Stone of Sandvine forJack F Vogel2015-03-101-71/+4
| | | | | | | | | | | adding this major feature to the driver. Secondly, this updates the base driver with new 20G device support, and with the new firmware levels some changes to link handling and initialization were required. MFC after: 1 week Notes: svn path=/head/; revision=279858
* Add native netmap support to ixl.Luigi Rizzo2015-02-241-0/+70
| | | | | | | | | | | | | | | | Preliminary tests indicate 32 Mpps on tx, 24 Mpps on rx with source and receiver on two different ports of the same 40G card. Optimizations are likely possible. The code follows closely the one for ixgbe so i do not expect stability issues. Hardware kindly supplied by Intel. Reviewed by: Jack Vogel MFC after: 1 week Notes: svn path=/head/; revision=279232
* Bring the XL710 drivers up to the SW3 release level.Jack F Vogel2015-02-201-3/+6
| | | | | | | MFC after: 1 week Notes: svn path=/head/; revision=279033
* Refactor / restructure the RSS code into generic, IPv4 and IPv6 specificAdrian Chadd2015-01-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | bits. The motivation here is to eventually teach netisr and potentially other networking subsystems a bit more about how RSS work queues / buckets are configured so things have a hope of auto-configuring in the future. * net/rss_config.[ch] takes care of the generic bits for doing configuration, hash function selection, etc; * topelitz.[ch] is now in net/ rather than netinet/; * (and would be in libkern if it didn't directly include RSS_KEYSIZE; that's a later thing to fix up.) * netinet/in_rss.[ch] now just contains the IPv4 specific methods; * and netinet/in6_rss.[ch] now just contains the IPv6 specific methods. This should have no functional impact on anyone currently using the RSS support. Differential Revision: D1383 Reviewed by: gnn, jfv (intel driver bits) Notes: svn path=/head/; revision=277331
* Some RSS issues discovered by Adrian, missing header, variableJack F Vogel2015-01-161-2/+6
| | | | | | | | | names fat fingered, incorrect hash config setup. Thanks :) MFC after: 1 week Notes: svn path=/head/; revision=277262
* Cleanup some bogus code in the RSS config, and add the includeJack F Vogel2015-01-131-0/+1
| | | | | | | | | for the rss option file. And bump the version. MFC after: 1 week Notes: svn path=/head/; revision=277151
* Complete the RX side RSS code: parse the encoded portion of the RXJack F Vogel2015-01-131-2/+62
| | | | | | | | | descriptor to determine the correct hash type. MFC after:1 week Notes: svn path=/head/; revision=277143
* Move the vsi variable outside of the #ifdef block to unbreak NOIP kernelsBjoern A. Zeeb2015-01-131-1/+1
| | | | | | | | | | after r277084. MFC after: 6 days X-MFC with: r277084 Notes: svn path=/head/; revision=277130
* Missing RSS support added, this fixes the build, but the codeJack F Vogel2015-01-121-7/+29
| | | | | | | | in the RX side was complicated by recent changes and will need some further tweaking. Notes: svn path=/head/; revision=277088
* Intel I40E driver updates:Jack F Vogel2015-01-121-4/+4
| | | | | | | | | | | | | | | | | | if_ixl to version 1.3.0, if_ixlv to version 1.2.0 - Major change in both drivers is to add RSS support - In ixl fix some interface speed related issues, dual speed was not changing correctly, KR/X media was not displaying correctly (this has a workaround until a more robust media handling is in place) - Add a warning when using Dell NPAR and the speed is less than 10G - Wrap a queue hung message in IXL_DEBUG, as it is non-fatal, and without tuning can display excessively MFC after: 1 week Notes: svn path=/head/; revision=277084
* Start process of removing the use of the deprecated "M_FLOWID" flagHans Petter Selasky2014-12-011-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Additional notes: - The SCTP code changes will be committed as a separate patch. - Removal of the "M_FLOWID" flag will also be done separately. - The FreeBSD version has been bumped. MFC after: 1 month Sponsored by: Mellanox Technologies Notes: svn path=/head/; revision=275358
* After r274205 unbreak NOIP kernels. vsi is now also used outsideBjoern A. Zeeb2014-11-071-1/+1
| | | | | | | | | | address family specific blocks so move it out from under the condition. MFC after: 6 days X-MFC with: r274205 Notes: svn path=/head/; revision=274228
* Update the Intel i40e drivers, ixl version 1.2.8, ixlv version 1.1.18Jack F Vogel2014-11-061-0/+11
| | | | | | | | | | | | | | | | | | | | | -Improved VF stability, thanks to changes from Ryan Stone, and Juniper. - RSS fixes in the ixlv driver - link detection in the ixlv driver - New sysctl's added in ixl and ixlv - reset timeout increased for ixlv - stability fixes in detach - correct media reporting - Coverity warnings fixed - Many small bug fixes - VF Makefile modified - nvm shared code needed - remove unused sleep channels in ixlv_sc struct Submitted by: Eric Joyner (committed by jfv) MFC after: 1 week Notes: svn path=/head/; revision=274205
* Convert driver to if_get_counter method.Gleb Smirnoff2014-09-271-5/+40
| | | | | | | | Submitted by: rstone Reviewed by: Eric Joyner <ricera10 gmail.com> Notes: svn path=/head/; revision=272227
* Hide LRO code under #ifdef INET/INET6 to allow NOIP kernel to compile.Bjoern A. Zeeb2014-09-211-1/+12
| | | | | | | | | | While the code comments indicate that LRO is currently only supported for IPv4/TCP, we'll still compile it in for IPv6. MFC after: 3 days Notes: svn path=/head/; revision=271913
* Properly place #ifdef INET and #ifdef INET6 around variable declarationsBjoern A. Zeeb2014-08-291-6/+8
| | | | | | | | | | | | | | | and code to make the code compile. Give the function seems to be slightly mixed with csum and tso, make it non-fatal if we try to setup thing on a kernel without IP support. In practise the printf on the console will probably still make your machine unhappy. MFC after: 3 days X-MFC with: r270755 Notes: svn path=/head/; revision=270807
* Fix the NOINET and NOINET6 builds.Jack F Vogel2014-08-291-0/+4
| | | | | | | MFC after:3 days Notes: svn path=/head/; revision=270775
* Remove the DEV_NETMAP code from the ixl drivers, it was a placeholderJack F Vogel2014-08-281-94/+8
| | | | | | | | | and not yet ready to be defined, and its causing build errors. MFC after: 3 days Notes: svn path=/head/; revision=270773
* Update to the Intel Base driver for the Intel XL710 Ethernet Controller FamilyJack F Vogel2014-08-221-0/+1696
- It was decided to change the driver name to if_ixl for FreeBSD - This release adds the VF Driver to the tree, it can be built into the kernel or as the if_ixlv module - The VF driver is independent for the first time, this will be desireable when full SRIOV capability is added to the OS. - Thanks to my new coworker Eric Joyner for his superb work in both the core and vf driver code. Enjoy everyone! Submitted by: jack.vogel@intel.com and eric.joyner@intel.com MFC after: 3 days (hoping to make 10.1) Notes: svn path=/head/; revision=270346