#
353669 |
|
16-Oct-2019 |
erj |
MFC r353599
MFCs ixgbe: Disable EEE for backplane X550EM_X
This prevents a possible kernel panic on X552 backplane devices.
PR: 240320 Sponsored by: Intel Corporation
|
#
347419 |
|
10-May-2019 |
erj |
ix(4): Move {mod,msf,mbx,fdir,phy,link}_task to lock protected handler
This patch introduces adapter->task_requests register responsible for recording requests for mod_task, msf_task, mbx_task, fdir_task, phy_task and link_task calls. Instead of enqueueing each of these tasks with GROUPTASK_ENQUEUE, new task is created and all handlers are called from one task while holding adapter->core_mtx lock.
SIOCGIFXMEDIA ioctl() call reads adapter->media list. The list is deleted and rewritten in ixgbe_handle_msf() task without holding adapter->core_mtx lock. This change is needed to maintain data coherency when sharing adapter info via ioctl() calls.
Since handlers for abovementioned tasks will no longer act as task handlers, but as regular functions, 'pending' parameter is removed from them.
This patch also removes ixgbe_update_link_status() call from ixgbe_handle_link() handler. From now on, link status will be updated by calling ixgbe_update_link_status() periodically from ixgbe_local_timer(). This fixes problem with link flapping during changing interface state to UP.
Parameter keep_traffic is added to ixgbe_disable_intr(). This enables ixgbe_handle_admin_task() to not disable and queue interrupts. Accordingly, skip_traffic parameter is added to ixgbe_enable_intr() to let ixgbe_handle_admin_task() skip enabling queues while enabling interrupts.
This patch is a port of r343621. r343621 can't be merged from current since stable/11 contains ixgbe driver without iflib support.
Patch co-authored by Krzysztof Galazka <krzysztof.galazka@intel.com>.
Submitted by: Piotr Pietruszewski <piotr.pietruszewski@intel.com> Reviewed by: #IntelNetworking Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D19711
|
#
341477 |
|
04-Dec-2018 |
vmaffione |
MFC r339639
netmap: align codebase to the current upstream (sha 8374e1a7e6941)
Changelist: - Move large parts of VALE code to a new file and header netmap_bdg.[ch]. This is useful to reuse the code within upcoming projects. - Improvements and bug fixes to pipes and monitors. - Introduce nm_os_onattach(), nm_os_onenter() and nm_os_onexit() to handle differences between FreeBSD and Linux. - Introduce some new helper functions to handle more host rings and fake rings (netmap_all_rings(), netmap_real_rings(), ...) - Added new sysctl to enable/disable hw checksum in emulated netmap mode. - nm_inject: add support for NS_MOREFRAG
Approved by: gnn (mentor) Differential Revision: https://reviews.freebsd.org/D17364
|
#
332481 |
|
13-Apr-2018 |
shurd |
Move 1-second spin into ixgbe_netmap_reg()
This should still work around the netmap issue, but should not impact other calls to ixgbe_stop().
PR: 221317 Sponsored by: Limelight Networks
|
#
332447 |
|
12-Apr-2018 |
shurd |
Work around netmap issue with ixgbe
After multiple start/stop of netmap, ixgbe will get into a bad state requiring a reboot to recover. Adding a delay before stopping the interface appears to work around the issue.
The -CURRENT driver has diverged too far from -STABLE for an MFC.
PR: 221317 Submitted by: Sylvain Galliano <sg@efficientip.com> Reported by: Cassiano Peixoto <peixoto.cassiano@gmail.com> Sponsored by: Limelight Networks
|
#
332288 |
|
08-Apr-2018 |
brooks |
MFC r331797:
Use an accessor function to access ifr_data.
This fixes 32-bit compat (no ioctl command defintions are required as struct ifreq is the same size).
Reviewed by: kib Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14900
|
#
325618 |
|
09-Nov-2017 |
sbruno |
Merge r323509 and r324994 adding Cavium LiquidIO Driver (lio) to stable/11.
Submitted by: pkanneganti@cavium.com ((Prasad V Kanneganti) Sponsored by: Cavium Networks Differential Revision: https://reviews.freebsd.org/D12425
|
#
323212 |
|
06-Sep-2017 |
kib |
MFC r323024: Only make the if_ix module depend on netmap when netmap is configured.
|
#
320917 |
|
12-Jul-2017 |
sbruno |
MFC r320916
Reset unsupported SFP tuneable back to original entry name.
Reported by: olivier@
|
#
320897 |
|
11-Jul-2017 |
erj |
MFC r316541, r316544, and r320688 from HEAD to stable/11.
r316541: Fix a double free in ixgbe_rxeof()
r316544: Don't overwrite vf->flags variable at the end of ixgbe(4) ixgbe_add_vf()
r320688: ixgbe(4): Update HEAD (p3) to 3.2.12-k
Includes:
- Support for X550EM devices. - Support for Bypass adapters. - Flow Director code moved to separate files - SR-IOV code moved to separate files - Netmap code moved to separate files
Sponsored by: Intel Corporation
|
#
313388 |
|
07-Feb-2017 |
rstone |
MFC r312544
Fix reference to free memory in ixgbe/if_media.c
When ixgbe receives an interrupt indicating that a new optical module may have been inserted, it discards all of its current media types by calling ifmedia_removeall() and then creates a new set of media types for the supported media on the new module. However, ifmedia_removeall() was maintaining a pointer to whatever the current media type was before the call to ifmedia_removealL(). The result of this was that any attempt to read the current media type of the interface (e.g. via ifconfig) would return potentially garbage data from free memory (or if one were particularly unlucky on an architecture that does not malloc() from a direct map, page fault the kernel).
Fix this by NULL'ing out the current media field in if_media.c, and have ixgbe update the current media type after recreating them.
Submitted by: Matt Joras <matt.joras AT gmail DOT com> Reviewed by: sbruno, erj MFC after: 1 week Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D9164
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
302384 |
|
07-Jul-2016 |
sbruno |
Do not initialize the adapter on MTU change when adapter status is down. This fixes long-standing problems when changing settings of the adapter.
Discussed in: https://lists.freebsd.org/pipermail/freebsd-net/2016-June/045509.html
Submitted by: arnaud.ysmal@stormshield.eu Reviewed by: erj@freebsd.org Approved by: re (gjb) Differential Revision: https://reviews.freebsd.org/D7030
|
#
297793 |
|
10-Apr-2016 |
pfg |
Cleanup unnecessary semicolons from the kernel.
Found with devel/coccinelle.
|
#
296922 |
|
15-Mar-2016 |
smh |
Prevent invalid ixgbe advertise setting warning
Prevent ixgbe outputting "Invalid advertised speed" warning on boot with no customisations by moving test from sysctl handler to set handler.
PR: 208022 MFC after: 3 days Sponsored by: Multiplay
|
#
295273 |
|
04-Feb-2016 |
tuexen |
In FreeBSD 10 and higher the driver announces SCTP checksum offloading support also for 82598, which doesn't support it. The legacy code has a check for it, which was missed when the code for dealing with CSUM_IP6_* was added. Add the same check for FreeBSD 10 and higher.
Differential Revision: https://reviews.freebsd.org/D5192
|
#
295093 |
|
31-Jan-2016 |
smh |
Configure ixgbe phy & gbic power
Setup phy and gbic power as per Linux 4.3.13 driver.
This fixes link not detected on X540-AT2 after booting to Linux which turns the phy power off on detach.
Reviewed by: sbruno MFC after: 2 days Sponsored by: Multiplay Differential Revision: https://reviews.freebsd.org/D5107
|
#
294795 |
|
26-Jan-2016 |
smh |
ixgbe sysctl hardware defaults
Added hw.ix.flow_control which enables the default flow_control of all ix interfaces to be set in loader.conf.
Added hw.ix.advertise_speed which enables the default advertised_speed of all ix interfaces to be set in loader.conf.
Made enable_aim device independent based on hw.ix.enable_aim default.
Reviewed by: erj MFC after: 1 week Sponsored by: Multiplay Differential Revision: https://reviews.freebsd.org/D5060
|
#
294578 |
|
22-Jan-2016 |
smh |
Fix ix advertise value after media change
When ifconfig sets media then the values displayed by the advertise_speed value are invalidated.
Fix this by setting the bits correctly including setting advertise to 0 for media = auto.
Reviewed by: sbruno MFC after: 1 week Sponsored by: Multiplay Differential Revision: https://reviews.freebsd.org/D5034
|
#
294327 |
|
19-Jan-2016 |
hselasky |
Add optimizing LRO wrapper:
- Add optimizing LRO wrapper which pre-sorts all incoming packets according to the hash type and flowid. This prevents exhaustion of the LRO entries due to too many connections at the same time. Testing using a larger number of higher bandwidth TCP connections showed that the incoming ACK packet aggregation rate increased from ~1.3:1 to almost 3:1. Another test showed that for a number of TCP connections greater than 16 per hardware receive ring, where 8 TCP connections was the LRO active entry limit, there was a significant improvement in throughput due to being able to fully aggregate more than 8 TCP stream. For very few very high bandwidth TCP streams, the optimizing LRO wrapper will add CPU usage instead of reducing CPU usage. This is expected. Network drivers which want to use the optimizing LRO wrapper needs to call "tcp_lro_queue_mbuf()" instead of "tcp_lro_rx()" and "tcp_lro_flush_all()" instead of "tcp_lro_flush()". Further the LRO control structure must be initialized using "tcp_lro_init_args()" passing a non-zero number into the "lro_mbufs" argument.
- Make LRO statistics 64-bit. Previously 32-bit integers were used for statistics which can be prone to wrap-around. Fix this while at it and update all SYSCTL's which expose LRO statistics.
- Ensure all data is freed when destroying a LRO control structures, especially leftover LRO entries.
- Reduce number of memory allocations needed when setting up a LRO control structure by precomputing the total amount of memory needed.
- Add own memory allocation counter for LRO.
- Bump the FreeBSD version to force recompilation of all KLDs due to change of the LRO control structure size.
Sponsored by: Mellanox Technologies Reviewed by: gallatin, sbruno, rrs, gnn, transport Tested by: Netflix Differential Revision: https://reviews.freebsd.org/D4914
|
#
293334 |
|
07-Jan-2016 |
sbruno |
Fixup SFP module insertion on the 82599 when insertion happens after the system is booted and running.
Add PHY detection logic to ixgbe_handle_mod() and add locking to ixgbe_handle_msf() as well.
PR: 150251 Submitted by: aboyer@averesystems.com MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D3188
|
#
292674 |
|
23-Dec-2015 |
sbruno |
ixgbe(4): Update to version 3.1.13-k
Add support for two new devices: X552 SFP+ 10 GbE, and the single port version of X550T.
Submitted by: erj Reviewed by: gnn Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D4186
|
#
289238 |
|
13-Oct-2015 |
sbruno |
Add support for sysctl knobs to live tune the per interrupt rx/tx packet processing limits in ixgbe(4)
Differential Revision: https://reviews.freebsd.org/D3719 Submitted by: jason wolfe (j-nitrology.com) MFC after: 2 weeks
|
#
286238 |
|
03-Aug-2015 |
sbruno |
A misplaced #endif in ixgbe_ioctl() causes interface MTU to become zero when INET and INET6 are undefined.
PR: 162028 Differential Revision: https://reviews.freebsd.org/D3187 Submitted by: hoomanfazaeli@gmail.com pluknet Reviewed by: erj hiren gelbius MFC after: 2 weeks
|
#
285736 |
|
21-Jul-2015 |
hiren |
Remove a couple of TUNABLE_INT() calls which are unnecessary after r267961. r267961 did remove them but they "reappeared" when ixgbe(4) rewrite happened in r280182.
Sponsored by: Limelight Networks
|
#
285592 |
|
14-Jul-2015 |
pkelsey |
Add netmap support for ixgbe SRIOV VFs (that is, to if_ixv).
Differential Revision: https://reviews.freebsd.org/D2923 Reviewed by: erj, gnn Approved by: jmallett (mentor) Sponsored by: Norse Corp, Inc.
|
#
285590 |
|
14-Jul-2015 |
pkelsey |
Fix igxbe SRIOV VF (if_ixv) initialization bugs. The MAC address for an if_ixv instance can now set at creation time, and the receive ring tail pointer is correctly initialized (previously, things still worked because the receive ring tail pointer was being fixed up as a side effect of other activity).
Differential Revision: https://reviews.freebsd.org/D2922 Reviewed by: erj, gnn Approved by: jmallett (mentor) Sponsored by: Norse Corp, Inc.
|
#
285349 |
|
10-Jul-2015 |
luigi |
Sync netmap sources with the version in our private tree. This commit contains large contributions from Giuseppe Lettieri and Stefano Garzarella, is partly supported by grants from Verisign and Cisco, and brings in the following:
- fix zerocopy monitor ports and introduce copying monitor ports (the latter are lower performance but give access to all traffic in parallel with the application)
- exclusive open mode, useful to implement solutions that recover from crashes of the main netmap client (suggested by Patrick Kelsey)
- revised memory allocator in preparation for the 'passthrough mode' (ptnetmap) recently presented at bsdcan. ptnetmap is described in S. Garzarella, G. Lettieri, L. Rizzo; Virtual device passthrough for high speed VM networking, ACM/IEEE ANCS 2015, Oakland (CA) May 2015 http://info.iet.unipi.it/~luigi/research.html
- fix rx CRC handing on ixl
- add module dependencies for netmap when building drivers as modules
- minor simplifications to device-specific routines (*txsync, *rxsync)
- general code cleanup (remove unused variables, introduce macros to access rings and remove duplicate code,
Applications do not need to be recompiled, unless of course they want to use the new features (monitors and exclusive open).
Those willing to try this code on stable/10 can just update the sys/dev/netmap/*, sys/net/netmap* with the version in HEAD and apply the small patches to individual device drivers.
MFC after: 1 month Sponsored by: (partly) Verisign, Cisco
|
#
283893 |
|
01-Jun-2015 |
jhb |
Catch up to the SRIOV API changes in r283670.
|
#
283883 |
|
01-Jun-2015 |
jfv |
Delta D2489 - Add SRIOV support to the Intel 10G driver.
NOTE: This is a technology preview, while it has undergone development testing, Intel has not yet completed full validation of the feature. It is being integrated for early access and customer testing.
|
#
283882 |
|
01-Jun-2015 |
jfv |
Revert last commit, to remove added skeleton tree.
|
#
283881 |
|
01-Jun-2015 |
jfv |
Delta D2489 - Add SRIOV support to the Intel 10G driver.
NOTE: This is a technology preview, while it has undergone development tests, Intel has not yet completed full validation of the feature. It is being integrated for early access and customer testing.
|
#
282299 |
|
01-May-2015 |
bz |
Remove the extra extern which makes gcc complain; I assume it came from r282289.
We do include ixgbe.h which does include ixgbe_common.h which has the extern statement for ixgbe_stop_mac_link_on_d3_82599().
|
#
282289 |
|
30-Apr-2015 |
erj |
Add support for certain Intel X550 devices.
These include standalone X550 adapters, X552 10GbE backplane, and X552/X557-AT 10GBASE-T; with the latter two being integrated into Xeon D SoCs.
As well, this bumps the ixgbe version number to 2.8.3, and includes updates to shared code for support for the new devices.
Differential Revision: D2414 Reviewed by: gnn, adrian Approved by: jfv (mentor), gnn (mentor)
|
#
282280 |
|
30-Apr-2015 |
jhb |
Various fixes to the stats in igb(4), ixgbe(4), and ixl(4). - Use hardware counters for ifnet stats in igb(4) when possible. This ensures these stats include packets that bypass the regular stack via netmap. - Don't derefence values off the end of the igb(4) VF stats structure. Instead, add a dedicated if_get_counter method for igb(4) VF interfaces. - Report missed packets on igb(4) as input queue drops rather than an input error. - Report bug_ring drop counts as output queue drops for igb(4) and ixgbe(4). - Export the buf_ring drop stats for individual rings via sysctl on ixgbe(4). - Fix a typo that in ixl(4) that caused output queue drops to be reported as input queue drops and input queue drops to be unreported.
Differential Revision: https://reviews.freebsd.org/D2402 Reviewed by: jfv, rstone (6) Sponsored by: Norse Corp, Inc.
|
#
281773 |
|
20-Apr-2015 |
araujo |
Add back ixgbe_rxeof, just remove the assignment to more.
|
#
281772 |
|
20-Apr-2015 |
araujo |
Remove unused variable.
Differential Revision: D2331 Reviewed by: erj
|
#
280204 |
|
18-Mar-2015 |
adrian |
Fix ixgbe(4) to compile - with RSS; with ix+ixv in the kernel.
* Fix the multiple same-named devclasses; the duplicate name trips up the linker.
* Re-do the taskqueue stuff to use the new cpuset API, not the old pinned API.
* Add includes for the new location of the RSS configuration routines.
This allows ixgbe to compile as a module /and/ linked into the kernel, along with RSS working.
Sponsored by: Norse Corp, Inc.
|
#
280182 |
|
17-Mar-2015 |
jfv |
Update to the Intel ixgbe driver: - Split the driver into independent pf and vf loadables. This is in preparation for SRIOV support which will be following shortly. This also allows us to keep a seperate revision control over the two parts, making for easier sustaining. - Make the TX/RX code a shared/seperated file, in the old code base the ixv code would miss fixes that went into ixgbe, this model will eliminate that problem. - The driver loadables will now match the device names, something that has been requested for some time. - Rather than a modules/ixgbe there is now modules/ix and modules/ixv - It will also be possible to make your static kernel with only one or the other for streamlined installs, or both.
Enjoy!
Submitted by: jfv and erj
|