summaryrefslogtreecommitdiff
path: root/sys/dev/oce
Commit message (Collapse)AuthorAgeFilesLines
* MFC r267839:Xin LI2014-06-305-26/+55
| | | | | | | | | | | Apply vendor fixes for big endian support and 20GBps/25GBps link speeds. Many thanks to Emulex for their continued support of FreeBSD! Submitted by: Venkata Duvvuru <VenkatKumar.Duvvuru Emulex.Com> Notes: svn path=/stable/10/; revision=268046
* MFC r260110:Xin LI2014-01-131-12/+0
| | | | | | | | | Eliminate unused drbr_stats_update implementation in oce(4) driver. Noticed by: dim Notes: svn path=/stable/10/; revision=260603
* MFC r258941:Xin LI2013-12-064-19/+60
| | | | | | | | | | | | | | | | | Apply vendor improvements to oce(4) driver: - Add support to 40Gbps devices; - Add support to control adaptive interrupt coalescing (AIC) via sysctl; - Improve support of BE3 devices; Many thanks to Emulex for their continued support of FreeBSD. Submitted by: Venkata Duvvuru <VenkatKumar.Duvvuru Emulex Com> Approved by: re (rodrigc) Notes: svn path=/stable/10/; revision=259050
* MFC r257007:Xin LI2013-10-268-241/+639
| | | | | | | | | | | | Update driver to version 10.0.664.0. Many thanks to Emulex for their continued support of FreeBSD. Submitted by: Venkata Duvvuru <VenkatKumar.Duvvuru Emulex Com> Approved by: re (glebius) Notes: svn path=/stable/10/; revision=257187
* Update driver with recent vendor improvements, most notably supportXin LI2013-07-068-131/+442
| | | | | | | | | | | | of Skyhawk adapters. Many thanks to Emulex for their continued support of FreeBSD. Submitted by: "Duvvuru,Venkat Kumar" <VenkatKumar.Duvvuru Emulex.Com> MFC after: 1 day Notes: svn path=/head/; revision=252869
* Eliminate excessive $FreeBSD$ headers.Xin LI2013-03-082-4/+0
| | | | | | | Noticed by: jmallett Notes: svn path=/head/; revision=248059
* Update driver to version 4.6.95.0.Xin LI2013-03-068-184/+810
| | | | | | | | Submitted by: "Duvvuru,Venkat Kumar" <VenkatKumar.Duvvuru Emulex.Com> MFC after: 3 days Notes: svn path=/head/; revision=247880
* Resolve issue that caused WITNESS to report LORs.Josh Paetzel2013-02-142-1/+10
| | | | | | | | | PR: kern/171838 Submitted by: Venkat Duvvuru <venkatduvvuru.ml@gmail.com> MFC after: 2 weeks Notes: svn path=/head/; revision=246799
* This fixes a out-of-order problem with severalRandall Stewart2013-02-071-10/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of the newer drivers. The basic problem was that the driver was pulling the mbuf off the drbr ring and then when sending with xmit(), encounting a full transmit ring. Thus the lower layer xmit() function would return an error, and the drivers would then append the data back on to the ring. For TCP this is a horrible scenario sure to bring on a fast-retransmit. The fix is to use drbr_peek() to pull the data pointer but not remove it from the ring. If it fails then we either call the new drbr_putback or drbr_advance method. Advance moves it forward (we do this sometimes when the xmit() function frees the mbuf). When we succeed we always call advance. The putback will always copy the mbuf back to the top of the ring. Note that the putback *cannot* be used with a drbr_dequeue() only with drbr_peek(). We most of the time, in putback, would not need to copy it back since most likey the mbuf is still the same, but sometimes xmit() functions will change the mbuf via a pullup or other call. So the optimial case for the single consumer is to always copy it back. If we ever do a multiple_consumer (for lagg?) we will need a test and atomic in the put back possibly a seperate putback_mc() in the ring buf. Reviewed by: jhb@freebsd.org, jlv@freebsd.org Notes: svn path=/head/; revision=246482
* Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on ↵Sofian Brabez2013-01-301-1/+2
| | | | | | | | | | device_method_t arrays Reviewed by: cognet Approved by: cognet Notes: svn path=/head/; revision=246128
* Mechanically substitute flags from historic mbuf allocator withGleb Smirnoff2012-12-041-3/+3
| | | | | | | malloc(9) flags in sys/dev. Notes: svn path=/head/; revision=243857
* remove duplicate semicolons where possible.Eitan Adler2012-10-221-1/+1
| | | | | | | | Approved by: cperciva MFC after: 1 week Notes: svn path=/head/; revision=241844
* Use if_initbaudrate().John Baldwin2012-10-181-1/+1
| | | | Notes: svn path=/head/; revision=241691
* The drbr(9) API appeared to be so unclear, that most drivers inGleb Smirnoff2012-09-281-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tree used it incorrectly, which lead to inaccurate overrated if_obytes accounting. The drbr(9) used to update ifnet stats on drbr_enqueue(), which is not accurate since enqueuing doesn't imply successful processing by driver. Dequeuing neither mean that. Most drivers also called drbr_stats_update() which did accounting again, leading to doubled if_obytes statistics. And in case of severe transmitting, when a packet could be several times enqueued and dequeued it could have been accounted several times. o Thus, make drbr(9) API thinner. Now drbr(9) merely chooses between ALTQ queueing or buf_ring(9) queueing. - It doesn't touch the buf_ring stats any more. - It doesn't touch ifnet stats anymore. - drbr_stats_update() no longer exists. o buf_ring(9) handles its stats itself: - It handles br_drops itself. - br_prod_bytes stats are dropped. Rationale: no one ever reads them but update of a common counter on every packet negatively affects performance due to excessive cache invalidation. - buf_ring_enqueue_bytes() reduced to buf_ring_enqueue(), since we no longer account bytes. o Drivers handle their stats theirselves: if_obytes, if_omcasts. o mlx4(4), igb(4), em(4), vxge(4), oce(4) and ixv(4) no longer use drbr_stats_update(), and update ifnet stats theirselves. o bxe(4) was the most correct driver, it didn't call drbr_stats_update(), thus it was the only driver accurate under moderate load. Now it also maintains stats itself. o ixgbe(4) had already taken stats from hardware, so just - drop software stats updating. - take multicast packet count from hardware as well. o mxge(4) just no longer needs NO_SLOW_STATS define. o cxgb(4), cxgbe(4) need no change, since they obtain stats from hardware. Reviewed by: jfv, gnn Notes: svn path=/head/; revision=241037
* Use pci_find_cap() instead of pci_find_extcap() to locate PCIJohn Baldwin2012-03-031-4/+4
| | | | | | | | | find capabilities as the latter API is deprecated for this purpose. MFC after: 2 weeks Notes: svn path=/head/; revision=232470
* Patches from Naresh Raju GottumukkalaLuigi Rizzo2012-02-178-147/+260
| | | | | | | | | | | | | - Feature: UMC - Universal Multi Channel support - Bugfix: BE3 Firmware Flashing bug. - Code improvements: - Removed duplicate switch cases in the oce_ioctl routine. - Made changes to mcc_async notifications routine(oce_mq_handler) MFC after: 1 week Notes: svn path=/head/; revision=231879
* Use if_maddr_*lock() routines to lock the per-interface multicastJohn Baldwin2012-02-131-2/+2
| | | | | | | address list rather than manipulating the lock directly. Notes: svn path=/head/; revision=231603
* Start to try to hide LRO (and some TSO) bits behind #ifdefs as especiallyBjoern A. Zeeb2012-02-111-4/+48
| | | | | | | | the symbols are not there when compiling a kernel without IP support and we do have users doing so. Notes: svn path=/head/; revision=231511
* Use the more common macro to set the if_baudrate to 10Gbit/s. Just useBjoern A. Zeeb2012-02-111-1/+1
| | | | | | | UL not ULL, which should make 32bit archs more happy. Notes: svn path=/head/; revision=231509
* Make use of the read-only variant of the IF_ADDR_*LOCK() macros introducedBjoern A. Zeeb2012-02-111-2/+2
| | | | | | | in r229614 rather than the compat one. Notes: svn path=/head/; revision=231508
* Add a driver for Emulex OneConnect ethernet cards (10 Gbit PCIe)Luigi Rizzo2012-02-108-0/+11528
A manpage will come in a future commit. Submitted by: Naresh Raju Gottumukkala (emulex) Notes: svn path=/head/; revision=231437