I recently reinstalled Fedora (host) and I'm trying to import a
previously working FreeBSD 13 guest.  It boots fine, but fails to get
an address from DHCP.  In the FreeBSD boot output it prints:

  Starting dhclient.
  DHCPDISCOVER on vtnet0 to 255.255.255.255 port 67 interval 7
  DHCPDISCOVER on vtnet0 to 255.255.255.255 port 67 interval 9
  DHCPDISCOVER on vtnet0 to 255.255.255.255 port 67 interval 9
  DHCPDISCOVER on vtnet0 to 255.255.255.255 port 67 interval 10
  DHCPDISCOVER on vtnet0 to 255.255.255.255 port 67 interval 17
  5 bad udp checksums in 5 packets

Indeed, tcpdumping the network on the host side shows that checksums
are wrong (note "bad udp cksum" in the reply message):

    0.0.0.0.bootpc > 255.255.255.255.bootps: [udp sum ok] BOOTP/DHCP, Request 
from 52:54:00:d4:07:ab (oui Unknown), length 300, xid 0xf9ee0d34, secs 53, 
Flags [none] (0x0000)
          Client-Ethernet-Address 52:54:00:d4:07:ab (oui Unknown)
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message (53), length 1: Discover
            Requested-IP (50), length 4: freebsd.home.annexia.org
            Client-ID (61), length 7: ether 52:54:00:d4:07:ab
            Hostname (12), length 7: "freebsd"
            Parameter-Request (55), length 10: 
              Subnet-Mask (1), BR (28), Time-Zone (2), Classless-Static-Route 
(121)
              Default-Gateway (3), Domain-Name (15), Domain-Name-Server (6), 
Hostname (12)
              Unknown (119), MTU (26)
            END (255), length 0
            PAD (0), length 0, occurs 20
13:07:37.304083 IP (tos 0xc0, ttl 64, id 20207, offset 0, flags [none], proto 
UDP (17), length 328)
    cash.bootps > 192.168.122.203.bootpc: [bad udp cksum 0x7763 -> 0x88a0!] 
BOOTP/DHCP, Reply, length 300, xid 0xf9ee0d34, secs 53, Flags [none] (0x0000)
          Your-IP 192.168.122.203
          Server-IP cash
          Client-Ethernet-Address 52:54:00:d4:07:ab (oui Unknown)
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message (53), length 1: Offer
            Server-ID (54), length 4: cash
            Lease-Time (51), length 4: 3600
            RN (58), length 4: 1800
            RB (59), length 4: 3150
            Subnet-Mask (1), length 4: 255.255.255.0
            BR (28), length 4: 192.168.122.255
            Default-Gateway (3), length 4: cash
            Domain-Name-Server (6), length 4: cash
            END (255), length 0
            PAD (0), length 0, occurs 8

I guess this is something to do with checksum offloading.  I can only
find ancient bugs related to this.  How to fix?  The host is:

  libvirt-daemon-10.6.0-1.fc41.x86_64
  dnsmasq-2.90-3.fc41.x86_64
  Linux cash 6.11.0-0.rc5.20240830git20371ba12063.47.fc42.x86_64 #1 SMP 
PREEMPT_DYNAMIC Fri Aug 30 15:36:28 UTC 2024 x86_64 GNU/Linux

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
nbdkit - Flexible, fast NBD server with plugins
https://gitlab.com/nbdkit/nbdkit

Reply via email to