Public bug reported:

## Description

When an Intel I225-LM NIC using the igc driver is added as a member of a
Linux bridge, UDP broadcast packets with destination port 68 (DHCP
client port) are silently dropped at the TX path. The kernel queues the
packet for transmission (visible via AF_PACKET capture on the interface
showing PACKET_OUTGOING), but the frame never appears on the physical
wire.

All other UDP broadcast ports (e.g., port 9998) transmit correctly
through the same bridge, same interface, same code path. Only
destination port 67/68 (DHCP) is affected.

This breaks any DHCP server (e.g., dnsmasq) running on the bridge host,
as DHCP offers never reach clients.

### Keywords

igc, I225, bridge, DHCP, broadcast, TX drop, dnsmasq

### Kernel version

    Linux version 6.8.0-134-generic (Ubuntu 24.04)
    Also tested: 6.17.0-35-generic (Ubuntu 24.04 HWE) - same behavior

### How to reproduce

1. System: Supermicro X13SAZ-F with Intel I225-LM (PCI 8086:15f2), igc driver
2. Create a Linux bridge and enslave the igc interface:

        ip link add br-fvn type bridge
        ip link set eno1 master br-fvn
        ip addr add 172.31.0.3/16 dev br-fvn
        ip link set br-fvn up

3. Run dnsmasq as DHCP server on br-fvn:

        dnsmasq --interface=br-fvn --dhcp-
range=172.31.100.1,172.31.254.255,255.255.0.0,12h --dhcp-authoritative

4. Connect a DHCP client to eno1 (directly or via switch)
5. Observe: dnsmasq logs show DHCPDISCOVER received and DHCPOFFER sent, but the 
client never receives the offer

### Verification that the bug is interface-specific

- Replacing eno1 (igc, I225-LM) with a USB ethernet adapter (r8152, RTL8153) in 
the same bridge: DHCP works immediately
- Using an Intel I210 NIC (igb driver) in the same bridge on identical kernel: 
DHCP works
- Sending UDP broadcast to port 9998 from the same bridge via the same igc 
interface: packets arrive at client
- Sending UDP broadcast to port 68 from the same bridge via the same igc 
interface: packets never arrive
- AF_PACKET raw capture on eno1 (host side) shows the DHCP offer as 
PACKET_OUTGOING (type=4), confirming the kernel hands it to the driver, but the 
frame never hits the wire
- Wireshark/tcpdump on the client confirms zero DHCP offers received

### Environment

    Processor: Intel Core i9-14900K
    Board: Supermicro X13SAZ-F
    NIC: Intel I225-LM (8086:15f2, subsystem 15d9:15f2)
    Driver: igc
    Firmware: 1073:8754
    Bus: 0000:01:00.0 (PCIe x1, 5.0 GT/s)
    OS: Ubuntu Core 24 (snap-based)

### Other notes

- ethtool -K br-fvn tx-checksum-ip-generic off was tested - no change
- bridge-nf-call-iptables=0 was tested - no change
- br_netfilter module unloaded - no change
- net.ipv4.ip_forward=1 was tested - no change
- No iptables, nftables, or ebtables rules present
- No eBPF/XDP programs attached
- The igb driver (Intel I210) does NOT exhibit this behavior on the same kernel

Bug also reported at: https://bugzilla.kernel.org/show_bug.cgi?id=221750

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2160556

Title:
  igc: Intel I225 silently drops UDP broadcast to port 68 (DHCP) when
  interface is a bridge member

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2160556/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to