The main areas of work where in the kernel config (which I am sure is terrible, but I haven’t had time to go clean it up), and finding arm64 versions of packages.
I did have to build it on an arm64 host as well - I ended up using Oracle Cloud for that, with free tier and the arm accelerator program for credits.
It is hosting a full IPv6 BGP view pretty well, and I haven’t noticed any major latency / speed issues using a 1gig internet connection, but multi gig speeds are still tbd.
Hi all,
I was asked about this by a customer, so I went and updated my build:
The mistake I made last time was not to ‘pin’ each package version, so the builder broke horribly after recent changes in VyOS-current.
I have now ‘pinned’ everything so if you clone this, it should produce the “same” image I just built.
I also wrote a “local” Jenkinsfile runner rather than doing each package by hand.
There was also a recent change to the image generation in vyos-build which meant we can’t build qcow2 images at the moment. I had to fight my way through a bunch of live-boot and GRUB issues as a result. But this also means the install and update process will work exactly the same as it does on x86.
Bonus: XDP works!
iperf3 Gbit/s throughput
iperf -P1
iperf -P4
iperf -P6
iperf -P8
OpenWrt
1.66
6.28
9.11
7.42
VyOS normal
1.93
5.37
8.52
9.41
VyOS XDP
5.72
9.41
9.4
9.41
XDP improvement
2.96x
1.75x
1.10x
1.00x
I reckon the ‘single’ thread speed is capped by my iperf client so I’ll go setup MoonGen for some proper tests.
As the VyOS documentation notes, the XDP path doesn’t work with firewall and NAT. I’m still looking at ways to speed that up.
If you want a copy of the VyOS ISO, DM me. I’ve been reluctant to publish them given the VyOS project depends on subscriptions, but I’ll reach out to them about it.
I would like to offer a suggestion regarding the testing methodology. While using iperf(3) is valuable, it is worth noting that it may lead to misleading results. In order to achieve more accurate measurements, I recommend considering the use of TRex test tool. Furthermore, including session counts in the test would provide a more comprehensive evaluation.
I believe implementing these adjustments will enhance the accuracy and effectiveness of the testing process.
Congratulations on your great work, and thank you for considering my input.
ik keep running into the issue of missing owamp dependencies; the build command to compile those dependencies isn’t working, so i can’t really build them manually as well
Sorry, I’ve been too busy to update the VyOS builder. It usually takes a couple of days to rebase all the tree changes and prepare a new set of patches.
I am looking to revisit it when VPP on VyOS progresses more.
There was also another arm64 builder script posted recently, I understand it generates an EFI iso, but not sure if it has the right kernel options to work on a Ten64.
Thanks for the quick response @mcbridematt! No need to apologise, already appreciate the effort you put in this.
I was able to fix the sign issues, however, the current issue is with the OWAMP dependencies. The script isn’t able to build the corresponding projects correctly and I’ve tried different things like manually installing the OWAMP dependencies, but it keeps failing. Any idea whether those dependencies are really needed and if not, how I can remove these from the project (along with all references)? Perhaps that could do the trick for the time being.
A couple of patches (like changes to GRUB) have been sent and merged into VyOS already. The remaining changes are mostly hacks around kernel configurations and command line.