feat: FreeBSD and OpenBSD drivers, read side
CI / test (3.10) (push) Successful in 42s
CI / test (3.11) (push) Successful in 37s
CI / test (3.12) (push) Successful in 29s

FreeBSDDriver (`freebsd`) and OpenBSDDriver (`openbsd`) on a shared
BsdDriver, for the BSD VMs netOrk provisions and BSD hosts added by hand
(NetOrk/netork#798).

- SSH over exec channels (napalm-device-types' run_on_transport): no PTY,
  stdout and stderr apart, real exit codes; run_command()/open_stream()
  are public. Root through `sudo -S` with the password on stdin, or
  `sudo -n` without one.
- Facts: hostname, release and running kernel (freebsd-version / uname),
  hardware from SMBIOS (kenv) or hw.* sysctls, uptime from kern.boottime.
- Interfaces and addresses (ifconfig -a: ether/lladdr, hex netmasks,
  scoped IPv6), routes (netstat -rn, OpenBSD's abbreviated networks
  written out, host/broadcast/loopback entries left out), ARP (FreeBSD's
  sentences, OpenBSD's table), users and groups, processes (lstart read as
  one five-word field), cron jobs (system crontab and the login user's).
- Parsers are pure functions, tested on output recorded from FreeBSD 15.1
  (hand-installed and cloud image) and OpenBSD 7.9 (NetOrk/netork#793),
  with internal addresses replaced by documentation ranges.
This commit is contained in:
2026-10-08 09:12:53 +02:00
commit 14afd33798
104 changed files with 3973 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
uname -a
sysctl -n kern.hostname kern.ostype kern.osrelease kern.version
sysctl -n hw.model hw.ncpu hw.physmem hw.vendor hw.product hw.serialno hw.uuid
sysctl -n kern.boottime
uptime
ifconfig -a
netstat -rn
netstat -rn -f inet
netstat -rn -f inet6
arp -an
ndp -an
netstat -an -f inet
netstat -an -f inet6
sudo fstat -n | head -60
pkg_info
pkg_info -q
sudo pkg_add -u -n
sudo syspatch -c
sudo syspatch -l
rcctl ls on
rcctl ls started
rcctl ls failed
cat /etc/passwd
ps -axww -o user,pid,ppid,%cpu,%mem,vsz,rss,stat,lstart,command
cat /etc/crontab
sudo crontab -l
df -k
swapctl -l
sysctl -n vm.loadavg
which snmpd
cat /etc/rc.conf.local
id