Re: em0: No buffer space available for IPv6 traffic but IPv4 is OK

From: Kevin Oberman <rkoberman_at_gmail.com>
Date: Fri, 18 Aug 2023 21:54:01 UTC
On Fri, Aug 18, 2023 at 1:02 AM José Pérez <fbl@aoek.com> wrote:

> Hi,
> on this intel em0
> # dmesg |fgrep em0
> em0: <Intel(R) Gigabit CT 82574L> port 0xd800-0xd81f mem
> 0xfe9e0000-0xfe9fffff,0xfe9dc000-0xfe9dffff irq 48 at device 0.0 on pci1
> em0: Using 1024 TX descriptors and 1024 RX descriptors
> em0: Using 2 RX queues 2 TX queues
> em0: Using MSI-X interrupts with 3 vectors
> em0: Ethernet address: xx:xx:xx:xx:xx:xx
> em0: netmap queues/slots: TX 2/1024, RX 2/1024
>
> IPv4 and IPv6 used to work seamlessly for the past 6+ years.
>
> # ifconfig em0
> em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu
> 1500
>
>
> options=81249b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LRO,WOL_MAGIC,VLAN_HWFILTER>
>          ether xx:xx:xx:xx:xx:xx
>          inet xxx.xxx.xxx.xxx netmask 0xffffff00 broadcast
> xxx.xxx.xxx.255
>          inet6 fe80::xxxx:xxxx:xxxx:xxxx%em0 prefixlen 64 scopeid 0x1
>          inet6 2xxx:xxxx:xxxx:xxxx::1 prefixlen 64
>          media: Ethernet autoselect (100baseTX <full-duplex>)
>          status: active
>          nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
>
> Nevertheless, now IPv6 traffic does not work anymore:
> # ping6 www.google.com
> PING6(56=40+8+8 bytes) 2xxx:xxxx:xxxx:xxxx::1 --> 2yyy:yyyy:yyyy:yyyy::1
> ping6: sendmsg: No buffer space available
> ping6: wrote www.google.com 16 chars, ret=-1
>
>  From send(2):
> [...]
>       [ENOBUFS]          The system was unable to allocate an internal
> buffer.
>                          The operation may succeed when buffers become
>                          available.
>
>       [ENOBUFS]          The output queue for a network interface was
> full.
>                          This generally indicates that the interface has
>                          stopped sending, but may be caused by transient
>                          congestion.
> [...]
>
> There is little traffic on the interface and it seems that buffers are
> available:
> # netstat -m
> 2108/3472/5580 mbufs in use (current/cache/total)
> 2062/1336/3398/1018874 mbuf clusters in use (current/cache/total/max)
> 15/1250 mbuf+clusters out of packet secondary zone in use
> (current/cache)
> [...]
>
> Interestingly, there is incoming IPv6 local broadcast traffic as sniffed
> by
> # tcpdump -n -i em0 ip6
> (ICMP6, neighbor solicitation, UDP from LAN link local addresses).
>
> Has anyone seen this before and can suggest a fix?
>
> Reboot did not solve, no software updates made, no config changes, just
> stop working from one day to the next.
>
> Thank you.
>
> --
> José Pérez
>

Oddly, ENOBUFS is the error I get when my firewall is blocking transmit
traffic. There may well be other causes.
-- 
Kevin Oberman, Part time kid herder and retired Network Engineer
E-mail: rkoberman@gmail.com
PGP Fingerprint: D03FB98AFA78E3B78C1694B318AB39EF1B055683