Change Log ========== All notable changes to the project are documented in this file. [v24.10.2][UNRELEASED] ------------------------- ### Changes - Updated QoS documentation with pictures and more information on VLAN interface ingress/egress priority handling. [v24.10.1][] - 2024-10-18 ------------------------- ### Changes - Add support for interface description, sometimes referred to as "ifAlias". Saved as an Linux interface alias (not `altname`), e.g., `/sys/class/interfaces/veth0a/ifalias`, includes operational support ### Fixes - Fix #735: `copy` and `erase` commands missing from CLI, regression in Infix v24.10.0 defconfigs, now added as dep. in klish package [v24.10.0][] - 2024-10-18 ------------------------- **News:** this release contains *breaking YANG changes* in custom MAC addresses for interfaces! For details, see below issue #680. Also, heads-up to all downstream users of Infix. YANG models have been renamed to ease maintenance, more info below. ### Changes - Software control of port LEDs on the Styx platform has been disabled. Default driver behavior, green link and green traffic blink, is kept as-is, which should mitigate issues reported in #670 - Correcting documentation on QoS. For packets containing both a VLAN tag and an IP header, PCP priority takes precedence over DSCP priority (not vice versa). - Update CONTRIBUTING.md for scaling core team and helping external contributors understand the development process, issue #672 - Updated branding documentation with more information on how dynamic and static factory-config work, including examples - Updated container documentation, improved images, detail how to set interface name inside the container, and some syntax fixes - Updated networking documentation, new General settings section, and more details added to initial section on network building blocks - As of this release, all Infix YANG models have dropped the `@DATE` suffix from the name, this type of versioning is not handled using symlinks instead. - Update Infix `provision` script, used to install Infix on eMMC, add example of how to erase partition table to be able to re-run the script on already provisioned devices, issue #671 - OSPF: Add limitation to allow an interface to be in one area only - Add support for "dummy" interfaces, mostly useful for testing - Add support for container hostname format specifiers, just like it already works for the host's hostname setting - Hide all `status obsolete` YANG nodes in CLI - Add YANG `units`, if available, to CLI help text (default value) - The CLI commands `copy` and `erase` are now available also from Bash - Greatly reduced size of bundled curiOS httpd OCI container image, reduced from 1.8 MiB to 281 KiB - Add deviation to ietf-interfaces.yang, `link-up-down-trap-enable` is not supported (yet) in Infix, issue #709 - The default builds now include the curiOS nftables container image, which can be used for advanced firewall setups. For an introduction see ### Fixes - Fix #499: add an NACM rule to factory-config, which by default deny everyone to read user password hash(es) - Fix #663: internal Ethernet interfaces shown in CLI tab completion - Fix #674: CLI `show interfaces` display internal Ethernet interfaces, regression introduced late in v24.09 release cycle - Fix #676: port dropped from bridge when changing its VLAN membership from tagged to untagged - Fix #680: replace deviation for `phys-address` in ietf-interfaces.yang with `custom-phys-address` to allow for constructing more free-form MAC addresses based on the chassis MAC (a.k.a., base MAC) address. For more information, see the YANG model, a few examples are listed in the updated documentation. The syntax will be automatically updated in the `startup-config` and `factory-config` -- make sure to verify the changes and update any static `factory-config` used for your products - Fix #690: CLI `show ip route` command stops working after 24 hours, this includes all operational data in ietf-routing:/routing/ribs. - Fix #697: password is not always set for new users, bug introduced in v24.06.0 when replacing Augeas with native user handling - Fix #700: add missing `admin-status` to interface operational data - Fix #701: make sure CLI (and Bash) `copy` command use same sysrepo timeout as other operations that load sysrepo. Was 10 second timeout, which caused some (really big) configurations not to apply from the CLI, but worked at boot, for instance. New timeout is 60 seconds - Fix #708: allow all container networks to set interface name inside container, not just auto-generated veth-pair ends for `docker0` bridge - Fix `show interfaces` on platforms like the NanoPi R2S, which does not support reading RMON counters in JSON format using `ethtool` - Fix #730: CLI command `show ntp [sources]` stopped working in v24.08. Missing access rights after massive CLI lock-down - Fix BFD in OSPF, previously you could not enable BFD on a single interface without enabling it on all interfaces [v24.09.0][] - 2024-09-30 ------------------------- **News:** this release enhances the integration of all types of static routes with FRRouting ([Frr][]), including all routes that can be set by DHCP and IPvLL (ZeroConf) clients. Due to this fundamental change, the system routing table is now primarily read from Frr, which increases the amount of relevant routing information available to the user. E.g., in the CLI exec command `show ip route` and `show ipv6 route`. Support for adjusting the administrative distance of all types of static routes has also been added to facilitate site specific adaptations. Please see the documentation for details. ### Known Issues - The CLI command `show interfaces` may for some terminal resolutions not display all interfaces (on systems with >20 interfaces). This problem is limited to the console port and only occurs for smaller terminals (30-50 rows height). Calling `show ifaces` from the shell, dumping `/ietf-interfaces:interfaces` XPath using `sysrepocfg`, or using the CLI from an SSH session, is not affected. Issue #659 ### Changes - Upgrade Buildroot to 2024.02.6 (LTS) - Upgrade Linux kernel to 6.6.52 (LTS) - Upgrade libyang to 3.4.2 - Upgrade sysrepo to 2.11.7 - Upgrade netopeer2 (NETCONF) to 2.2.31 - Updated `infix-routing.yang` to declare deviations for unsupported OSPF RPCs and Notifications in `ietf-ospf.yang` - The CLI admin-exec command `show dns` now also shows any configured name servers, not just ones acquired via DHCP. Issue #510 - Add support for IPv4 (autoconf) `request-address`. This instructs the ZeroConf client to start with the requested address. If this is not successful the client falls back to its default behavior. Issue #628 - Major speedup (10x) in operational data, in particular when querying interface status. Very noticeable in the CLI `show interfaces` command on devices with large port counts. Issue #651 - Silence `yanger` log warnings for failing `mctl` command. Caused by `mctl` reporting no multicast filtering enabled on bridge ### Fixes - Fix #357: EUI-64 based IPv6 autoconf address on bridges seem to be randomized. Problem caused by kernel setting a random MAC before any bridge port is added. Fixed by using the device's base MAC address on bridge interfaces. Possible to override using `phys-address` option - Fix #601: CLI regression in `show ospf` family of commands causing authorized users, like `admin`, to not being able to query status of OSPF or BFD. Workaround by using the UNIX shell `sudo vtysh`. Regression introduced in v24.08.0 - Fix #603: regression in GNS3 image, starts in test mode by default. Introduced in v24.08. - Fix #613: CLI regression in tab completion of container commands, e.g., `container shell `. Regression introduced in v24.08.0 - Fix #616: Silent failure when selecting bash as login shell for non-admin user, this silent lock has been removed - Fix #618: CLI command `show interfaces` does not show bridges and bridge ports, regression introduced in v24.08.0 -- only affects bridges without multicast snooping - Fix #623: CLI command `container upgrade NAME` does not work, regression introduced in v24.06.0 - Fix #625: initialize sysrepo startup datastore at boot. Improves usability when working directly against the sysrepo datastores from the shell with `sysrepocfg` and `sysrepoctl` tools - Fix #635: OSPF: all router neighbors reported as neighbor on every interface - Fix #638: Disabling IPv4LL (autoconf) on an interface does not clean up 169.254/16 addresses - Fix #640: unable to set static default route due to priority inversion from DHCP or IPv4LL (ZeroConf) clients setting their routes directly in the kernel. This has resulted in a complete overhaul of route management, using FRRouting for all routes, including DHCP and IPv4LL routes, presentation in the CLI, and also support for custom route preference for static routes - Fix #658: deleting VETH pairs does not work unless rebooting first. Creating a VETH pair, followed by at least one other reconfiguration before removing the pair, causes `confd` to fail when applying the interface changes (tries to delete both ends of the pair) - Spellcheck path to `/var/lib/containers` when unpacking OCI archives on container upgrade - cli: restore `tcpdump` permissions for administrator level users, regression introduced in v24.08.0 - The timeout before giving up on loading the `startup-config` at boot is now 1 minute, just like operations via other front-ends (NETCONF and RESTCONF). This was previously (incorrectly) set to 10 seconds [Frr]: https://frrouting.org/ [v24.08.0][] - 2024-08-30 ------------------------- **News:** this release adds full configuration support for syslog, with logging to local files, external media, remote log server, as well as support for acting as a log sink/server. External media can now be mounted automatically, very useful, not only for logging, but also for upgrading and container images. Finally, the following consumer boards are now fully supported: - NanoPi R2S (ARM) - StarFive VisionFive2 (RISC-V) ### Changes - Upgrade Buildroot to 2024.02.5 (LTS) - Upgrade Linux kernel to 6.6.46 (LTS) - Issue #158: enhance security of factory reset. All file content is now overwritten x3, the last time with zeroes, then removed. Example, on the NanoPi R2S this process takes ~30 seconds, but may take longer in setups with bigger configurations, e.g., containers - Issue #497: support for auto-mounting USB media. Useful for logging, upgrade, and container images. Mounted under `/media/