---
name: "igc"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd", "openbsd"]
url: "https://new.carta.tech/igc"
---

# igc(4)

Intel Ethernet Controller I225 2.5GbE driver

## NAME

**igc** – Intel Ethernet Controller I225 2.5GbE driver

## SYNOPSIS

To compile this driver into the kernel, place the following lines in your kernel configuration file:

**device iflib** **device igc**

Alternatively, to load the driver as a module at boot time, place the following line in [loader.conf(5)](/loader.conf/5.md):

```
if_igc_load="YES"
```

## DESCRIPTION

The **igc** driver provides support for any PCI Express adapter or LOM (LAN On Motherboard) based on the Intel I225 Multi Gigabit Controller. The driver supports Transmit/Receive checksum offload, Jumbo Frames, MSI/MSI-X, TSO, and RSS.

On systems that expose PCI power-management wake, the driver supports the **wol\_magic**, **wol\_ucast**, and **wol\_mcast** capabilities shown by [ifconfig(8)](/ifconfig/8.md). Magic-packet wake is enabled by default and any advertised wake mode can be enabled or disabled with [ifconfig(8)](/ifconfig/8.md). Waking the system from an ACPI sleep state also requires enabling the corresponding device wake source when it is exposed, for example:

```
sysctl dev.igc.0.wake=1
```

The interface wake capabilities select the controller packet filters; they do not enable the ACPI wake source.

Support for Jumbo Frames is provided via the interface MTU setting. Selecting an MTU larger than 1500 bytes with the [ifconfig(8)](/ifconfig/8.md) utility configures the adapter to receive and transmit Jumbo Frames. The maximum MTU size for Jumbo Frames is 9216 bytes.

This driver version supports VLAN hardware insertion / extraction, VLAN checksum offload, and VLAN hardware filtering. For information on enabling VLANs, see [ifconfig(8)](/ifconfig/8.md).

The identification LED of an adapter supported by the **igc** driver can be controlled via the [led(4)](/led/4.md) interface at */dev/led/igc\**. The **igc** driver supports the following media types:

- **autoselect**

  Enables auto-negotiation for speed and duplex.

- **10baseT/UTP**

  Sets 10Mbps operation. Use the **mediaopt** option to select **half-duplex** mode.

- **100baseTX**

  Sets 100Mbps operation. Use the **mediaopt** option to select **half-duplex** mode.

- **1000baseT**

  Sets 1000Mbps operation. Only **full-duplex** mode is supported at this speed.

- **2500baseT**

  Sets 2500Mbps operation. Only **full-duplex** mode is supported at this speed.

## HARDWARE

The **igc** driver supports the following 2.5Gb Ethernet controllers:

- I220-V

- I221-V

- I225-LM

- I225-LMvP(2)

- I225-V

- I225-IT, I225-IT(2)

- I225-K, I225-K(2)

- I226-LM

- I226-LMvP

- I226-V

- I226-IT

- I226-K

## LOADER TUNABLES

Tunables can be set at the [loader(8)](/loader/8.md) prompt before booting the kernel or stored in [loader.conf(5)](/loader.conf/5.md).

- *hw.igc.igc\_disable\_crc\_stripping*

  Disable or enable hardware stripping of CRC field. This is mostly useful on BMC/IPMI shared interfaces where stripping the CRC causes remote access over IPMI to fail. Default 0 (enabled).

- *hw.igc.sbp*

  Show bad packets when in promiscuous mode. Default is false.

- *hw.igc.eee\_setting*

  Disable or enable Energy Efficient Ethernet. Default 1 (disabled).

- *hw.igc.max\_interrupt\_rate*

  Maximum device interrupts per second. The default is 8000. This is the rate used when adaptive interrupt moderation is disabled, and the fallback when it has no usable measurement.

- *hw.igc.enable\_aim*

  Adaptive interrupt moderation. The interrupt rate is derived from the average size of the packets seen since the previous interrupt, so that bulk traffic is coalesced while small packet traffic keeps its latency. A value of 0 disables it and pins the rate to *hw.igc.max\_interrupt\_rate*, 1 selects the normal range, and 2 selects the low-latency range. The default value is 1. Setting 2 raises the interrupt rate substantially on small packet workloads and is rarely a win; prefer the default unless latency has been measured to matter more than the additional interrupt load.

## DIAGNOSTICS

- igc%d: Hardware Initialization Failed

  A fatal initialization error has occurred.

- igc%d: Unable to allocate bus resource: memory

  A fatal initialization error has occurred.

- igc%d: Invalid MAC address

  The MAC address programmed into the EEPROM is either empty or a multicast or broadcast address.

## SEE ALSO

[altq(4)](/altq/4.md), [arp(4)](/arp/4.md), [iflib(4)](/iflib/4.md), [led(4)](/led/4.md), [netintro(4)](/netintro/4.md), [ng\_ether(4)](/ng_ether/4.md), [vlan(4)](/vlan/4.md), [ifconfig(8)](/ifconfig/8.md)

## HISTORY

The **igc** device driver first appeared in FreeBSD 13.1.

## AUTHORS

The **igc** was originally written by Intel Corporation and converted to the [iflib(4)](/iflib/4.md) framework by Netgate.
