VyOS Networks Blog

Building an open source network OS for the people, together.

VyOS Project July 2020 Update

Daniil Baturin
Posted 10 Aug, 2020

More than a half of this year has passed. The year started busy for us and there’s no slowing down. We are glad to be helping people and companies stay connected and cut connectivity costs, now that connectivity is a hard necessity, and we are also grateful to all companies that choose our services and to all contributors who send us code, documentation, and bug reports.

It’s supposed to be a slow news season now, but we have two important updates and quite some progress with 1.3 release development to share, as well as some new partnership and sponsorships announcements.

New certification platform

Our original VCNE certification exam platform had a limited capacity and could not be redistributed because a proprietary Eve-NG platform was a core part of it. 

We want the exam to be available for everyone who wants to take it, and we also want our partners around the world to conduct certification exams—to bring it closer to their local communities and to earn some money.

Thanks to Dmitriy Eschenko, who’s been working on the certification tirelessly, we now have a new implementation of the in-browser console that can connect directly to VyOS VMs, and a new web UI to tie it all together. We are not keeping that code to ourselves either—it will become a part of the future developments.

Stay tuned for a detailed update!

VyOS 1.2.6-epa1 release is coming

We’ve been working to bring the 1.3 branch closer to a stable release a lot lately, but we cannot forget about our LTS release.

There are two reasons why VyOS 1.2.x releases are getting less frequent. First, the worst bugs have been fixed and, luckily, there were no remotely exploitable vulnerabilities lately so we haven’t had to make an emergency release.
Second, VyOS 1.3 codebase is, by necessity, diverging from the LTS release which makes backporting features and fixes harder. For the upcoming 1.2.6 release, we had to produce independent implementations of some bug fixes.

Rest assured that we can produce an emergency release if there is an emergency, and VyOS 1.2.x will not enter a “security updates only” extended support phase until the 1.3 branch is completely stable.

The 1.2.6-epa1 release images will be available to contributors and customers this week, and everyone can always build their own image from the “crux” branch as usual.

We’ll post a detailed update with a full changelog when the image is ready and tested—stay tuned!

OpenCoreSummit 2020 sponsorship and free tickets for contributors

The concept of “open core” has a bad name among free software users and it’s often associated with projects where the “core” is open source in the name only or useless and all the real functionality is proprietary. However, the OpenCoreSummit is really about open source business models in general. Yuriy attended that conference past year and it’s been a positive discussion of various models and projects.

Thus, this year we decided to sponsor it—to give VyOS more exposure, and to facilitate the discussion of getting open source projects funded.

We've received a bunch of tickets as a part of our sponsor package, and we'd like to share them with our community. If you have contributed to VyOS code, documentation, or testing, feel free to apply by sending a message with “OCS 2020 ticket request” subject to info@vyos.io. If we receive more applications than we have tickets, we'll select applicants based on the amount and impact of their contributions.

OpenCoreSummit 2020 will take place online, on November 4th-6th.

XCP-ng support

XCP-ng is an open source management solution for the Xen hypervisor that comes with professional support. Since the 1.2.6 release, VyOS will provide an XVA image for it with guest tools integrated, for easy deployment and integration.

VyOS 1.3 development progress

One of the big things we want to get done for the 1.3 release is a complete rewrite of the routing protocol configuration subsystem. LTS release is a balancing act: you don’t want it to take too long to release, but you also don’t want to get stuck with legacy code that will be hard to maintain for a long time.

Thanks to Runar Borge, there’s now new code for live reload of FreeRangeRouting configs, which will make configurations easier to apply and, most importantly, revert.

Meanwhile, Christian Pössinger merged a huge refactoring of the network interface configuration code. Big changes take time to get right, and it’s good to see that our rewritten code can actually be refactored, rather than rewritten from scratch a second time.

We are also actively working to make the classic, piece by piece config data extraction a legacy, and hand-coded config.return_value() statements a thing of the past. The new config.get_config_dict() function can convert a chunk of the running config into a Python dict automatically. As usual, the devil is in the details, but we are close to an implementation that will cover all possible use cases.

Additionally, it works by parsing a config text instead of querying the old config backend for every value, which is much faster.
It took a joint, coordinated effort of the maintainers and active community contributors like Thomas Mangin, but that work is paying off.

Thanks to the work of John Estabrook, VyOS is going to get even faster. By loading config scripts into a daemon process, we can avoid not only Jinja2 template parsing overhead, but also Python interpreter startup time. Hopefully these measures will help us completely regain the performance lost in the rewrite process.

The old code was fast mostly because it wasn’t very smart. With the initial rewrite, we went to “smart but not very fast”.  Now it’s time to make it both smart and fast.

Thanks for reading the post to the end! We are continuing with the tradition of “hidden” discounts for avid readers. Here is a link with a 15% discount for all our merch that is valid until September the 30th. Get your t-shirt or a mug and show your support for the project.


The post categories: