Re: FreeBSD guest on Linux KVM, some vtnet(4) packets don't arrive

From: Lexi Winter <ivy_at_freebsd.org>
Date: Wed, 08 Apr 2026 15:39:27 UTC
Zhenlei Huang wrote in <28495B68-0BD1-4372-806C-C766DBCB8410@FreeBSD.org>:
> > a route exists for this on the host:
> > 
> > fd00:0:0:1::b via fe80::2 dev vm-ppc64-main proto bird metric 32 pref medium
> 
> Just to confirm, do you have a reverse route on the guest ?

no, in fact, this was the problem.  after adding a default route on the
guest side:

# route add -inet6 default fe80::1%vtnet0

... now everything is working fine.  thanks!  but i failed to notice
that problem because of the tcpdump issue, which is still present...

> That puzzled me a bit. If the net stack sees the arriving packets, then tcpdump shall
> intercept them correctly.

even with the network working, tcpdump is still not showing any packets.
i have no idea what's going on here or even where to start looking.

i'm currently installing a ppc64le guest on the same host to see if that
behaves any differently.

> Does `netstat -sp ip6` and `netstat -sp icmp6` show anything unusual ?

root@ppc64-main:~ # netstat -sp ip6
ip6:
        18 total packets received
        0 with size smaller than minimum
        0 with data size < data length
        0 with bad options
        0 with incorrect version number
        0 fragments received
        0 fragments dropped (dup or out of space)
        0 fragments dropped after timeout
        0 fragments that exceeded limit
        0 atomic fragments
        0 packets reassembled ok
        15 packets for this host
        0 packets forwarded
        0 packets not forwardable
        0 redirects sent
        20 packets sent from this host
        0 packets sent with fabricated ip header
        0 output packets dropped due to no bufs, etc.
        0 output packets discarded due to no route
        0 output datagrams fragmented
        0 fragments created
        0 datagrams that can't be fragmented
        0 packets that violated scope rules
        0 multicast packets which we don't join
        Input histogram:
                hop by hop: 18
        Mbuf statistics:
                0 one mbuf
                18 one ext mbuf
                0 two or more ext mbuf
        0 packets whose headers are not contiguous
        0 tunneling packets that can't find gif
        0 packets discarded because of too many headers
        0 failures of source address selection
        source addresses on an outgoing I/F
                4 addresses scope=0
        source addresses on a non-outgoing I/F
                3 addresses scope=0
        source addresses of same scope
                3 addresses scope=0
        source addresses of a different scope
                4 addresses scope=0
        Source addresses selection rule applied:
                10 first candidate


t@ppc64-main:~ # netstat -sp icmp6
icmp6:
        0 calls to icmp6_error
        0 errors not generated in response to an icmp6 message
        0 errors not generated because of rate limitation
        Output histogram:
                echo: 8
                neighbor solicitation: 2
                neighbor advertisement: 2
                MLDv2 listener report: 2
        0 messages with bad code fields
        0 messages < minimum length
        0 bad checksums
        0 messages with bad length
        0 total packets dropped due to failed NDP resolution
        Input histogram:
                unreach: 3
                time exceed: 3
                echo reply: 8
                neighbor solicitation: 2
                neighbor advertisement: 2
        Histogram of error messages to be generated:
                0 no route
                0 administratively prohibited
                0 beyond scope
                0 address unreachable
                0 port unreachable
                0 packet too big
                0 time exceed transit
                0 time exceed reassembly
                0 erroneous header field
                0 unrecognized next header
                0 unrecognized option
                0 redirect
                0 unknown
        0 message responses generated
        0 messages with too many ND options
        0 messages with bad ND options
        0 bad neighbor solicitation messages
        0 bad neighbor advertisement messages
        0 bad router solicitation messages
        0 bad router advertisement messages
        0 bad redirect messages
        0 default routers overflows
        0 prefix overflows
        0 neighbour entries overflows
        0 redirect overflows
        0 messages with invalid hop limit
        0 path MTU changes