Netplan v1.0 paves the way to stable, declarative network management

New “netplan status –diff” subcommand, finding differences between configuration and system state

As the maintainer and lead developer for Netplan, I’m proud to announce the general availability of Netplan v1.0 after more than 7 years of development efforts. Over the years, we’ve so far had about 80 individual contributors from around the globe. This includes many contributions from our Netplan core-team at Canonical, but also from other big corporations such as Microsoft or Deutsche Telekom. Those contributions, along with the many we receive from our community of individual contributors, solidify Netplan as a healthy and trusted open source project. In an effort to make Netplan even more dependable, we started shipping upstream patch releases, such as 0.106.1 and 0.107.1, which make it easier to integrate fixes into our users’ custom workflows.

With the release of version 1.0 we primarily focused on stability. However, being a major version upgrade, it allowed us to drop some long-standing legacy code from the libnetplan1 library. Removing this technical debt increases the maintainability of Netplan’s codebase going forward. The upcoming Ubuntu 24.04 LTS and Debian 13 releases will ship Netplan v1.0 to millions of users worldwide.

Highlights of version 1.0

In addition to stability and maintainability improvements, it’s worth looking at some of the new features that were included in the latest release:

  • Simultaneous WPA2 & WPA3 support.
  • Introduction of a stable libnetplan1 API.
  • Mellanox VF-LAG support for high performance SR-IOV networking.
  • New hairpin and port-mac-learning settings, useful for VXLAN tunnels with FRRouting.
  • New netplan status –diff subcommand, finding differences between configuration and system state.

Besides those highlights of the v1.0 release, I’d also like to shed some light on new functionality that was integrated within the past two years for those upgrading from the previous Ubuntu 22.04 LTS which used Netplan v0.104:

  • We added support for the management of new network interface types, such as veth, dummy, VXLAN, VRF or InfiniBand (IPoIB). 
  • Wireless functionality was improved by integrating Netplan with NetworkManager on desktop systems, adding support for WPA3 and adding the notion of a regulatory-domain, to choose proper frequencies for specific regions. 
  • To improve maintainability, we moved to Meson as Netplan’s buildsystem, added upstream CI coverage for multiple Linux distributions and integrations (such as Debian testing, NetworkManager, snapd or cloud-init), checks for ABI compatibility, and automatic memory leak detection. 
  • We increased consistency between the supported backend renderers (systemd-networkd and NetworkManager), by matching physical network interfaces on permanent MAC address, when the match.macaddress setting is being used, and added new hardware offloading functionality for high performance networking, such as Single-Root IO Virtualisation virtual function link-aggregation (SR-IOV VF-LAG).

The much improved Netplan documentation, that is now hosted on “Read the Docs”, and new command line subcommands, such as netplan status, make Netplan a well vested tool for declarative network management and troubleshooting.

Integrations

Those changes pave the way to integrate Netplan in 3rd party projects, such as system installers or cloud deployment methods. By shipping the new python3-netplan Python bindings to libnetplan, it is now easier than ever to access Netplan functionality and network validation from other projects. We are proud that the Debian Cloud Team chose Netplan to be the default network management tool in their official cloud-images for Debian Bookworm and beyond. Ubuntu’s NetworkManager package now uses Netplan as it’s default backend on Ubuntu 23.10 Desktop systems and beyond. Further integrations happened with cloud-init and the Calamares installer.

Please check out the Netplan version 1.0 release on GitHub! If you want to learn more, follow our activities on Netplan.io, GitHub, Launchpad, IRC or our Netplan Developer Diaries blog on discourse.

Netplan v0.107 is now available

I’m happy to announce that Netplan version 0.107 is now available on GitHub and is soon to be deployed into a Linux installation near you! Six months and more than 200 commits after the previous version (including a .1 stable release), this release is brought to you by 8 free software contributors from around the globe.

Highlights

Highlights of this release include the new configuration types for veth and dummy interfaces:

network:
  version: 2
  virtual-ethernets:
    veth0:
      peer: veth1
    veth1:
      peer: veth0
  dummy-devices:
    dm0:
      addresses:
        - 192.168.0.123/24
      ...

Furthermore, we implemented CFFI based Python bindings on top of libnetplan’s API, that can easily be consumed by 3rd party applications (see full cffi-bindings.py example):

from netplan import Parser, State, NetDefinition
from netplan import NetplanException, NetplanParserException

parser = Parser()

# Parse the full, existing YAML config hierarchy
parser.load_yaml_hierarchy(rootdir='/')

# Validate the final parser state
state = State()
try:
    # validation of current state + new settings
    state.import_parser_results(parser)
except NetplanParserException as e:
    print('Error in', e.filename, 'Row/Col', e.line, e.column, '->', e.message)
except NetplanException as e:
    print('Error:', e.message)

# Walk through ethernet NetdefIDs in the state and print their backend
# renderer, to demonstrate working with NetDefinitionIterator &
# NetDefinition
for netdef in state.ethernets.values():
    print('Netdef', netdef.id, 'is managed by:', netdef.backend)
    print('Is it configured to use DHCP?', netdef.dhcp4 or netdef.dhcp6)

Changelog:

Bug fixes:

Netplan v0.106 is now available

I’m happy to announce that Netplan version 0.106 is now available on GitHub and is soon to be deployed into an Ubuntu/Debian/Fedora installation near you! Six months and 65 commits after the previous version, this release is brought to you by 4 free software contributors from around the globe.

Highlights

Highlights of this release include the new netplan status command, which queries your system for IP addresses, routes, DNS information, etc… in addition to the Netplan backend renderer (NetworkManager/networkd) in use and the relevant Netplan YAML configuration ID. It displays all this in a nicely formatted way (or alternatively in machine readable YAML/JSON format).

Furthermore, we implemented a clean libnetplan API which can be used by external tools to parse Netplan configuration, migrated away from non-inclusive language (PR#303) and improved the overall Netplan documentation. Another change that should be noted, is that the match.macaddress stanza now only matches on PermanentMACAddress= on the systemd-networkd backend, as has been the case on the NetworkManager backend ever since (see PR#278 for background information on this slight change in behavior).

Changelog

Bug fixes:

Netplan v0.105 is now available

I’m happy to announce that Netplan version 0.105 is now available on GitHub and is soon to be deployed into an Ubuntu/Debian installation near you! Six month and exactly 100 commits after the previous version, this release is brought to you by 7 free software contributors from around the globe.

Changelog

  • Add support for VXLAN tunnels (#288), LP#1764716
  • Add support for VRF devices (#285), LP#1773522
  • Add support for InfiniBand (IPoIB) (#283), LP#1848471
  • Allow key configuration for GRE tunnels (#274), LP#1966476
  • Allow setting the regulatory domain (#281), LP#1951586
  • Documentation improvements & restructuring (#287)
  • Add meson build system (#268)
  • Add abigail ABI compatibility checker (#269)
  • Update of Fedora RPM spec (#264)
  • CI improvements (#265#282)
  • Netplan set uses the consolidated libnetplan YAML parser (#254)
  • Refactor ConfigManager to use the libnetplan YAML parser (#255)
  • New netplan_netdef_get_filepath API (#275)
  • Improve NetworkManager device management logic (#276), LP#1951653

Bug fixes

Netplan v0.104 is now available

I’m happy to announce that netplan.io version 0.104 is now available on Github and has been uploaded into the next Ubuntu LTS release, code name “Jammy”: netplan.io 0.104-0ubuntu1! This is a big release that has been brought to you by 10 contributors around the globe.

Changelog:

  • Enable embedded-switch-mode setting on SmartNICs (#253)
  • Permit multiple patterns for the driver globs in match (#202), LP#1918421
  • Improve routing capabilities (#248), LP#1892272LP#1805038
  • Support additional link offload options for networkd (#225) (#242), LP#1771740
    • receive-checksum-offloadtransmit-checksum-offloadtcp-segmentation-offload,
      tcp6-segmentation-offloadgeneric-segmentation-offloadgeneric-receive-offload,
      large-receive-offload
  • Consolidate enum-to-string arrays (#230)
  • Handle differing ip6-privacy default value for NetworkManager (#263)
  • YAML state tracking (--state rootdir) for DBus API and netplan try (#231), LP#1943120
  • Support ConfigureWithoutCarrier (ignore-carrier) for networkd (#215)
  • Move primary git branch master to main
  • Documentation improvements (#226)
  • Compatibility for glib-2.70 (#235)
  • Cleanup Makefile, install only public headers
  • Improve test reliability & enable integration testing CI for autopkgtests
  • Netplan get to use the libnetplan parser (#252)
  • libnetplan:
    • introduce the notion of NetplanState (#232)
    • use an explicit parser context (#233)
    • expose coherent generator APIs (#239)
    • improve overall error handling (#234)
    • consolidation of YAML parsing into the library (#241#249#250#251)
  • Restrict the symbol export to a determined public API (#227)
    • WARNING: We dropped some internal symbols from the API that we know
      have no external consumers (that we are aware of)
    • 0.103: _serialize_yamlcontains_netdef_typetmpvalidate_default_route_consistency
    • 0.102: cur_filenamenetplan_netdef_new
    • 0.100: address_option_handlersis_hostnamevalidate_ovs_targetwireguard_peer_handlers
    • 0.99: current_fileis_ip4_addressis_ip6_addressmissing_id,
      missing_ids_foundparser_errorvalidate_backend_rulesvalidate_netdef_grammar,
      yaml_error

Bug fixes:

  • Fix removal of defunct OVS vlan interfaces (#256), LP#1959147
  • Make ConfigManager cleanup on destruction (#259), LP#1959729
  • Do not write unvalidated YAML from keyfile (#247), LP#1952967
  • Disable temporary address generation for real with NetworkManager (#244), LP#1948027
    • this is a slight change in behavior for NM, but is in line with the docs
      and implementation of the networkd backend renderer
  • Ignore empty YAML hints and delete files on set network=null (#246), LP#1946957
  • Wait for ‘netplan try’ to be ready in DBus API (#245), LP#1949893
  • Initialize self.state in apply (#243), LP#1949104
  • Driver fallback to nl80211 and/or wext for wpa_supplicant (#240), LP#1814012
  • Handle missing gateway in keyfile routes, keep dns-search fallback (#238)
  • Make it possible to unset a whole devtype subtree (#236), LP#1942930
  • Fix normalization of multiple keys on a single dict in tests (#229)
  • Add default-routes feature flag
  • Fix memory leaks, dangling pointers & overall cleanup of API data (#228)
  • Small whitespace and formatting fixes & shipping EditorConfig (#224)

OpenPhoenux at FOSDEM 2013

openphoenux-logo
The team of OpenPhoenux presented the development process of the open hardware and free software powered mobile plattform “GTA04” at FOSDEM 2011 and 2012, including working prototypes and preview-boards for developers.

OpenPhoenux-3704Now, that the OpenPhoenux has taken off to reach a broader audience, we’ll show off all the open hardware (prototypes of new products and finished devices) at FOSDEM 2013. We hope you’re already eager to have your hands on the latest and greatest open mobile handhelds, which will be presented at our booth!

All of those are based on the GTA04 open mobile plattform, whose latest revision GTA04-A5 is ready and waiting for pre-orders to finance the next production run.

In addition, there are still a few complete GTA04 (revision A4) smartphone units on stock at the Openmoko reseller Pulster.eu. Contact him for further information.

Those are all great hardware projects for Linux/FOSS enthusiasts and freedom lovers! But the World of OpenPhoenux is not limited to hardware gadgets, but is connected to several other open mobile and communication projects, as well:

SHR    

So, if you’re visiting FOSDEM this year and are interested in open mobile communications it is a must to drop by the “World of OpenPhoenux”-booth (No. 3) in building AW, right next to Jolla/Sailfish, Hackable Devices/MakerBot, Enlightenment and more!

We’re looking forward to meet you there, answer your questions and demo the devices to you!

AW_stands

Openmoko/OpenPhoenux GTA04 jumps off

Table of Contents

gta04+pcblayout

The Story

All started off after Openmoko Inc. began to ship the Openmoko Neo 1973 (GTA01) and Neo Freerunner (GTA02) in 2007, which are fully open source smartphones. A dream became true for many open source lovers and technology enthusiasts at that time.

Sadly, Openmoko Inc. canceled their efforts for an open smartphone in 2009. But due to their openness (schematics, hardware specifications, software) it was possible for enthusiasts from the Openmoko community, with great support from Golden Delicious Computers (one of the german Openmoko distributors), to develop a new and modern open smartphone – the OpenPhoenux GTA04.

Technical Specifications

DSC00972

  • 1GHz ARM Cortex-A8 processor (DM3730)
  • PowerVR integrated graphics (SGX530)
  • 2.8” resistive VGA touchscreen
  • HSDPA 3G modem (Option GTM601)
  • 512MB RAM
  • 1GB internal memory & SDHC card slot (up to 32GB)
  • WLAN, Bluetooth, GPS, FM Transceiver
  • Accelerometer, Compass, Gyroscope, Barometric Altimeter
  • USB 2.0 OTG port, 2.5mm headset port, GPS antenna port, video out

Prototypes & First production run (2012)

om_beagle_hybrid
Golden Delicious Computers and the enthusiasts from the Openmoko community started off with the idea of stuffing a BeagleBoard into a Neo Freerunner case and connecting an USB UMTS dongle to it – this was the first prototype GTA04A1, announced in late 2010 and presented at OHSW 2010 and FOSDEM 2011.

Next, they started to integrate all of this onto a single PCB of the same size as the Neo 1973/Freerunner boards, so it could fit into their cases, use their batterys, antennas, speakers, buttons and touchscreens. This board was then called GTA04A2 – the second prototype, which had quite some problems. A redesign of that prototype resulted to the GTA04A3 “Early-Adpoter” boards, which were shipped to about 20 develpoers, enabling them to start with software development for the platform.
LinuxTag12The next step was to reach out to the people by presenting the project on other conventions like the FOSDEM 2012, Openmobility 2012, Linuxwochen 2012 and the LinuxTag 2012, to produce bigger batches of GTA04s. To finance the first production run of the GTA04A4 (which includes some more fixes over the GTA04A3) Goldelico collected pre-orders from interested people from the Openmoko community. They were able to collect about 250 pre-orders and were thus able to start the first big OpenPhoenux production run.

GTA04 Boards in vapour phase soldering machine
GTA04 Boards in vapour phase soldering machine
Unfortunately, “mass”-production turned out not to be an easy task. Goldelico had to find, analyse and solve a lot of problems within the production line and especially in the soldering process, which took a lot of time. Because of all the troubles the people who pre-ordered in the beginning had to wait about 1 year to finally get their devices. At the end of 2012 all problems were solved and the “Group-Tour” had successfully finished. The GTA04 team is very happy to have reached that big milestone. Now that there are about 300 GTA04s (A3+A4) out in the wild, the interest in the Linux/FOSS community seems to be growing for our project. To satisfy that growing demand Goldelico will happily produce more GTA04s of revision A5 (which will include some minor fixes over the A4).

“Now as we have finally learned everything about mass production […], it is time to kick-start the next [production run].” (Dr. Schaller, Golden Delicious Computers)

Next production run (2013) – Out now!

DSC01512To finance the 2nd production run of about 200 more GTA04 boards Goldelico started to collect pre-orders just recently. The production should run smoothly that time, as there were no big changes and the process is known. Production will start in march 2013 and the boards should ship shortly after that.

If you’re interested in pre-ordering one of those new A5 boards, check out the Handheld-Linux store. If you’re interested in getting a complete “Letux 2804” unit (GTA04 board build into an Openmoko Freerunner case) now you can get it from the first OpenPhoenux reseller Pulster.eu (stock is limited!).

OpenPhoenux ecosystem

openphoenux
While preparing the next revision of the GTA04 and solving production problems, the guys at Goldelico started to experiment with other GTA04 powered devices. So it is no secret, that there is already an open GTA04 tablet prototype (Letux 7004) and the ready to use GTA04 professional PDA (Letux 3704), which can be used e.g. in logistics (RFID), measurement (GPS) or guiding tasks (big sunlight readable screen & long lasting battery).
The software for the GTA04 is already in a good shape as well. Besides the Debian (squeeze) hardware-validation image, there is the Debian based QtMoko distribution and the FSO based SHR distribution, which makes the GTA04 useable as a daily phone. Furthermore, a port of Replicant (fully open source Android) is in the works. All in all the GTA04 owners in the OpenPhoenux community seem to be satisfied with their devices, so is Nikolaus Schaller from Goldelico:

“[…] I enjoy every day to be member of this OpenPhoenux community. Let’s make the OpenPhoenux fly to new levels next year!” (Dr. Schaller, Golden Delicious Computers)

I really appreciate to see our community grow again and can just second Nikolaus’ sentence. I wish the community a successful year 2013, in which we can satisfy a lot of free software enthusiasts and freedom lovers needs. OpenPhoenux – Free your phone!

Some more Goodies

There are still some more goodies in the pipeline… So stay tuned!


Creative Commons Lizenzvertrag

OpenPhoenux: Letux Smartphone and Tablet

OpenPhoenux project

The OpenPhoenux project by the german company “Golden Delicious Computers” (goldelico) is creating a fully free software compatible mobile handheld plattform, based upon an open hardware design. The first step was to design a motherboard fitting the Openmoko Neo Freerunner, so owners of Openmoko phones could “upgrade” their devices to state of the art hardware.

To finance the production of the first big batch of GTA04 boards, goldelico collected preorders of interested people [0]. This “Group Tour” enabled them to start production of about 200 boards, which started to ship to it’s new owners in May 2012 and the last ones are going to be shipped in the coming weeks. Now – about one year and a lot of production complications later – the first batch of GTA04A4 boards is finished [1] and the next one is being prepared [2]. It will include the new GTA04A5 board design, providing some minor bug fixes, and a now working production process.

If you’re interested in one of the new GTA04A5 boards, please subscribe to the OpenPhoenux-Community mailinglist, to get notified about the next production batch and the next round of preorder collection.
It is also possible to register your non-binding interest in one of the new GTA04a5 boards, by using the “Wishlist” functionality, this enables goldelico to estimate the demand and thus the next batch’s size.

Register non-binding interest: http://www.handheld-linux.com/wiki.php?page=GTA04
Visit the project’s website at: www.OpenPhoenux.org

Letux 2804 – Smartphone

The Letux 2804 is a smartphone providing a 2.8” touchscreen and a GTA04 core. It’s case can be produced by a 3D printer.
Technical Specifications:

  • 800 MHz / 1GHz ARM Cortex-A8 processor
  • PowerVR SGX integrated graphics
  • 2.84” (43mm x 58mm) VGA touchscreen
  • HSDPA 3G modem
  • 512MB RAM
  • 512MB internal memory + micro SDHC up to 32GB
  • WLAN, Bluetooth, GPS, FM Transceiver
  • Accelerometer, Compass, Gyroscope, Barometric Altimeter, Camera
  • USB 2.0 port, 2.5mm headset port, GPS antenna port, video out
  • QtMoko, SHR, Android (Replicant), Debian, …

Letux 7004 – Tablet

The Letux 7004 is a free software centric tablet, powered by a 7.0” touchscreen and the same GTA04 core, as it’s small brother Letux 2804. This tablet was developed while solving the GTA04 production problems and is in the prototyping phase at the moment. So it’s not yet ready to order, unfortunately.
Technical Specifications:

  • 1GHz ARM Cortex-A8 processor
  • PowerVR SGX integrated graphics
  • 7” (140mm × 110mm) VGA touchscreen
  • HSDPA 3G modem
  • 1GB RAM
  • 512MB internal memory + micro SDHC up to 32GB
  • WLAN, Bluetooth, GPS, FM Transceiver
  • Accelerometer, Compass, Gyroscope, Barometric Altimeter
  • USB 2.0 port, 3.5mm headset port, Ethernet port, GPS antenna port, video out
  • QtMoko, SHR, Android (Replicant), Debian, …

If you’re interested in high quality open hardware, “Made in Germany”, which is fully compatible with you favorite free and open source software, you should definitely track the projects mentioned above and jump in to get one of those great devices once you’re ready. I’m absolutely satisfied with my GTA04A3 early adopter board, which I’m happily using since over one year!

[0] http://lists.goldelico.com/pipermail/gta04-owner/2011-November/000679.html
[1] http://lists.goldelico.com/pipermail/community/2012-September/000091.html
[2] http://lists.goldelico.com/pipermail/community/2012-October/000103.html

Creative Commons Lizenzvertrag

LPI Linux Essentials

I took part in the “LPI Linux Essentials” Beta program at LinuxTag 2012 in Berlin (May 23rd, 2012). Today I got my official certificate, finally. I’m now recognized as an approved Linux and Open Source enthusiast and supporter:

In my opinion the Linux Essentials program is a nice thing, especially it’s intention to get young people at school in touch with the basics of computers and the ideals of Linux and Open Source Software. I hope the Linux Essentials recognition will broaden, now that it is officially started and find it’s way into more schools.

If you’re interested in the LPI Linux Essentials Certificate, please have a look at it’s official website:
https://www.lpi.org/linux-certifications/introductory-programs/linux-essentials

Creative Commons Lizenzvertrag

webOS is going to be OpenSource Software

HP the company which bought Palm some time ago just announced, that they are going to release webOS as open source software! The Linux kernel side of webOS was open souce since the beginning, with a few exceptions like the PowerVR 3D driver and the touchscreen driver.
We’ll see how far HP will go and what parts they’ll really open up (their announcement didn’t mention the modem protocol for example).

webOS is probably the best and most intuitive software running on smartphones today. And was said to be “the iPhone killer”. Unfortunately the first device it was sold on (Palm Pre) wasn’t exactly the best hardware as it had serveral flaws like a bad keyboard slider. Thus webOS wasn’t adopted by masses of developers and suffered from a lack of applications, which in turn made it uninteresting to end users.

I got a Palm Pre in the early days and I also got a HP|Palm Pre2 developer device some months ago, which I still enjoy to use. All in all I enjoyed developing for those devices, too, but it was pretty depressing to reverse engineer parts of the modem protocol, to be able to have it communicate with the FreeSmartphone.org (FSO) middleware and run a really free and open source operating system like SHR.

So with this news from HP what we could probably get in 2012 is:

Let’s hope the best for the mobile FOSS community in 2012!