What's new

The State of the Onion

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

RMerlin

Asuswrt-Merlin dev
(Last year I hadn't published my usual end-of-year report as it felt mostly redundant when I re-read what I wrote. People then started asking why I hadn't posted one. So here's one for 2020. Damn, can I get long-winded at times...)
 
Last edited by a moderator:
Thank God, it's (almost) 2021
Needless to say that 2020 has been a challenging year for everyone, even more challenging for some than others. Like many of you, 2020 took its toll on my general morale, and the stress level has been higher year-long than ever before. Things have been very frustrating at times. For instance, I am STILL trying to get a CPU to build myself a new workstation, which would greatly improve my firmware development workflow by significantly reducing compile times. Got every single parts, except for the CPU, which has been unavailable at all the Canadian retailers ever since its launch 6 weeks ago. However I consider myself to have been blessed by not only having a secure job, but actually having had a fairly good year professionally. For those who don't know, I run my own IT consulting/support business, providing various IT services to a number of small companies and non-profit organizations. A lot of my customers relied heavily on me this year to get them set up for remote work, and to provide direct technical supports to their employees who had to learn how to remotely access their work data, be it through VPNs, FTP, or other remote access technologies. So if there is one area I can be thankful for in 2020, it's the fact that my job is secure, and that I was able to help all of these customers to get through this difficult year.


Development throughout 2020
On the development side of things, 2020 has been a rollercoaster as well. The increasing chasm between the various code branches used by different router models have made my work very challenging at times. At one point I had to maintain three separate codebases at the same time, and not two models were based on the same GPL content (I had to maintain a Google chart just to keep track of the whole thing!). As this was getting increasingly unsustainable for a one-man project, I decided to drop the older models (that had their own separate code branch), and to take a pause until at least Asus could get the AX model code reunified with all the AC models. This is finally happening with the move to the 386 codebase.

A lot of discussions occurred as well between Asus and I, as they wanted to see what they could do to help make my job easier. A lot of good things came out of these discussions, with for instance a promise to be more active in providing me with the necessary GPL archives that I need for every single model. We also discussed a number of other things that could help me, for instance they wanted to know what they could do help me start supporting some of their ROG models. We settled on a few things, and decided to give this a try, which led to experimental support for the GT-AC2900 coming up with the 386.1 release. After that, I will re-evaluate the possibility of adding more ROG models in the future, but it will depend on the final results of that experiment.

2020 was a very active year in terms of model support. While two models were dropped (the RT-AC87U and RT-AC3200, both of which are over 6 years old by now), four models were added (which must be a record, I believe my usual average is 1-2 model a year):
  • RT-AX56U
  • RT-AX58U
  • RT-AX86U (currently in beta)
  • GT-AC2900 (currently in beta, and an experiment)

The first three required me to add two whole new SDKs to the codebase, which is always very challenging. A typical new SDK can take me close to a whole month of work to add and debug. The fourth one involved Asus doing part of the work for me (for instance taking care of the webui portion), so it wasn't as much work for me. So in terms of support, Asuswrt-Merlin will soon support more models than it ever did before. If I can continue to get GPL releases that are all in sync, this should remain manageable. 2021 will tell.

While 2020 was mostly focused on adding new models and just trying to juggle with the scattered code base (and the last quarter of 2020 being devoted to the move to 386), early 2020 also saw some important changes, with the introduction of the new AddOn API, and the integration of @thelonelycoder's AMTM into the firmware. While Asuswrt-Merlin already had a fairly active third party development community, this opened them the door to easily integrate with webui, and also made it easier for end-users to install these add-ons. While this was the only notable software addition in 2020, it's a pretty significant one.

Another major under-the-hood project of 2020 was rewriting almost the entire OpenVPN implementation. Originally, Asuswrt-Merlin's OpenVPN implementation was based on Tomato's implementation which I had ported to my firmware back in 2012 or 2013. The web interface was written from scratch by me, but under the hood it was largely Keith Moyer's modified code running. One problem was that code was tied to a non-GPL licence. Even though I had received the author's permission to use his code, I didn't feel comfortable with the fact that I did not have complete control over that code (and OpenVPN is a major feature of Asuswrt-Merlin). Asus must have felt the same as they eventually replaced it with their own implementation, which they decided to keep closed source. So in 2020 I decided to do just the same: rewrite the whole implementation (but keeping it under a GPL licence, of course). OpenVPN must be the only major firmware feature where Asus and I have totally separate code bases. And I'm fine with it, as it allows me to have complete freedom over it, allowing me to make major feature changes, like my Policy Routing implementation. So while end-users saw almost no change from this rewrite (aside from a minor webui cleanup that I did at the same time, and numerous bugs discovered while diving into that code, and fixed in the rewrite), this has been a major project for me this year. The final result isn't just code on which I have ownership, but it also makes maintaining it a bit easier. A recent bug report for instance only took me a few minutes to track down and to fix, thanks to this new design.

As the current year is almost over, the 386.1 release is shaping up pretty well. Asus is introducing not only AiMesh 2.0 in it, but also a number of other enhancements all over the place. This has been a long beta test cycle for multiple reasons:
  • New codebase, with lots of changes to merge in
  • Asus themselves were still in a beta cycle, which meant frequent GPL merges for me to do
  • The reunification of the AX codebase with the main codebase was a lot of work on my end of things
  • New model additions, which meant new SDK merges

There is still some work left to do, as I am currently awaiting another major code drop, which should take care of a number of issues currently present, namely around the newer AX models.


2020 in summary
  • Four new models
  • Two models removed
  • 6 releases (10 firmwares if we consider the branched out firmwares for older models)
  • AddOns API
  • Rewrite of OpenVPN code
  • The move to 386 (almost there)
  • A new project website

The plan for 2021
The short term plan is evidently to finalize the 386.1 release and push it out. I am currently awaiting what will probably be the final GPL code drop upon which I will eventually release the 386.1 final build. Development rate will probably be affected by whatever workload my job brings after the Holidays, so they could also cause things to be delayed a bit more.

After that, I will probably focus on bug fixing if anything (that I can fix) comes up from such a major release. And then I will evaluate the final conclusion of the GT-AC2900 experiment, and determine whether it would be doable to add even more ROG models in the future, or if the total number of supported models is simply too much. 2021 will probably once again be mostly focussed on maintaining rather than adding any new major feature (I currently have nothing major on my internal TODO list, just a few minor under-the-hood enhancements).


Conclusion
Once again, it's time for me to close this post (and this craptastic year) by thanking everyone who has had a role in this project:
  • Everyone who felt the need to donate through Paypal. It's not necessary (as this project costs me very little), but it's certainly very much appreciated!
  • The community for taking care of handling the majority of the end-user support
  • Third party developers who have been providing numerous feature enhancements to the Asuwwrt-Merlin platform. They are part of the reason why I can focus on keeping in sync with Asus's code without having to feel guilty at not spending more time adding new features - their addons are taking care of that. That means one less source of stress for me.
  • Asus for providing hardware, source code, and general support to this project (for those who didn't know, they do provide me with router samples to work on, which is critical to this project).
  • @thiggins for allowing us to crash at his place on SNBForums. We're sometimes a noisy bunch, but I think overall we're not all that bad ;)

Also I'd like to extend shout outs to the two active fork maintainers, @john9527 and @GNUton . Doing what they are doing isn't easy, and they don't get as much spotlight as they probably should. If you are using an older model that I no longer support or are interested in one of Asus's DSL models, make sure to have a look at their respective forks.


Hope that we all have a much better 2021, and I'll see you on the other side.
 
Last edited:
That was very well said. Nice wright. I have been using your firmware since my first Asus router N66U. Owned many more after that and every purchase was made basically because of your work. (Merlin) Please keep it all going. Happy New Year and let's hope 2021 is a better year for the world over. :)
 
@RMerlin on behalf of myself, my family, and my customers, I want to wish you, @thiggins, Asus, and all the wonderful developers and scriptwriters here (both, those who are in the spotlight and those who work selflessly in the background too) all the best for the new year.

This community is like no other on the web today. I am blessed and grateful for being allowed to be a part. And to everyone who sees this post, the following well-wishes for all.

Health, Happiness, Prosperity, Peace, and a Very Safe New Year 2021 to All!
 
Last edited:
Sure, burn the old calendar, but if you really wanted to show support, burn your bra!

Oops! Sorry, wrong person, wrong thread, and wrong decade! :D :p :cool:

Love you too!
 
Thanks @RMerlin ! I've been using your firmware since my first ASUS router (N66U), and it has always worked great for me. I love the development and community that surrounds it. It's a big factor in why I buy ASUS routers, and will continue to do so.

Happy New Year to everyone!

Sincerely,
Anton
 
Happy New Year from Australia.. I'd second PorscheT in saying that you are the leading reason why I've stuck with Asus routers so long - it's heartening to hear they've reached out to you and are trying to make things easier.

Stay safe!
 
Thank God, it's (almost) 2021

Unfortunately, being 2021 is not good enough... not as far as the pandemic is concerned. Both the US and Canada are fumbling the vaccine rollout. At current rates, we won't be celebrating until 2022, if we make it until then.

Happy New Year everyone! Hold your line until summer or later.

OE
 
Great summary and very interesting reading from someone new to the Asus routers. I'm glad I 'discovered' your code and am also happy to hear that Asus is supportive of the development.

Thank you for what you are doing and all the very best for 2021!
 
As a new owner of an ax3000 and new user of Merlin firmware, this seems like a good opportunity to say thanks for all your hard work (especially the vpn policy routing) and thanks to everyone involved in the forums and third party support, really looking forward to getting started with amtm and all it’s possibilities in the new year.
 
. Both the US and Canada are fumbling the vaccine rollout.

Quebec is actually ahead of their planned schedule as of today (dunno about other provinces). They can't vaccinate faster than they are receiving doses, and they have even just decided to no longer reserve half of the received doses for a second vaccination and start vaccinating more people with these, to ensure that the most vulnerable persons get their first dose ASAP. So from what I am seeing, the current news regarding the vaccination process are all positive around here.
 
Quebec is actually ahead of their planned schedule as of today (dunno about other provinces). They can't vaccinate faster than they are receiving doses, and they have even just decided to no longer reserve half of the received doses for a second vaccination and start vaccinating more people with these, to ensure that the most vulnerable persons get their first dose ASAP. So from what I am seeing, the current news regarding the vaccination process are all positive around here.

The US has administered about 2.5m 1st dose vaccinations in the last 15 days; Canada about 85k. We were suppose to hit the ground running... Warp Speed and all. We've got a long way to go yet!

Coronavirus vaccine tracker: How many people have received vaccinations? | CTV News

CDC COVID Data Tracker

OE
 
Thanks @RMerlin! Your firmware is the main reason I use Asus. The second reason is this forum and the great folks / help available here.

Happy New Year to everyone.

DrTurk
 
Thank you for all you did in 2020 (and previous years)!

Due to COVID-19 measures I have been working from home since March. My internet connection, managed by an RT-AC86u running Asuswrt-Merlin firmware, has never been more important to me. In general it worked great. Thanks!

You did not mention your health (which may be too personal). I hope that you’re fine on both the physical and mental front and that 2021 will improve things for all of us.

Happy new year everyone!
 

Similar threads

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top