Hi everyone,
I debated whether or not to do a yearly report like I used to do. I skipped doing it last year as after actually writing it, it felt like I didn't really have anything worthwhile to say, so I didn't post it. But some users then started asking "where is it?", so I guess there are enough people who do care about these, so why not.
2021 in review
2021 has been a challenging year both on the personal and development fronts. Like most people, the current pandemic situation is taking its toll on both morale and motivation to do anything. Things are certainly not looking good for the start of 2022, we can only hope that it will get better after that. Uh, sounds like what most of us were also thinking 12 months ago, before Delta, and then Omicron, appeared in our lives to rain on our parade, and pretty much send us back to square one in terms of spread control.
On the development front, 2021 started on a major note, with the switch to the newer 386 codebase, which finally reunited the AC and AX code into one single codebase. On Asus' end of things, 386 introduced AiMesh 2.0 (with a much more polished user interface), official OpenSSL 1.1.1 support (my firmware had an hybrid implementation, as I couldn't use it for closed source portions). 386.1 also added support for the RT-AX86U (which is probably their best product since the RT-AC68U in my personal opinion). It also marked support for a first ROG model, the GT-AC2900, thanks to collaborative efforts with Asus who took care of making the non-ROG UI work with it, and doing some additional support work around miniupnpd. This was going to be a test to determine if future ROG models could realistically be supported without too much extra work. End users didn't seem to complain at the loss of the ROG-centric user interface, so later on, the GT-AX11000 was also added.
The first half of 2021 also saw the introduction of support for Cake QOS on newer models. While this unfortunately requires disabling hardware NAT, the fact that it mostly benefits people with slower connections still makes this a worthwhile addition to the firmware.
After that, development hit a wall, as for licensing reasons, Asus were temporarily unable to provide GPL archives until they resolved these licensing issues. The problem was more than just a legal one, as resolving this introduced technical challenges of their own, which also had to be resolved by their engineers. While they were working on this, on my end I devoted time to attacking some of the ideas that were currently on my TODO list, which meant another task of code rewrites related to OpenVPN. This paved the way to the introduction of VPN Director, which was a redesign of the existing policy-based routing. This new feature made management of routing policies simpler and more intuitive by being centralized into one single location, and they were also able to resolve a few long-standing issues by leveraging the complete overhaul of how OpenVPN routing was handled, by moving it outside of OpenVPN itself and into the firmware code. QR Code display for quickly connecting new clients to your wifi network was another long-planned feature that finally made its debut in 386.3.
With the release of 386.3, things went into standby mode after that while Asus were still working on the GPL-related issues. These were finally mostly addressed this autumn (with a few remaining issues still being worked on as I write this), allowing developnent to be resumed on my side. That meant merging nearly 6 months worth of code changes, and resolving issues introduced by the new GPL build process from Asus. 2021 is about to end, and 386.4 is expected to make its official debut in the coming days.
2021 saw an increase in collaboration with Asus. While we had always been in contact over the years, we communicated even more this year, with code and ideas going in both directions. That collaboration benefits both regular Asuswrt users as well as Asuswrt-Merlin users, so everyone wins in the end. Their continued support of this project is certainly an important element in both the success and longevity of this project. If anyone had any concerns that Asus might be deliberately trying to hinder this project with this year's GPL issues, you couldn't be farther from the truth. The situation was equally frustrating for them, and they would constantly provide feedback as to their progress.
Third-party (legit) model support
Another change in 2021 was GNUton's increased involvement in supporting other models with his own Asuswrt-Merlin fork. On top of the DSL-AC68U that he already supported, he's been working on adding more models like the DSL-AX82U and RT-AX82U, and he also has plans at possibly adding even more models in the future. This is probably the best way to increase the number of supported models without requiring me to take on the whole burden of doing everything on my own. Cause one thing that hasn't changed this year is that Asuswrt-Merlin still remains a one-man project. This means I still need to carefully balance my available time between the workloads of merging new GPL code, fixing/adding new features of my own, and adding support for new models. GNUton handling support for a few models does mean a few less balls for me to juggle with.
I should also mention that after all these years, john9527 is still there with support for older models such as the RT-N66U.
If I had one wish, it would be to eventually see more developers take care of supporting older models, which would allow me to more easily move forward, possibly shifting support for some older models into them, while I can more easily move on with adding new models to the supported list of routers. Unfortunately, Asuswrt-Merlin isn't your typical open source project, as it involves a lot of very specialized know-how that you won't learn by working on other 100% open sourced projects. A lot of technical details related to how the build environment works is in itself an obstacle. That makes it hard for new potential developers to become actively involved.
2021 in summary:
What's ahead for 2022:
First will be the final release of 386.4 in the first days of January. After that I might be looking at possible minor releases to address any issues that might arise with 386.4.
After that, there are a few things that I currently have planned:
When and in what order these will happen will depend largely on Asus. First one requires them to resolve lingering GPL-related issues (otherwise, support is already complete on my end). Second one depends on their own development timetable (as RC3 is currently still in active development, with them having provided a few public betas over the past few months). And the third one will depend on both their own development schedule and the availability of GPL code. And after that, I will need to begin investigating what would be involved in supporting these new models.
April 2022 will also mark the 10th anniversary of this project. Holy crap.
Conclusion
That pretty much concludes things. Once again, I have to extend my thanks to various parties whose contribution have been essential to this project.
Take care everyone.
I debated whether or not to do a yearly report like I used to do. I skipped doing it last year as after actually writing it, it felt like I didn't really have anything worthwhile to say, so I didn't post it. But some users then started asking "where is it?", so I guess there are enough people who do care about these, so why not.
2021 in review
2021 has been a challenging year both on the personal and development fronts. Like most people, the current pandemic situation is taking its toll on both morale and motivation to do anything. Things are certainly not looking good for the start of 2022, we can only hope that it will get better after that. Uh, sounds like what most of us were also thinking 12 months ago, before Delta, and then Omicron, appeared in our lives to rain on our parade, and pretty much send us back to square one in terms of spread control.
On the development front, 2021 started on a major note, with the switch to the newer 386 codebase, which finally reunited the AC and AX code into one single codebase. On Asus' end of things, 386 introduced AiMesh 2.0 (with a much more polished user interface), official OpenSSL 1.1.1 support (my firmware had an hybrid implementation, as I couldn't use it for closed source portions). 386.1 also added support for the RT-AX86U (which is probably their best product since the RT-AC68U in my personal opinion). It also marked support for a first ROG model, the GT-AC2900, thanks to collaborative efforts with Asus who took care of making the non-ROG UI work with it, and doing some additional support work around miniupnpd. This was going to be a test to determine if future ROG models could realistically be supported without too much extra work. End users didn't seem to complain at the loss of the ROG-centric user interface, so later on, the GT-AX11000 was also added.
The first half of 2021 also saw the introduction of support for Cake QOS on newer models. While this unfortunately requires disabling hardware NAT, the fact that it mostly benefits people with slower connections still makes this a worthwhile addition to the firmware.
After that, development hit a wall, as for licensing reasons, Asus were temporarily unable to provide GPL archives until they resolved these licensing issues. The problem was more than just a legal one, as resolving this introduced technical challenges of their own, which also had to be resolved by their engineers. While they were working on this, on my end I devoted time to attacking some of the ideas that were currently on my TODO list, which meant another task of code rewrites related to OpenVPN. This paved the way to the introduction of VPN Director, which was a redesign of the existing policy-based routing. This new feature made management of routing policies simpler and more intuitive by being centralized into one single location, and they were also able to resolve a few long-standing issues by leveraging the complete overhaul of how OpenVPN routing was handled, by moving it outside of OpenVPN itself and into the firmware code. QR Code display for quickly connecting new clients to your wifi network was another long-planned feature that finally made its debut in 386.3.
With the release of 386.3, things went into standby mode after that while Asus were still working on the GPL-related issues. These were finally mostly addressed this autumn (with a few remaining issues still being worked on as I write this), allowing developnent to be resumed on my side. That meant merging nearly 6 months worth of code changes, and resolving issues introduced by the new GPL build process from Asus. 2021 is about to end, and 386.4 is expected to make its official debut in the coming days.
2021 saw an increase in collaboration with Asus. While we had always been in contact over the years, we communicated even more this year, with code and ideas going in both directions. That collaboration benefits both regular Asuswrt users as well as Asuswrt-Merlin users, so everyone wins in the end. Their continued support of this project is certainly an important element in both the success and longevity of this project. If anyone had any concerns that Asus might be deliberately trying to hinder this project with this year's GPL issues, you couldn't be farther from the truth. The situation was equally frustrating for them, and they would constantly provide feedback as to their progress.
Third-party (legit) model support
Another change in 2021 was GNUton's increased involvement in supporting other models with his own Asuswrt-Merlin fork. On top of the DSL-AC68U that he already supported, he's been working on adding more models like the DSL-AX82U and RT-AX82U, and he also has plans at possibly adding even more models in the future. This is probably the best way to increase the number of supported models without requiring me to take on the whole burden of doing everything on my own. Cause one thing that hasn't changed this year is that Asuswrt-Merlin still remains a one-man project. This means I still need to carefully balance my available time between the workloads of merging new GPL code, fixing/adding new features of my own, and adding support for new models. GNUton handling support for a few models does mean a few less balls for me to juggle with.
I should also mention that after all these years, john9527 is still there with support for older models such as the RT-N66U.
If I had one wish, it would be to eventually see more developers take care of supporting older models, which would allow me to more easily move forward, possibly shifting support for some older models into them, while I can more easily move on with adding new models to the supported list of routers. Unfortunately, Asuswrt-Merlin isn't your typical open source project, as it involves a lot of very specialized know-how that you won't learn by working on other 100% open sourced projects. A lot of technical details related to how the build environment works is in itself an obstacle. That makes it hard for new potential developers to become actively involved.
2021 in summary:
- 3 major releases (almost 4 considering 386.4 is expected to be released very close to January 1st)
- Addition of VPN Director, QRCode display, Cake QOS
- Support was added for the RT-AX86U, RT-AX68U, GT-AC2900, GT-AX11000.
What's ahead for 2022:
First will be the final release of 386.4 in the first days of January. After that I might be looking at possible minor releases to address any issues that might arise with 386.4.
After that, there are a few things that I currently have planned:
- Adding support for the RT-AC68U_V4 and GT-AXE11000
- Moving to Asus's RC3 (386_5xxxx) code base, once it comes out of beta
- Adding support for a few unannounced yet models (I already have the devices in hand, but no GPL code yet)
When and in what order these will happen will depend largely on Asus. First one requires them to resolve lingering GPL-related issues (otherwise, support is already complete on my end). Second one depends on their own development timetable (as RC3 is currently still in active development, with them having provided a few public betas over the past few months). And the third one will depend on both their own development schedule and the availability of GPL code. And after that, I will need to begin investigating what would be involved in supporting these new models.
April 2022 will also mark the 10th anniversary of this project. Holy crap.
Conclusion
That pretty much concludes things. Once again, I have to extend my thanks to various parties whose contribution have been essential to this project.
- Asus, which provides both support and development samples for this project.
- @thiggins and SNBForums for providing us all a home.
- SNBForums users for providing the end-user support for Asuswrt-Merlin.
- Anyone who donated over Paypal. I'm sorry for not always personally acknowledging you all like I used to do, keeping my mailbox under control has been challenging these past few months. Your contributions are always very appreciated!
Take care everyone.