Page MenuHomeFreeBSD

tcp: count two previously ignored kinds of syncookie failures
ClosedPublic

Authored by glebius on Jun 17 2025, 4:16 AM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 31 2026, 6:49 AM
Unknown Object (File)
Jan 16 2026, 7:00 AM
Unknown Object (File)
Jan 15 2026, 8:42 PM
Unknown Object (File)
Jan 5 2026, 7:25 PM
Unknown Object (File)
Dec 12 2025, 1:17 PM
Unknown Object (File)
Nov 26 2025, 11:56 PM
Unknown Object (File)
Nov 7 2025, 5:52 PM
Unknown Object (File)
Nov 1 2025, 3:45 AM
Subscribers

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision is now accepted and ready to land.Jun 17 2025, 6:44 AM
zlei added inline comments.
sys/netinet/tcp_var.h
1092

It appears there's no enough room for the two new added counter tcps_sc_spurcookie and tcps_sc_failcookie, hence old version ( 14.4-RELEASE ) netstat -sp tcp will fail when talking to current/16 ( test only with current/16, shall also fail on stable/15 ).

% netstat -sp tcp
netstat: sysctl net.inet.tcp.stats: Cannot allocate memory

A dtrace script to capture,

#!/usr/sbin/dtrace -ws

syscall::__sysctlbyname:entry
/execname == "netstat"/
{
	self->trace = 1;
}

syscall::__sysctlbyname:return
/self->trace/
{
	self->trace = 0;
}

fbt:::return
/self->trace && (int)arg1 == ENOMEM/
{
	stack();
}
# ./sysctlbyname.d
dtrace: script './sysctlbyname.d' matched 40018 probes
dtrace: allowing destructive actions
CPU     ID                    FUNCTION:NAME
  2  18318           sysctl_old_user:return 
              kernel`tcpstat_sysctl+0x93
              kernel`sysctl_root_handler_locked+0x9c
              kernel`sysctl_root+0x22f
              kernel`userland_sysctl+0x1b6
              kernel`kern___sysctlbyname+0x226
              kernel`sys___sysctlbyname+0x2d
              kernel`amd64_syscall+0x451
              kernel`0xffffffff8110146b

  2  22931            tcpstat_sysctl:return 
              kernel`sysctl_root_handler_locked+0x9c
              kernel`sysctl_root+0x22f
              kernel`userland_sysctl+0x1b6
              kernel`kern___sysctlbyname+0x226
              kernel`sys___sysctlbyname+0x2d
              kernel`amd64_syscall+0x451
              kernel`0xffffffff8110146b

  2  18312 sysctl_root_handler_locked:return 
              kernel`sysctl_root+0x22f
              kernel`userland_sysctl+0x1b6
              kernel`kern___sysctlbyname+0x226
              kernel`sys___sysctlbyname+0x2d
              kernel`amd64_syscall+0x451
              kernel`0xffffffff8110146b

  2  18316               sysctl_root:return 
              kernel`userland_sysctl+0x1b6
              kernel`kern___sysctlbyname+0x226
              kernel`sys___sysctlbyname+0x2d
              kernel`amd64_syscall+0x451
              kernel`0xffffffff8110146b

  2  34058           userland_sysctl:return 
              kernel`kern___sysctlbyname+0x226
              kernel`sys___sysctlbyname+0x2d
              kernel`amd64_syscall+0x451
              kernel`0xffffffff8110146b

  2  34062       kern___sysctlbyname:return 
              kernel`sys___sysctlbyname+0x2d
              kernel`amd64_syscall+0x451
              kernel`0xffffffff8110146b

  2  53479        sys___sysctlbyname:return 
              kernel`amd64_syscall+0x451
              kernel`0xffffffff8110146b