#
850f78d5 |
| 03-Dec-2024 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc.4: Add I226 and other additions to supported list
MFC after: 3 days
|
Revision tags: release/14.2.0 |
|
#
e80419da |
| 24-Nov-2024 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc: disable hw.igc.sbp
Similar to 548d8a131d536d5f in e1000, disable this by default.
MFC after: 3 days Sponsored by: BBOX.io
|
#
9efc7325 |
| 24-Nov-2024 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc: Reflow long lines
MFC after: 3 days Sponsored by: BBOX.io
|
#
d1bb1a50 |
| 24-Nov-2024 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc: Normalize indentation a bit
MFC after: 3 days Sponsored by: BBOX.io
|
#
ab540d44 |
| 21-Nov-2024 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc: sysctl for TCP flag handling during TSO
Add tso_tcp_flags_mask_first_segment, tso_tcp_flags_mask_middle_segment, and tso_tcp_flags_mask_last_segment sysctl-variables to control the handling of
igc: sysctl for TCP flag handling during TSO
Add tso_tcp_flags_mask_first_segment, tso_tcp_flags_mask_middle_segment, and tso_tcp_flags_mask_last_segment sysctl-variables to control the handling of TCP flags during TSO.
This allows to change the masks appropriate for classical ECN and to configure appropriate masks for accurate ECN.
MFC after: 3 days Sponsored by: Netflix
show more ...
|
#
35d05a14 |
| 26-Oct-2024 |
Mark Johnston <markj@FreeBSD.org> |
igc: Remove a bogus register write in igc_if_queues_free()
As explained in PR 277038, iflib calls IFDI_DETACH() and then IFDI_QUEUES_FREE(). With igc, the latter writes to a register after it has b
igc: Remove a bogus register write in igc_if_queues_free()
As explained in PR 277038, iflib calls IFDI_DETACH() and then IFDI_QUEUES_FREE(). With igc, the latter writes to a register after it has been unmapped.
igc_if_detach() already calls igc_release_hw_control(), and looking at callers of igc_if_queues_free(), that appears to be sufficient. So, just remove the igc_release_hw_control() call.
PR: 277038 Reported by: Mike Belanger <mibelanger@qnx.com> Reviewed by: kbowling Tested by: kbowling MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D47293
show more ...
|
#
1b0e41dd |
| 14-Oct-2024 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc: Function prototype cleanup
Drop variable names of function prototypes since the file is mixed in listing them or not and they fall out of sync.
MFC after: 1 week Sponsored by: BBOX.io
|
#
542f5d56 |
| 14-Oct-2024 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc: Rename 'struct adapter' to 'struct igc_softc'
Rename the 'struct adapter' to 'struct igc_softc' to avoid type ambiguity in things like kgdb and make sharing code with e1000 and ixgbe easier.
M
igc: Rename 'struct adapter' to 'struct igc_softc'
Rename the 'struct adapter' to 'struct igc_softc' to avoid type ambiguity in things like kgdb and make sharing code with e1000 and ixgbe easier.
MFC after: 1 week Sponsored by: BBOX.io
show more ...
|
#
09526a77 |
| 14-Oct-2024 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc: Add sysctls for some missing MAC stats
MFC after: 1 week Sponsored by: BBOX.io
|
#
68b1f5dc |
| 14-Oct-2024 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc: Add sysctl for DMA Coalesce
This feature can increase efficiency at the expense of latency
It does not work well with the default interrupt delay, but expose the otherwise unconnected code in
igc: Add sysctl for DMA Coalesce
This feature can increase efficiency at the expense of latency
It does not work well with the default interrupt delay, but expose the otherwise unconnected code in the driver in case people want to experiment.
See https://www.intel.com/content/dam/support/us/en/documents/network/adapter/pro100/sb/466827_intel_r__dma_coalescing_white_paper_v003.pdf
MFC after: 1 week Sponsored by: BBOX.io
show more ...
|
#
669d26e5 |
| 13-Oct-2024 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc: Want AIM at 2.5G
This should have been commited with bc9402a, need to account for link_speed of 2500 as well on igc.
MFC after: 6 days Sponsored by: Rubicon Communications, LLC ("Netgate") Spo
igc: Want AIM at 2.5G
This should have been commited with bc9402a, need to account for link_speed of 2500 as well on igc.
MFC after: 6 days Sponsored by: Rubicon Communications, LLC ("Netgate") Sponsored by: BBOX.io
show more ...
|
#
bc9402ab |
| 11-Oct-2024 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc: Add AIM
igc is derived from igb and has never had an AIM implementation. The same algorithm from e1000 is appropriate here.
Upon more detailed study of the Linux driver which has a newer AIM i
igc: Add AIM
igc is derived from igb and has never had an AIM implementation. The same algorithm from e1000 is appropriate here.
Upon more detailed study of the Linux driver which has a newer AIM implementation, it finally became clear to me this is actually a holdoff timer and not an interrupt limit as it is conventionally (statically) programmed and displayed as an interrupt rate. The data sheets also make this somewhat clear.
Thus, AIM accomplishes two beneficial things for a wide variety of workloads[1]:
1. At low throughput/packet rates, it will significantly lower latency (by counter-intuitively "increasing" the interrupt rate.. better thought of as decreasing the holdoff timer because you will modulate down before coming anywhere near these interrupt rates). 2. At bulk data rates, it is tuned to achieve a lower interrupt rate (by increasing the holdoff timer) than the current static 8000/s. This decreases processing overhead and yields more headroom for other work such as packet filters or userland.
For a single NIC this might be worth a few sys% on common CPUs, but may be meaningful when multiplied such as if_lagg, if_bridge and forwarding setups.
The AIM algorithm was re-introduced from the older igb or out of tree driver, and then modernized with permission to use Intel code from other drivers.
[1]: http://iommu.com/datasheets/ethernet/controllers-nics/intel/e1000/gbe-controllers-interrupt-moderation-appl-note.pdf
MFC after: 1 week Relnotes: yes Sponsored by: Rubicon Communications, LLC ("Netgate") Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D47053
show more ...
|
#
33ed9bdc |
| 29-Sep-2024 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc: Add NVM/firmware prints and sysctl
This chipset suffered an (un)usual number of bugs and iterations. Let's add our NVM/firmware code from e1000 and the similar igc_nvm function from DPDK to kee
igc: Add NVM/firmware prints and sysctl
This chipset suffered an (un)usual number of bugs and iterations. Let's add our NVM/firmware code from e1000 and the similar igc_nvm function from DPDK to keep track of issues.
MFC after: 1 week Sponsored by: BBOX.io
show more ...
|
#
a40ecb6f |
| 29-Sep-2024 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc: Remove non-existent legacy absolute and packet timers
igc, derived from igb, does not use these registers. All interrupt timing is governed by EITR or LLI and driven by write-back.
MFC after:
igc: Remove non-existent legacy absolute and packet timers
igc, derived from igb, does not use these registers. All interrupt timing is governed by EITR or LLI and driven by write-back.
MFC after: 1 week Sponsored by: BBOX.io
show more ...
|
Revision tags: release/13.4.0, release/14.1.0, release/13.3.0 |
|
#
f221d35b |
| 09-Jan-2024 |
Marius Strobl <marius@FreeBSD.org> |
igb(4): Remove disconnected SYSCTL
The global hw.igb.rx_process_limit knob never was adhered to by the in-tree version of this driver but similar functionality is available via the device-specific d
igb(4): Remove disconnected SYSCTL
The global hw.igb.rx_process_limit knob never was adhered to by the in-tree version of this driver but similar functionality is available via the device-specific dev.igb.N.iflib.rx_budget.
While at it, remove the - besides initialization of tx_process_limit - unused {r,t}x_process_limit members.
show more ...
|
Revision tags: release/14.0.0 |
|
#
725e4008 |
| 24-Aug-2023 |
Kevin Bowling <kbowling@FreeBSD.org> |
iflib: invert default restart on VLAN changes
In rS360398, a new iflib device method was added to opt out of VLAN events needing an interface reset.
I am switching the default to not requiring a re
iflib: invert default restart on VLAN changes
In rS360398, a new iflib device method was added to opt out of VLAN events needing an interface reset.
I am switching the default to not requiring a restart for: * VLAN events * unknown events
After fixing various bugs, I do not think this would be a common need of hardware and it is undesirable from the user's perspective causing link flaps and much slower VLAN configuration. Currently, there are no other restart events besides VLAN events, and setting the ifdi_needs_restart default to false will alleviate the need to churn every driver if an odd event is added in the future for specific hardware.
markj points out this could cause churn in the other direction; I will solve that problem with an event registration system as he mentions in the review should we need it in the future.
These drivers will opt into restart and need further inspection or work: * ixv (needs code audit, 61a8231 fixed principal issue; re-init probably not necessary) * axgbe (needs code audit; re-init probably not necessary) * iavf - (needs code audit; interaction with Malicious Driver Detection mentioned in rS360398) * mgb - no VLAN functions are currently implemented. Left a comment.
MFC after: 2 weeks Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D41558
show more ...
|
#
51e23514 |
| 16-Aug-2023 |
Marius Strobl <marius@FreeBSD.org> |
iflib drivers: Constify PCI ID LUTs
Since d49e83eac3baf16a22b1c5d42e8438b68b17e6f9, iflib(9) is ready for this change. While at it, make isc_driver_version strings (static) const where not apparentl
iflib drivers: Constify PCI ID LUTs
Since d49e83eac3baf16a22b1c5d42e8438b68b17e6f9, iflib(9) is ready for this change. While at it, make isc_driver_version strings (static) const where not apparently un-const on purpose, too. This reduces the size of the amd64 GENERIC by about 10 KiB.
show more ...
|
#
685dc743 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
0eb8cd1d |
| 10-Aug-2023 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc: sync srrctl buffer sizing with e1000
Approved by: grehan MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D31493
|
#
43ed91e0 |
| 07-Jul-2023 |
Peter Grehan <grehan@FreeBSD.org> |
igc: Increase default per-queue interrupt rate to 20000.
The default per-queue packet rate of 8000 will cause packet loss when forwarding at 2.5G with a single stream, as is common when using e.g. i
igc: Increase default per-queue interrupt rate to 20000.
The default per-queue packet rate of 8000 will cause packet loss when forwarding at 2.5G with a single stream, as is common when using e.g. iperf3 to test a platform.
Bump this to 20000 (the "low latency" value in the Linux driver) which avoids packet loss for this type of test.
Future work will use adaptive interrupt rate in a similar fashion to the ixgbe driver.
Sponsored by: Rubicon Communications, LLC ("Netgate") Reviewed by: erj, kp MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D40904
show more ...
|
Revision tags: release/13.2.0, release/12.4.0 |
|
#
ec22a3a2 |
| 19-Aug-2022 |
Justin Hibbits <jhibbits@FreeBSD.org> |
DrvAPI: Trivial mechanical conversions for various drivers
Mechanically convert the following drivers, with trivial changes: * ipw(4) * igc(4) * enetc(4) * malo(4) * nfe(4) * bxe(4) * awg(4) * otus(
DrvAPI: Trivial mechanical conversions for various drivers
Mechanically convert the following drivers, with trivial changes: * ipw(4) * igc(4) * enetc(4) * malo(4) * nfe(4) * bxe(4) * awg(4) * otus(4) * rtwn(4) * bnxt(4) * ath(4)
Sponsored by: Juniper Networks, Inc.
show more ...
|
#
2eaef8ec |
| 11-Oct-2022 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc: Fix up hw vlan ops
Adapt 2796f7cab10785ef40efbba97ef67ab319c96e9c to igc(4)
* Don't reset the entire adapter for vlan changes, fix up the problems * Remove the VFTA, this hardware doesn't seem
igc: Fix up hw vlan ops
Adapt 2796f7cab10785ef40efbba97ef67ab319c96e9c to igc(4)
* Don't reset the entire adapter for vlan changes, fix up the problems * Remove the VFTA, this hardware doesn't seem to implement it
Approved by: grehan MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D31979
show more ...
|
#
55760984 |
| 16-Sep-2022 |
Hubert Mazur <hum@semihalf.com> |
igc: Don't start in promiscious mode by default
The igc driver always sets the promiscious mode during initialization, ignoring what is set in ifp. Fix this by checking the interface flags and setti
igc: Don't start in promiscious mode by default
The igc driver always sets the promiscious mode during initialization, ignoring what is set in ifp. Fix this by checking the interface flags and setting mode appropriately.
Reviewed by: grehan Obtained from: Semihalf Sponsored by: Stormshield MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D36591
show more ...
|
#
3b8d04f8 |
| 30-Jun-2022 |
Kornel Dulęba <kd@FreeBSD.org> |
igc: Change default duplex setting
During media selection through ifconfig one might not specify the duplex setting through the mediaopt flag. In that case the igc driver would default to full-duple
igc: Change default duplex setting
During media selection through ifconfig one might not specify the duplex setting through the mediaopt flag. In that case the igc driver would default to full-duplex. The problem with this approach is that e1000(em/igb) driver defaults to half-duplex. Because of that if one connects both NICs and sets media to e.g. 100baseTX on both of them no link will be found. Fix that by matching igc behaviour with what e1000 does.
Reviewed by: grehan Approved by: mw(mentor) Obtained from: Semihalf Sponsored by: Stormshield MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D35673
show more ...
|
#
9b88ecd6 |
| 17-May-2022 |
Kevin Bowling <kbowling@FreeBSD.org> |
igc: Increase rx_buffer_size local variable to 32b
Apply 6987c47569b377f4b6eba9966afdedfb1b39fca8 to igc. This is not expected to have any benefit on current parts with current observed PBA sizes bu
igc: Increase rx_buffer_size local variable to 32b
Apply 6987c47569b377f4b6eba9966afdedfb1b39fca8 to igc. This is not expected to have any benefit on current parts with current observed PBA sizes but will avoid surprises if they are increased in future chips.
Approved by: grehan MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D35217
show more ...
|