Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Dec 2025 22:25:29 +0000
From:      bugzilla-noreply@freebsd.org
To:        net@FreeBSD.org
Subject:   [Bug 291420] [epair] Bad UDP packet checksum with epair(4) and txcsum enabled
Message-ID:  <bug-291420-7501-WeIjAOgIFU@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-291420-7501@https.bugs.freebsd.org/bugzilla/>
References:  <bug-291420-7501@https.bugs.freebsd.org/bugzilla/>

index | next in thread | previous in thread | raw e-mail

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

leper <leper4@protonmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |leper4@protonmail.com

--- Comment #22 from leper <leper4@protonmail.com> ---
I encountered the same problem with a slightly different setup that does not
involve bge, and then reproduced it on 15.0-RELEASE in a VM with only vtnet,
epair, bridge, tap devices involved.

A bridge with two vnet jails attached to it. One jail running unbound. The
second jail running bhyve and an Ubuntu VM with the vm jail's networking setup
being another bridge of the vnet epair and the tap.

The host handles routing for the bridge network for outside connectivity.

The VM cannot use the unbound server running in the dns jail for DNS, the UDP
packets have just a partial checksum (according to Wireshark, and it just not
working). The VM can use external DNS servers just fine. If one disables txcsum
on the dns jails epair interface it starts working.

At least ICMP between the VM and the DNS jail works fine regardless of the
txcsum setting. As does DNS from the jail running bhyve.

(Out of curiosity I tried if adding the patches for txcsum support for tap
devices ( review D51289, review D51291, review D51688) would make a difference
(but still on 14-stable) and that also did not change anything.)

If it is useful I could provide this test VM image.

Host network
```
bridge0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric
0 mtu 1500
        options=10<VLAN_HWTAGGING>
        ether 58:9c:fc:10:95:97
        inet 172.16.0.1 netmask 0xfff00000 broadcast 172.31.255.255
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        bridge flags=0<>
        member: e0a_vmjail flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                port 7 priority 128 path cost 2000 vlan protocol 802.1q
        member: e0a_dns flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                port 4 priority 128 path cost 2000 vlan protocol 802.1q
        groups: bridge
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
e0a_dns: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP>
metric 0 mtu 1500
        description: vnet0 host interface for Bastille jail dns
        options=60000b<RXCSUM,TXCSUM,VLAN_MTU,RXCSUM_IPV6,TXCSUM_IPV6>
        ether 58:9c:fc:7f:2f:6a
        hwaddr 58:9c:fc:10:c5:5f
        groups: epair
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
e0a_vmjail:
flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> metric 0
mtu 1500
        description: vnet0 host interface for Bastille jail vmjail
        options=20000b<RXCSUM,TXCSUM,VLAN_MTU,RXCSUM_IPV6>
        ether 58:9c:fc:6c:b0:ca
        hwaddr 58:9c:fc:10:67:eb
        groups: epair
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

```

vmjail network:
```
vnet0: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP>
metric 0 mtu 1500
        description: jail interface for bridge0
        options=20000b<RXCSUM,TXCSUM,VLAN_MTU,RXCSUM_IPV6>
        ether 58:9c:fc:6c:b0:cb
        hwaddr 58:9c:fc:10:13:af
        groups: epair
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
bridge1: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric
0 mtu 1500
        options=10<VLAN_HWTAGGING>
        ether 9a:e7:95:53:f9:56
        inet 172.16.0.2 netmask 0xffffff00 broadcast 172.16.0.255
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        bridge flags=0<>
        member: tap0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                port 11 priority 128 path cost 2000000 vlan protocol 802.1q
        member: vnet0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                port 8 priority 128 path cost 2000 vlan protocol 802.1q
        groups: bridge vm-switch viid-4c918@
        nd6 options=9<PERFORMNUD,IFDISABLED>
tap0: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP>
metric 0 mtu 1500
        description: vmnet/linvm/0/public
        options=80000<LINKSTATE>
        ether 0e:79:d9:96:d3:03
        groups: tap vm-port
        media: Ethernet 1000baseT <full-duplex>
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        Opened by PID 10785
```

-- 
You are receiving this mail because:
You are on the CC list for the bug.

help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-291420-7501-WeIjAOgIFU>