What's new

[Alpha][MU-MIMO] Early preview of 380.59

  • 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!

Remove the "g" at the start, it (probably) stand for "git". The commit is 1ff739b.

I tend to commit to master as I work, as it also acts as my backup. More risky or complex stuff is done on a branch, and gets merged to master once I'm comfortable with it (this is the case for every new GPL merge, and is currently the case with the experimental qos stuff as well).

So master is never guaranteed to be fully working. Right now it will fail to build for any router older than the RT-AC87U.

Hi RMerlin,

thanks for the updated alpha 2 builds! Great to see and good job as ever!

You mention in the above post the experimental qos stuff and the regarding branch. So i checked it out and see roughly whats going on. But can you maybe explain more in detail what that code should implement.

I can see smt about IFB modules so i think advanced traffic shaper modules should be activated. I saw the fq_codel implementation (which is one of the greatest improvements to see IMO) and know what its good for.

Can u clarify a bit in detail from your side whats the changes for? Whats the target or better to say the targeted benefit? Also is it implemented by Asus or by you (seems like your work and the patches from Kyle Sanderson and the backport patch of kernel.org)?

Thanks in advance!
 
Last edited:
Just tried this again with the new Alpha2 build - OK, maybe very little has changed, but it is a new build (04/18) and this time I tested on the AC88U.

Unfortunately same problem :-(

What was the last build that worked for you with Astrill? .57 works for me on the router (88U) that I have installed Astrill. I suppose I could try .58.
 
I have no idea how Astrill implemented it as I haven't seen their code, and there's no official API for third party developers, so they must be "hacking" their way on top of the existing code.

If a change prevents their patch from working, they will most likely update it after 380.59 goes final.

I'm sure they are "hacking" the code. Astrill is a very small company and can't even get a working iOS app out the door. So, I'm not particularly confident (knowing how Astrill works) they will touch this code in my lifetime. It would be nice to get a handle on the last Merlin version that worked w/ Astrill. I'm using .57 on the router (88U) I've installed Astrill. I suppose I could try .58 and see what happens. I don't want to get too far behind in releases.

I expected this to happen someday. <sigh>
 
You mention in the above post the experimental qos stuff and the regarding branch. So i checked it out and see roughly whats going on. But can you maybe explain more in detail what that code should implement.

I can see smt about IFB modules so i think advanced traffic shaper modules should be activated. I saw the fq_codel implementation( which is one of the greatest improvements to see IMO). Can u clarify a bit in detail from your side whats the branch for? Whats the target or better to say the targeted benefit? Also is it implemented by Asus or by you ( seems like your work and the patches from Kyle Sanderson and the backport patch of kernel.org)?

Development is currently stalled on the qos code due to an SDK bug that affects QoS in general in Asuswrt. I have to wait for Asus to resolve it first. But what you see in the qos branch is entirely my work, not Asus's.

This is very experimental at this stage, and there's no guarantee it will eventually end up in the firmware. I've done a few of these "failed" experiments over the years, like the switch to jpeg-turbo (random crashes I could never sort out) or the toolchain update which I eventually dropped.

(I don't like the word "failed" here, because I usually still do learn something out of it. More like "scrapped" I guess.)


The current plan, if everything works out to my satisfaction, is:

1) Allow Asus's Traditional QoS method to support using both the current sfq and the more advanced fq_codel queue management

2) Implement a fourth QoS method that will be based on OpenWRT's SQM. I got both the simple.qos and simplest.qos SQM scripts mostly running (aside from a few glitches I still need to track down). I haven't decided yet any of the details, it will depend on the results of my tests with both scripts. Simplest is just one simple queue, while simple is currently based on DSCP plus 3 queues - I could possibly extend that to 6 queues and interface it with the 6 levels supported by Traditional QoS. This is what IFB is used for. It allows the router to control both inbound and outbound traffic, while the traditional implementation is limited to outbound. It's an alternative to the IMQ scheduler used in Tomato's MIPS builds. IMQ is not possible on ARM because it involves making changes to the skbuf kernel structure, which totally breaks the closed-source components such as the Wireless driver. IFB doesn't touch that structure, so it should be clear for playing nice with those closed source bits.

I wish I could also play with the traffic classification done by AdaptiveQoS, but it uses the closed source qosd binary to setup the Linux traffic classifier, so it's outside of my control (unless I decided to put a wrapper around tc, and intercept its "tc" calls, but that's currently not in the plans.) A shame, might have been cool leveraging the DPI engine to classify traffic, and then use a more advanced queue mechanism than sfq to handle it.

The SQM stuff isn't on Github yet, as I'm still manually playing with tweaked versions of the OpenWRT scripts rather than any final firmware-level implementation. They currently reside within my router's JFFS partition.

But this is all mostly stalled until Asus/BCM can resolve the SDK-related QoS issues. Once that's resolved, tests will have to convince me that there IS any actual advantage to it. I know the bufferbloat complainers insist that fq_codel is the silver bullet to it - something I'm still skeptical about, as I've seen just as much improvement from even sfq. The fq_codel implementations have the same basic recommendation that I've been making for a long time with Adaptive QoS (which is to set upstream/downstream slightly below your max speed). I suspect that this alone has a much bigger impact on latency than the queue mechanism itself.
 
I'm sure they are "hacking" the code. Astrill is a very small company and can't even get a working iOS app out the door. So, I'm not particularly confident (knowing how Astrill works) they will touch this code in my lifetime. It would be nice to get a handle on the last Merlin version that worked w/ Astrill. I'm using .57 on the router (88U) I've installed Astrill. I suppose I could try .58 and see what happens. I don't want to get too far behind in releases.

I expected this to happen someday. <sigh>

Last time their plugin broke (due to Asus changing the way the CSS was implemented in regard to the side menu), Astrill updated their plugin to remain compatible. They also adjusted when I removed the Run CMD page. So I'm fairly confident that they will once again adjust once a final firmware release is available.

If it's a more complicated issue, I'm sure they will reach out to me. We've had some talks in the past over some things, so they know how to contact me if needed.
 
I'm sure they are "hacking" the code. Astrill is a very small company and can't even get a working iOS app out the door. So, I'm not particularly confident (knowing how Astrill works) they will touch this code in my lifetime. It would be nice to get a handle on the last Merlin version that worked w/ Astrill. I'm using .57 on the router (88U) I've installed Astrill. I suppose I could try .58 and see what happens. I don't want to get too far behind in releases.

I expected this to happen someday. <sigh>

I don't think it's fair to blame Astrill for the ios problems you are experiencing. This is mostly due to O/S restrictions (blame Apple) and the great firewall of china (you know who to blame). I can't speak highly enough of them - have been a customer for many years.

To answer your question, version 380.58 works perfectly with the Astrill Router applet. 380.59 is still an Alpha after all.
 
Tried the most recent test build on the RT-AC88U, and I still have an amazing extraordinarily slow GUI. This is even when the reset button is used and no changes have been made to any settings. The only thing I haven't tried yet is pulling the USB drive.

Load of any new page takes upto at least 5 minutes. I can't tell what else might be causing problems since I cannot change very much.
I had something similar at first. It turned out to be caused by my need to reboot the PC I was using. The cache on the PC, not the router, was causing issues and needed to be cleared. After that, everything was fine GUI speed wise.
 
I take it there's no word from Asus on when they will upload fixed GLP zips?

I asked them about the incomplete zips, and they eventually sent me new zips (after I re-asked again). Those new zips are all corrupted and fail to unzip, and they haven't answered me back when I mentioned it. So for now I've simply given up on these missing files. I suppose their engineers are currently too busy to look into it.
 
Hi Merlin i got a bug with the latest alpha 2 builds. On DHCP settings site the apply button do not work. I leave some technical details for u. Would be great if u can fix this asap and MAYBE provide a refreshed build once again cause this bug prevents me from changing my local domain and also the dns upstream forwarding as i did a factory result after last flash ( i know its alpha and bugs are to being expected but so far the alpha 2 build is very stable for me beside of this very small but annoying bug ;-) thats why i totally understand if u not refresh the build until u think its time to do so). Maybe u have a simple workaround to get the apply button working in the current state ( without code fix) ?

error / debug message:

SCRIPT5007: Unable to get property 'innerHTML' of undefined or null reference

Advanced_DHCP_Content.asp (300,1)

which leads to line 300

tmp_value += document.getElementById('dhcp_staticlist_table').rows.cells[1].innerHTML + ">";
 
Last edited:
Hi Merlin i got a bug with the latest alpha 2 builds. On DHCP settings site the apply button do not work. I leave some technical details for u. Would be great if u can fix this asap and MAYBE provide a refreshed build once again cause this bug prevents me from changing my local domain and also the dns upstream forwarding as i did a factory result after last flash ( i know its alpha and bugs are to being expected but so far the aplha 2 build is very stable for me besides of this very little but annoying bug ;-) thats why i totally understand if u not refresh the build until u think its time to do so). Maybe u have a simple workaround to get the apply button working in the current state?

error / debug message: SCRIPT5007: Unable to get property 'innerHTML' of undefined or null reference Advanced_DHCP_Content.asp (300,1)

regarding https://github.com/RMerl/asuswrt-me...src/router/www/Advanced_DHCP_Content.asp#L300

Line numbers won't match, because when the firmware is compiled, the webui pages are compressed to save space, and there's also all kind of code dynamically inserted at load time. Click on the error message in the console and look at the content of the line with the error.
 
Line numbers won't match, because when the firmware is compiled, the webui pages are compressed to save space, and there's also all kind of code dynamically inserted at load time. Click on the error message in the console and look at the content of the line with the error.

Yeah right sorry. Now i know why it did absolutely makes no sense at all, what i saw when i was looking into the code :D . Maybe i am to tired today, that i wasnt able to get this easy and self explaining logic on my own. Whatever :D ... code is:

tmp_value += document.getElementById('dhcp_staticlist_table').rows.cells[1].innerHTML + ">";
 
Yeah right sorry. Now i know why it did absolutely makes no sense at all, what i saw when i was looking into the code :D . Maybe i am to tired today, that i wasnt able to get this easy and self explaining logic on my own. Whatever :D ... code is:

tmp_value += document.getElementById('dhcp_staticlist_table').rows.cells[1].innerHTML + ">";

Based on that line, one theory is that the issue would occur if the staticlist table is empty of any rows.
 
Based on that line, one theory is that the issue would occur if the staticlist table is empty of any rows.

Ok. So one thing i not yet tried is to add a entry into the static list. If i do so could it maybe workaround the problem? Or since there is no entry and apply dont works its seems i am not even able to add an entry. Lets try...

Yeah as expected this was a no go.

And probably empty of rows does not mean empty of entries when i get it right.
 
Last edited:
I've found that if you separately do a 'view source' on the page, then the line number references in that view will match the debugger.

Having said that, I ran across a similar error on my fork.. Doing some 'googling' found references to similar errors. The web pages consist of both javascript and html, and the cause seemed to be a timing problem where the javascript was executing before the html was fully processed (i.e. the element wasn't defined yet so there was no innerHTML property). I tried a couple of the suggested workarounds and could never get it to work. I finally ended up re-writing that page with a working page as a template.

If you haven't tried a different browser yet, that's the first thing to try,
 
I've found that if you separately do a 'view source' on the page, then the line number references in that view will match the debugger.

Having said that, I ran across a similar error on my fork.. Doing some 'googling' found references to similar errors. The web pages consist of both javascript and html, and the cause seemed to be a timing problem where the javascript was executing before the html was fully processed (i.e. the element wasn't defined yet so there was no innerHTML property). I tried a couple of the suggested workarounds and could never get it to work. I finally ended up re-writing that page with a working page as a template.

If you haven't tried a different browser yet, that's the first thing to try,

Thanks for the heads-up! Trying another browser was the first thing i did but thanks for the suggestion!
 
I've found that if you separately do a 'view source' on the page, then the line number references in that view will match the debugger.

Either that, or clicking on the error message will take you to the actual line in the code. That's how I usually debug things out, using Chrome's console.

Having said that, I ran across a similar error on my fork.. Doing some 'googling' found references to similar errors. The web pages consist of both javascript and html, and the cause seemed to be a timing problem where the javascript was executing before the html was fully processed (i.e. the element wasn't defined yet so there was no innerHTML property).

There are a few things here and there in Asuswrt that uses Ajax to run code that needs to handle data at the DOM level, to prevent that kind of issue. I remember having to deal with that with the Sysinfo page (for the Ethernet switch data) and on some of the VPN pages.

If keeping in sync with Asus's code wasn't a priority, I would consider a MAJOR overhaul of the whole webui. It needs to be more robust than it currently is. That means, wall-to-wall escaping of special characters for anything inserted by httpd, an actual established way of handling bi-directional communication with the backend (right now we have a mixture of Javascript vars, arrays, and XML data structures). And all of that with a more unified set of UI design guidelines. Currently, Asuswrt has tabs (all pages), dropdown (VPN and traffic monitor pages), links (AiProtection and USB Apps pages). It's like there are three different persons working on the webui, each of them with his own personal set of design guidelines.

But, that's way beyond the scope of this project, so we'll have to make do with what we have...
 
There are a few things here and there in Asuswrt that uses Ajax to run code that needs to handle data at the DOM level, to prevent that kind of issue. I remember having to deal with that with the Sysinfo page (for the Ethernet switch data) and on some of the VPN pages.

If keeping in sync with Asus's code wasn't a priority, I would consider a MAJOR overhaul of the whole webui. It needs to be more robust than it currently is. That means, wall-to-wall escaping of special characters for anything inserted by httpd, an actual established way of handling bi-directional communication with the backend (right now we have a mixture of Javascript vars, arrays, and XML data structures). And all of that with a more unified set of UI design guidelines. Currently, Asuswrt has tabs (all pages), dropdown (VPN and traffic monitor pages), links (AiProtection and USB Apps pages). It's like there are three different persons working on the webui, each of them with his own personal set of design guidelines.

But, that's way beyond the scope of this project, so we'll have to make do with what we have...

Ok sounds bad. Thats what i feared or better to say what i thought on my own first time since using Asuswrt. I fully understand that writing a new UI is out of the scope of the project. Maybe someone external can help. I remember a guy called eagle65 and back there he wrote a new UI for Padavan rt-n56u project. He did the most UI stuff and code and some code was done by Padavan. It was a great and its still the actual UI of the project firmware. Maybe i can get eagle65 into smt. like that again.

BTW no simple workaround for setting the lan domain ( like a ssh command or so) ?
 
nvram set lan_domain=xxxx
nvram commit && reboot

Niceee! Thank you very much john9527! Is this possible for "Advertise router's IP in addition to user-specified DNS" & "Forward local domain queries to upstream DNS" & "Enable DNSSEC support"? Thanks again!
 
Last edited:

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