Network Administration Visualized release notes

Please report bugs at https://github.com/uninett/nav/issues/new/choose . To browse existing bug reports, go to https://github.com/uninett/nav/issues .

To see an overview of upcoming release milestones and the issues they resolve, please go to https://github.com/uninett/nav/milestones .

Unreleased

Dependency changes

Important

NAV 5.19 requires PostgreSQL to be at least version 14.

Important

NAV 5.19 no longer supports Python versions older than 3.11.

These Python modules are new requirements:

  • pydantic (>=2.0)

  • django-template-partials

Python modules with changed version requirements:

  • Django (>=4.2,<4.3 → >=5.2,<5.3)

  • PyOpenSSL (23.3.0 → 26.0.0)

  • Sphinx (7.4.7 → 9.0.4)

These Python modules are no longer required:

  • pytz

  • tomli

Juniper optical (DOM) threshold values

NAV now collects the alarm and warning thresholds reported by optical transceivers on Juniper devices (for RX/TX laser power, TX laser bias current and module temperature), registering each as its own sensor. A threshold sensor is linked to the reading it applies to and shown on the Sensor details page, so the transceiver’s own limits are on hand when deciding what value to use in a threshold rule for that reading.

CAM logging for hybrid switch ports

Switch ports whose only neighbor is an unmanaged device (one registered in NAV but with no SNMP or other management profiles) can now optionally log CAM records. Previously, once the topology detector discovered such a neighbor, the cam plugin would classify the port as a link port and stop logging forwarding table entries — making it invisible to Machine Tracker.

To enable this, add the following to ipdevpoll.conf:

[cam]
log_unmanaged_neighbor_macs = yes

When enabled, these ports are treated as hybrid ports: their MAC addresses are logged for Machine Tracker while adjacency candidates are still created for the topology system. This is useful for locating both the unmanaged device itself and any end hosts behind it.

See the [cam] section in ipdevpoll for full details.

New REST API endpoints

The REST API has gained the following endpoints:

  • api/gwportprefix/ — read-only access to gateway port prefixes.

  • api/organization/ — access to organizations.

  • api/maintenance/ — listing, creating and deleting maintenance tasks.

New navdashboard CLI tool

A new navdashboard command line tool is available for listing, exporting and importing dashboards.

Unprivileged pping

NAV’s parallel pinger (pping) no longer needs to start as root on Linux. The shipped daemons.yml now sets privileged: false for pping, which means nav start pping will launch the daemon directly as the configured NAV_USER instead of as root. (Previously pping started as root, opened raw ICMP sockets, then dropped privileges to NAV_USER — the end state is the same, only the startup path has changed.)

For this to work, the kernel’s net.ipv4.ping_group_range sysctl must cover the NAV_USER’s gid (Linux 2.6.39+ for IPv4, 3.11+ for IPv6). Alternatively, the pping process must run with the CAP_NET_RAW Linux capability granted by some other mechanism on your system.

On non-Linux systems (FreeBSD, macOS), or on Linux installations where neither of the above is in place, pping will fail at startup with a descriptive error. To restore the previous behavior, edit daemons.yml and set privileged: true for pping — the daemon will then start as root and drop privileges as before.

Operators upgrading from earlier versions whose daemons.yml is customized in place will not see this change automatically; only fresh installations or those that adopt the shipped default will be affected.