https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292294

            Bug ID: 292294
           Summary: Accurate ECN on the loopback interface causes an
                    infinite ACK loop.
           Product: Base System
           Version: 15.0-RELEASE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: [email protected]
          Reporter: [email protected]

When I enable Accurate ECN using net.inet.tcp.ecn.enable=3, connection
involving the loopback interface (lo0) sometimes cause an infinite ACK loop in
the kernel, consuming 100% CPU of a single core doing interrupts (netisr:x).
The only way to stop the loop is using tcpdrop on both sides of the connection.
I have seen this happen when both src and dst addresses are 127.0.0.1, but also
when src or dst is 127.0.01 and the other side is the IP-address of a nic in
the server.
The problem started after upgrading from FreeBSD 14.3 to FreeBSD 15.0.
Here is a short tcpdump of lo0, when the ACK loop occurs:

13:42:22.955718 IP 127.0.0.1.43778 > 127.0.0.1.11553: Flags [.E], ack
2107191172
, win 159, options [nop,nop,TS val 948053530 ecr 2180641192], length 0
13:42:22.955721 IP 127.0.0.1.11553 > 127.0.0.1.43778: Flags [.E], ack 0, win
159
, options [nop,nop,TS val 2185300844 ecr 943393879], length 0
13:42:22.955722 IP 127.0.0.1.43778 > 127.0.0.1.11553: Flags [.E], ack 1, win
159
, options [nop,nop,TS val 948053531 ecr 2180641192], length 0
13:42:22.955724 IP 127.0.0.1.11553 > 127.0.0.1.43778: Flags [.E], ack 0, win
159
, options [nop,nop,TS val 2185300844 ecr 943393879], length 0
13:42:22.955726 IP 127.0.0.1.43778 > 127.0.0.1.11553: Flags [.E], ack 1, win
159
, options [nop,nop,TS val 948053531 ecr 2180641192], length 0
13:42:22.955727 IP 127.0.0.1.11553 > 127.0.0.1.43778: Flags [.E], ack 0, win
159
, options [nop,nop,TS val 2185300844 ecr 943393879], length 0
13:42:22.955729 IP 127.0.0.1.43778 > 127.0.0.1.11553: Flags [.E], ack 1, win
159
, options [nop,nop,TS val 948053531 ecr 2180641192], length 0
13:42:22.955730 IP 127.0.0.1.11553 > 127.0.0.1.43778: Flags [.E], ack 0, win
159
, options [nop,nop,TS val 2185300844 ecr 943393879], length 0
13:42:22.955732 IP 127.0.0.1.43778 > 127.0.0.1.11553: Flags [.E], ack 1, win
159
, options [nop,nop,TS val 948053531 ecr 2180641192], length 0
13:42:22.955733 IP 127.0.0.1.11553 > 127.0.0.1.43778: Flags [.E], ack 0, win
159
, options [nop,nop,TS val 2185300844 ecr 943393879], length 0
13:42:22.955734 IP 127.0.0.1.43778 > 127.0.0.1.11553: Flags [.E], ack 1, win
159
, options [nop,nop,TS val 948053531 ecr 2180641192], length 0
13:42:22.955736 IP 127.0.0.1.11553 > 127.0.0.1.43778: Flags [.E], ack 0, win
159
, options [nop,nop,TS val 2185300844 ecr 943393879], length 0
13:42:22.955738 IP 127.0.0.1.43778 > 127.0.0.1.11553: Flags [.E], ack 1, win
159, options [nop,nop,TS val 948053531 ecr 2180641192], length 0
13:42:22.955739 IP 127.0.0.1.11553 > 127.0.0.1.43778: Flags [.E], ack 0, win
159, options [nop,nop,TS val 2185300844 ecr 943393879], length 0
13:42:22.955741 IP 127.0.0.1.43778 > 127.0.0.1.11553: Flags [.E], ack 1, win
159, options [nop,nop,TS val 948053531 ecr 2180641192], length 0
13:42:22.955742 IP 127.0.0.1.11553 > 127.0.0.1.43778: Flags [.E], ack 0, win
159, options [nop,nop,TS val 2185300844 ecr 943393879], length 0
13:42:22.955746 IP 127.0.0.1.43778 > 127.0.0.1.11553: Flags [.E], ack 1, win
159, options [nop,nop,TS val 948053531 ecr 2180641192], length 0
13:42:22.955748 IP 127.0.0.1.11553 > 127.0.0.1.43778: Flags [.E], ack 0, win
159, options [nop,nop,TS val 2185300845 ecr 943393879], length 0
13:42:22.955750 IP 127.0.0.1.43778 > 127.0.0.1.11553: Flags [.E], ack 1, win
159, options [nop,nop,TS val 948053532 ecr 2180641192], length 0
13:42:22.955752 IP 127.0.0.1.11553 > 127.0.0.1.43778: Flags [.E], ack 0, win
159, options [nop,nop,TS val 2185300845 ecr 943393879], length 0
13:42:22.955753 IP 127.0.0.1.43778 > 127.0.0.1.11553: Flags [.E], ack 1, win
159, options [nop,nop,TS val 948053532 ecr 2180641192], length 0
13:42:22.955755 IP 127.0.0.1.11553 > 127.0.0.1.43778: Flags [.E], ack 0, win
159, options [nop,nop,TS val 2185300845 ecr 943393879], length 0

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to