Files
napalm-bsd/CHANGELOG.md
T
christianmanivong 5f53de0c25
CI / test (3.10) (push) Successful in 27s
CI / test (3.11) (push) Successful in 27s
CI / test (3.12) (push) Successful in 37s
CI / test (3.10) (pull_request) Successful in 42s
CI / test (3.11) (pull_request) Successful in 42s
CI / test (3.12) (pull_request) Successful in 38s
feat: report listening sockets
get_listening_sockets() in the shape of napalm-device-types'
ListeningSocketsMixin, whose ss/cgroup reading is Linux's, and with its
rule: read as root first, and without root when that brings nothing back,
which the reading reports as `attributed: False`.

- FreeBSD: `sockstat -46lq -P tcp,udp`, which sees every socket either way.
- OpenBSD: `fstat -n` as root (the sockets nothing is connected to; port 0
  is unbound), `netstat -an` without root, as fstat shows a user only
  their own processes; those sockets come without a process.
- Addresses as ss prints them: `*` becomes 0.0.0.0 or :: by family, IPv6
  without brackets, a zone (`fe80::1%lo0`) becomes the interface. One entry
  per socket, the first process holding it.

No get_kernel_facts on purpose: KernelFactsMixin reports a Linux kernel's
modules and CONFIG_ options, which a BSD kernel does not have.

Fixtures recorded on the FreeBSD 15.1 and OpenBSD 7.9 VMs with test
listeners on 127.0.0.1 and ::1 (NetOrk/netork#798).
2026-10-08 09:26:21 +02:00

1.1 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • get_listening_sockets() in the shape of ListeningSocketsMixin: FreeBSD through sockstat, OpenBSD through fstat as root and netstat -an without, which the reading reports as attributed: False.
  • FreeBSDDriver (freebsd) and OpenBSDDriver (openbsd) on a shared BsdDriver: SSH over exec channels (no PTY, real exit codes), root through sudo -S with the password on stdin.
  • Read side (NetOrk/netork#798): facts (SMBIOS through kenv on FreeBSD, hw.* sysctls on OpenBSD; uptime from kern.boottime), interfaces and their addresses (ifconfig -a), routes (netstat -rn), ARP (arp -an), users and groups, processes (ps … lstart), cron jobs (system crontab and the login user's).
  • Parsers tested on output recorded from FreeBSD 15.1 (hand-installed and cloud image) and OpenBSD 7.9 (NetOrk/netork#793).