summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci/if_ix.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove SIOCSIFMTU handling and misuse of if_mtu values for MRUmikeb2014-11-121-37/+11
| | | | | | | | | | | | Since there's now no way to select maximum receive unit size the hardware is programmed to accept frame sizes up to 9216 which is now the maximum (down from 15.5K since this is supposed to work in all advanced configurations and gives slightly better flow control watermark ranges) and split all frames larger 2K into multiple fragments (code was already there but wasn't enabled). Tested on 82599 (SFP+) and X540 (10GBaseT). With input from dlg@.
* add an additional error check into the ixgbe_handle_msfmikeb2014-11-101-3/+6
|
* remove pointless timeout_del/add dance in the interrupt handlermikeb2014-11-101-5/+2
|
* Inadvertent ampersand has made the check to always yield truthmikeb2014-11-101-2/+2
| | | | | This change fixes up SFP+ module detection during "ifconfig up" after the machine has been booted without the modules plugged in.
* Gather full statistics only when IX_DEBUG is definedmikeb2014-11-101-3/+7
| | | | | | | | | | | | since most of them can't be retrieved otherwise. This comes with a slight but measurable performance increase as well. Also since the hardware has a single counter for missed packets including those caused by the insufficient DMA buffers available, this makes it hard to decipher actual errors when used with Rx ring length limiting mechanisms like if_rxr or mclgeti.
* don't try to update the link status every secondmikeb2014-11-101-2/+1
|
* remove ixgbe_sfp_probe since it's not called anywaysmikeb2014-11-101-47/+2
|
* Match 82599 as found on SuperMicro AOC-STGN-I1Schris2014-09-081-1/+3
| | | | ok mikeb@
* Revert part of the if_rxr diff that incorrectly moves RX ring tailmikeb2014-08-261-3/+3
| | | | | index update code from the buf_get success path to the do it all the time code path. Tested by millert; ok dlg, deraadt
* We have never limited the definition of "supported SPF modules"mikeb2014-08-251-2/+2
| | | | | | | | | | | | | to the vendor/make whitelist maintained by Intel so there's no reason to start doing it now. When syncing the driver to the FreeBSD codebase I have decided to take this chunk as is but it appears that it breaks cheap chinese SFP+ fiber optics modules that we all love. And while there's still a lot of places where we check for the vendor OUI, most of these checks are not necessary. Issue reported and fix tested by Tony Sarendal. Thanks!
* Implement rxrinfo ioctl for cluster usage statisticsmikeb2014-08-201-1/+36
|
* Some reallocarray() use; review Jean-Philippe Ouellet, patrick keshishianderaadt2014-07-131-13/+9
| | | | ok tedu
* add a size argument to free. will be used soon, but for now default to 0.tedu2014-07-121-7/+7
| | | | after discussions with beck deraadt kettenis.
* cut things that relied on mclgeti for rx ring accounting/restriction overdlg2014-07-081-15/+16
| | | | | | | | | | to using if_rxr. cut the reporting systat did over to the rxr ioctl. tested as much as i can on alpha, amd64, and sparc64. mpi@ has run it on macppc. ok mpi@
* initialize staterr, no functional change; from david hillmikeb2013-12-091-2/+2
|
* don't call if_link_state_change if link state is not changedmikeb2013-08-231-29/+28
| | | | and fix minor discrepancies with link state handling
* Fix build without vlan.mpi2013-08-211-1/+3
| | | | ok mikeb@
* First stab at updating this monster to the Intel/FreeBSD current version.mikeb2013-08-051-288/+212
| | | | | | | | | This syncs PHY and chip dependent parts as well as brings support for the flow control and additional (untested) bits for 1G fiber versions. Tested by Hrvoje Popovski <hrvoje at srce ! hr> on 82599/SFP+DA, florian@ and benno@ on 82599/SFP+SR and on 82598/CX4-BP, 82599/SFP+DA and X540/RJ45 by me.
* Correct interrupt moderation setting for 82598; tested on the CX4 versionmikeb2013-06-141-6/+3
|
* adapt to a pcidevs name changederaadt2013-06-091-3/+3
|
* report flow control mode in the media status callbackmikeb2012-12-201-1/+18
|
* max_frame_size must be set after ether_ifattach updates if_mtu;mikeb2012-12-201-5/+4
| | | | verified with the upstream driver
* Sync up advanced transmitter descriptor setup code to the upstream.mikeb2012-12-171-91/+100
| | | | | | | | | | | | There are a number of bugs that this commit fixes. The main issue is that ixgbe_tx_ctx_setup sets up a descriptor for TCP and UDP checksum calculation, but not for IP, therefore it must use TXSM instead of IXSM. Which is what FreeBSD does now. I've tested this on 82599 with TCP, UDP, ICMP, ICMP6, VLANs and OSPF with TCP and UDP checksums turned on against oce(4). ixgbe_tso_setup is updated as well, albeit remains disabled (as well as checksums themselves). Parts of the change were obtained from brad's diff he sent me a while ago.
* sync some comments and variable names in rxeof with freebsdmikeb2012-12-171-9/+12
|
* Catch up with upstream, where rxbuf->m_pack was renamed to rxbuf->bufmikeb2012-12-171-24/+24
| | | | and rxbuf->pmap to rxbuf->map. Tested on 82599 and X540.
* Don't forget to decrement a number of clusters on the ring in casemikeb2012-12-171-3/+2
| | | | of an error. Previous change made the problem evident.
* Get rid of the split header code as it was never used inmikeb2012-12-171-159/+34
| | | | | | OpenBSD and now is finally removed from the upstream. No real functional change (we've lost some weight though). Tested on 82599.
* Implement SFP+ module hot-plug support for 82599 obtainedmikeb2012-12-171-7/+74
| | | | | | from FreeBSD. This also adds untested and hence disabled support for multispeed fiber interrupts. With input from and ok jsg.
* Fix a link autonegotiation bug on 10GbaseT controllers and improvemikeb2012-12-171-63/+37
| | | | | | link information reporting in general. Obtained for the most part from FreeBSD, tested by mxb at alumni ! chalmers ! se on X540 and me on 82598 (XAUI, KR4), 82599 (SFP+) and X540 (baseT); ok jsg
* fix from freebsd to correctly account rx errors; problem reportedmikeb2012-12-051-8/+14
| | | | | and fix tested on 82599 by tony sarendal tony@polarcap.org, tested on X540 and 82598 by me, ok jsg
* Remove setting an initial assumed baudrate upon driver attach which is notbrad2012-11-291-2/+1
| | | | | | necessarily correct, there might not even be a link when attaching. ok mikeb@ reyk@
* make ix complile with IX_DEBUG defined, based on the patch frommikeb2012-11-291-8/+3
| | | | mxb at alumni ! chalmers ! se. thanks!
* - Remove return's at the end of void functionsbrad2012-11-231-25/+5
| | | | | | - Some minor tweaking of the use of braces in two spots ok mikeb@
* Do not depend on IFCAP_CSUM flags when configuring rx checksummingmikeb2012-11-081-4/+2
| | | | and correct an incorrect usage of IXGBE_RXCSUM_PCSD. ok henning
* Remove Flow Director code that is not used, is outdated and tendsmikeb2012-11-061-11/+2
| | | | to get in the way. ok krw, brad
* Add braces to some code in ixgbe_setup_vlan_hw_support().brad2012-10-281-4/+5
| | | | ok mikeb@
* sync a comment with reality and remove an error path duplicate; from bradmikeb2012-08-131-9/+2
|
* Add support for another 82599 SFP+ card. Original diff and tests bymikeb2012-08-111-1/+3
| | | | | Chris Maxwell <chris ! maxwell () hootsuite.com> ok jsg
* cleanup ixgbe_start routine; from brad, ok jsgmikeb2012-08-101-35/+21
|
* We're not going to loop in the rxeof refilling our ring as it wouldmikeb2012-08-081-8/+6
| | | | | | | | | work against the mclgeti algorithm and besides it doesn't make any difference if [repaired and] enabled since interrupt mitigation was fixed some time ago. So remove the leftovers altogether so that nobody would be tempted to use them. ok claudio, jsg
* Add support for 10Gb ethernet cards based on the Intel X540 chipset.mikeb2012-08-061-7/+47
| | | | | | | The code was obtained from FreeBSD and tested on the hardware kindly donated by Tony Sarendal <tony () polarcap ! org>. Thanks a lot! ok jsg
* whitespace cleanup, no binary changemikeb2012-07-291-77/+77
|
* rewrite the receive filter programming to look similar to othermikeb2012-07-061-87/+38
| | | | | drivers - from brad; while here initialized a stack variable before usage as pointed out by david hill.
* set the prefetch threshold for 99'er as well. provides some additionalmikeb2012-07-051-1/+7
| | | | performance improvement. obtained from freebsd.
* enable the code that forces a cleanup if number of tx descriptorsmikeb2012-07-051-7/+2
| | | | | is below the threshold. noticed by brad. tweak threshold values to get a bit of a performance increase.
* rather than driving the card with 16k intr/s of low latency interrupts,mikeb2012-02-261-11/+12
| | | | | | rely on regular rx/tx queue interrupts moderated to 8k intr/s achieving best performance/latency ratio. this effectively doubles performance on 82599. tested on 82598 as well.
* there's no need to rearm interrupts, we only need to reenable queues;mikeb2012-02-261-3/+5
| | | | no objections from claudio and deraadt; tested on 82598 and 82599
* save content of the pci attach args, not the pointer; from Christian Ehrhardtmikeb2012-01-201-9/+9
|
* Repair hw vlan tagging and stripping on 82599. Previously receivermikeb2012-01-131-14/+3
| | | | | | | would prepend another vlan tag 0 to all frames containing 802.1Q tags rendering vlans unusable. ok jsg, deraadt
* add missing m_freem's into the error code paths. there's no changemikeb2011-12-121-3/+11
| | | | in behavior since we don't do split headers; ok dlg, kettenis