> On Apr 12, 2022, at 3:48 PM, Kristof Provost <k...@freebsd.org> wrote:
> 
> On 12 Apr 2022, at 21:40, Charles Sprickman wrote:
> 
> On Apr 12, 2022, at 6:43 AM, Kristof Provost <k...@freebsd.org> wrote:
> 
> On 12 Apr 2022, at 2:07, Matt Garber wrote:
> 
> On Mon, Apr 11, 2022 at 7:15 PM mike tancsa <m...@sentex.net> wrote:
> 
> I was setting up a VM pf firewall and noticed I was not able to nat out 
> for some reason. Looking at the pcap, it seems when the vm is in 
> forwarding mode, I get tcp checksum errors. If I do a
> 
> ifconfig vtnet1 -rxcsum
> 
> ifconfig vtnet0 -rxcsum
> 
> nat then seems to work fine
> 
> The setup is a simple VM with the hypervisor libvirt/KVM ubuntu 20 LTS. 
> Guest is RELENG_13 from Apr 11/2022. If I change to em nics in the VM, 
> all is fine out of the box.
> 
> I opened up https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263229
> 
> Unless someone knows otherwise, I’ve been under the impression that PF — or 
> potentially any of the other FreeBSD firewalls (?), but I use PF — has been 
> “broken” in that regard on Linux KVM-based FreeBSD guests for years. As 
> such I’ve always needed to use csum_disable flags on the vtnet interfaces 
> or suffer *extremely* poor network performance, even for servers not doing 
> NAT forwarding.
> 
> That PF checksum issue was fixed c110fc49da2995d10d60d908af0838ecb4be9bee, 
> back in 2015.
> 
> Do you have a bug ID that references this issue/fix?
> 
> 
> commit c110fc49da2995d10d60d908af0838ecb4be9bee
> Author: Kristof Provost <k...@freebsd.org>
> Date:   Wed Oct 14 16:21:41 2015 +0000
> 
>     pf: Fix TSO issues
> 
>     In certain configurations (mostly but not exclusively as a VM on Xen) pf
>     produced packets with an invalid TCP checksum.
> 
>     The problem was that pf could only handle packets with a full checksum. 
> The
>     FreeBSD IP stack produces TCP packets with a pseudo-header checksum (only
>     addresses, length and protocol).
>     Certain network interfaces expect to see the pseudo-header checksum, so 
> they
>     end up producing packets with invalid checksums.
> 
>     To fix this stop calculating the full checksum and teach pf to only 
> update TCP
>     checksums if TSO is disabled or the change affects the pseudo-header 
> checksum.
> 
>     PR:             154428, 193579, 198868
>     Reviewed by:    sbruno
>     MFC after:      1 week
>     Relnotes:       yes
>     Sponsored by:   RootBSD
>     Differential Revision:  https://reviews.freebsd.org/D3779
> 
> Kristof


Thanks!

For reference, here’s links to the PRs:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=154428
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=193579
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=198868

And the others referenced earlier in the thread:

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

Charles




Reply via email to