1.0
Feb 29, 2024 – A special day for a special release...
Let's celebrate the v1.0 release of Netplan! 🚀
Thanks to everybody who contributed to the project over the years, to reach this milestone!
Highlights
- Simultaneous WPA2 & WPA3 support.
- Introduction of stable
libnetplan1
API. - Mellanox VF-LAG support for high performance SR-IOV networking.
- New
hairpin
andport-mac-learning
settings, useful for VXLAN tunnels with FRR. - New
netplan status --diff
subcommand, finding differences between configuration and system state:
Releasing v1.0
- state/status: add support for identifying bridge/bond/vrf members by @daniloegea in #420
- Netplan status --diff by @daniloegea in #440
- Netplan state diff by @daniloegea in #386
- parse: allow COMMON_LINK_HANDLERS for VRFs (LP#2031421, Closes: #1049432) by @slyon in #401
- netplan: add support for WPA3-Enterprise (LP#2029876) by @daniloegea in #402
- wifi: support WPA2 and WPA3 Personal simultaneously by @daniloegea in #404
- auth: add support for LEAP and EAP-PWD (LP#2038811) by @daniloegea in #415
- wifi: make it possible to have a psk and an eap password simultaneously by @daniloegea in #416
- Migrate CriticalConnection (deprecated) to KeepConfiguration (LP#1896799) by @chr4 in #424
- apply: bring "lo" back up if it's managed by NM (LP# 2034595) by @daniloegea in #408
- Post 0.107 cleanup & dropping API/ABI compat by @slyon in #400
- ABI: Refactoring for libnetplan.so.1 by @slyon in #434
- Add additional bridge port settings by @chdxD1 in #410
- SR-IOV improvements (VF-LAG support) by @daniloegea in #439
Documentation
- Add spelling checking to the CI by @daniloegea in #417
- doc: libnetplan API reference, using Doxygen and Sphinx.breathe by @slyon in #423
- doc: Update 'Netplan everywhere' for 23.10 by @slyon in #418
- added mii-monitor-interval by @Sudo-Whodo in #411
- Adopt Docs Starter Pack by @rkratky in #429
- Fix howto docs by @rkratky in #430
- docs: add a topic about security by @daniloegea in #433
- Document and restructure libnetplan's public API symbols by @slyon in #438
- Lang. & formatting fixes in API docs. by @rkratky in #441
- Update examples.md by @sahil-sagwekar2652 in #442
Bug fixes
- GitHub CI fixes by @daniloegea in #405
- util: don't return a placeholder netdef in the iterator by @daniloegea in #406
- tunnels/validation: do not error out if "local" is not defined by @daniloegea in #407
- cli/sriov: remove unused code by @daniloegea in #435
- wireguard: ignore empty endpoints (LP#2038811) by @daniloegea in #414
- parse: improve the parsing of access-points (LP#1809994) by @daniloegea in #413
- tests: Add autopkgtest for LP#1959570 by @slyon in #419
- Fix permissions on folder '/run/NetworkManager/' by @matdug in #422
- parse-nm/wg: append the correct prefix to IPv6 addresses (LP#2046158) by @daniloegea in #428
- ovs: disable StartLimitBurst in the ovs-cleanup service (LP#2047827) by @daniloegea in #431
- ctests: stop including C files in the test files by @daniloegea in #432
- workflow/coverity: install missing dependencies by @daniloegea in #436
- state_diff: fix filtering of host scoped routes by @daniloegea in #426
- sriov: don't generate duplicate entries in the rebind.service file by @daniloegea in #437
- check if ovsdb-server.service is active before displaying warning by @viciousdrop in #421
- parser: accept the special MAC address options (LP#2045096) by @daniloegea in #427
- CI: fix NetworkManager autopkgtest not using deb822 by @slyon in #443
- tests:integration: Be less strict about systemctl daemon-reload (LP#2048388) by @slyon
- Netplan status --diff refactoring by @daniloegea in #444
New Contributors
- @chdxD1 made their first contribution in #410
- @chr4 made their first contribution in #424
- @Sudo-Whodo made their first contribution in #411
- @matdug made their first contribution in #422
- @rkratky made their first contribution in #429
- @viciousdrop made their first contribution in #421
- @sahil-sagwekar2652 made their first contribution in #442
Full Changelog: 0.107...1.0
Show all
$ git shortlog 0.107..HEAD
Chris Aumann (2):
networkd: fix formatting
networkd: replace deprecated CriticalConnection= by KeepConfiguration=
Christopher (1):
Add additional bridge port settings (#410)
Danilo Egea Gondolfo (64):
netplan: add support for WPA3-Enterprise
CI/Coverity: fetch tags before trying to use them
CI/Autopkgtests: temporally use a patched version of network-manager
wifi: support WPA2 and WPA3 Personal simultaneously
util: don't return a placeholder netdef in the iterator
tunnels/validation: do not error out if "local" is not defined
tests: add some integration tests without the local address
wireguard: ignore empty endpoints
auth: add support for LEAP and EAP-PWD
parse: improve the parsing of access-points (LP: #1809994)
wifi: replace the previously defined AP with the new one
doc: spelling check improvements
CI: add spelling checker step
wifi: make it possible to have a psk and an eap password simultaneously
nm-parse: always read the PSK into the new psk variable
netdef: simplify NetplanRoute __eq__ and __hash__
state_diff: add the new state_diff submodule
state_diff: add the get_diff() method
state_diff: add support for IP addresses analysis
state_diff: add support for nameservers analysis
state_diff: add support for search domains analysis
state_diff: add support for MAC addresses analysis
state_diff: add support for routes analysis
state_diff: add a JSON encoder for NetplanRoutes
state_diff: add more information to the missing_interfaces result
state_diff/get_diff(): return the interfaces sorted by their indices
tools/diff.py: add a temporary tool to test netplan diff
apply: bring "lo" back up if it's managed by NM
apply: don't assume the NM loopback connection is called "lo"
ovs: disable StartLimitBurst in the ovs-cleanup service
ctests: stop including C files in the test files
docs: add a topic about security
workflow/coverity: install missing dependencies
state_diff: fix filtering of host scoped routes
cli/sriov: remove unused code
tests: assert generated .service files in assert_sriov
tests/sriov: test if the generated netplan-rebind service is correct
sriov: don't generate duplicate entries in the rebind.service file
state/status: add support for identifying bridge/bond members
state/status: add support for VRF members and interface kind
state/status: Rename Members to Interfaces
libnetplan: add a get_vrf_link() function
state_diff: add support for bond/bridge/vrf
state_diff: sort the list of IPs in the diff
state_diff: sort routes by destination address
state_diff: do not process interfaces removed from netplan
state_diff: filter out loopback host scoped route
cli/utils: add a function to create a lookup table from iproute2/rt_tables
cli/status: add netplan status --diff
parser: accept special options for MAC address
libnetplan: add a getter for bond mode
sriov: move the udev logic to a service unit
sriov: check the eswitch mode before trying to change it
sriov_rebind: cooperate with VF LAG activation
sriov_rebind: netplan rebind --debug setup
tests/sriov: adapt tests to the last sr-iov related changes
sriov_apply: execute apply --sriov-only before network-pre.target
utils/state_diff: refactor route table lookup methods
state_diff: adopt MAC address options
libnetplan: expose the link-local setting
state_diff: handle link local IPs and routes
tools/diff.py: drop old diff script
tests: fix the status --diff integration tests
docs: add status --diff to the docs
Danilo Egêa Gondolfo (1):
parse-nm/wg: append the correct prefix to IPv6 addresses (#428), LP: #2046158
Lukas Märdian (49):
test:ovs: Avoid NetworkManager taking contol, breaking a test
parse: allow COMMON_LINK_HANDLERS for VRFs (LP: #2031421, Closes: #1049432)
docs: Add "Contribute Documentation" how-to
tests: Add autopkgtest for LP#1959570
cli:try: avoid linting error for type hints
doc: Set-up some basic Doxygen project
doc: Make Sphinx to handle autodoxygen project, using breathe
doc: create libnetplan apidoc structure
inc: Start documenting public API
doc: Update 'Netplan everywhere' for 23.10
networkd: move KeepConfiguration= into [Network] section
cli:try: use state of the art type hint
tests: skip some cases if OVS is not installed
meson: Drop legacy generator symlink
CI: cleanup
CI: fix DebCI, with multiple versions in 'unstable'
CI: adopt for usrmerge paths
tools:run_asan.sh use local Netplan python code
Makefile: update for tools/run_asan.sh artifacts
tests:regressions: Drop dbus tests, which got integrated in tests/integration/dbus.py
test:generator:base: Refactor to use new API
test:libnetplan: Refactor to avoid deprecated API, add new ctests
tests:parser:keyfile: Port to new API/bindings
inc: Drop deprecated legacy API
Drop legacy ABI compat functions
src: Drop ABI compat exports
abi: drop global state & parser
Clean up 'TODO' file
ABI: regenerate compat check for dropped symbols
CI: adopt for 0.107.1-2 on Jammy runners
meson: bump version and SOVER to 1.0
CI: upgrade network-manager test to Ubuntu Noble
src: drop legacy 'global_' data structures
util-internal: Do not export private symbols
src: Clearly mark internal API, using a '_netplan' prefix
abi-compat: move to 1.0
CI: introduce a Netplan-CI PPA, to ship NetworkManager and systemd quirks
doc: Document public API symbols
API: drop netplan_generate
API: restructure headers, sorting symbols by object they relate to
abi-compat: Update for dropped 'netplan_generate' symbol
cli:utils: introduce systemctl_is_installed helper
cli:ovs: Improve OvsDbServerNotInstalled debug message
cli:state: Recognize additional tunnel types
cli:state_diff: Display unknown interface type as 'other'
CI: fix NetworkManager autopkgtest not using deb822
test:cli:units: skip _permission_denied test if run as root
tests:integration: Be less strict about systemctl daemon-reload (LP: #2048388)
abi-compat: 1.0 ABI
Mathieu Dugal (1):
Fix permissions on folder '/run/NetworkManager/'
Robert Krátký (5):
Exclude changes in 'doc/' dir from code CI checks.
Adopt Docs Starter Pack:
Fix Doxygen config. & remove Doxyfile.
Improve how-to docs:
Lang. & formatting fixes in API docs.
Sahil Sagwekar (1):
examples: update libvirt path (#442)
Sudo-Whodo (1):
added mii-monitor-interval (#411)
Tom (1):
Update ovs.py to check if ovsdb-server.service is installed before throwing an error