Slow upload speed

Hi All

I have what might seem a simple problem which is slow upload speed

Download speed is fine, I am getting what is expected

But when I test with a speed test tool I get
image

I have installed and experimented with SQM QoS but it makes no difference.
I have 8 external IP addresses re-rooted via SNAT and DNAT.
Apart from abandoning OpwenWrt and finding a very expensive alternative I have run out of ideas.

Please help if you can,

Let me know if you need any other information

Regards

Someone correct me if I am off beam here, and if so forgive me @mrbronz61, but If you put yourself in the shoes of someone reading this thread for the first time, and read your post from that perspective, I do not think there is enough information for readers to work with to provide helpful suggestions or comments.

So could you elaborate somewhat on the specifics to address this apparent incongruity between the level of information needed and that which was provided?

Sorry if I am missing something.

Was the speedtest done with SQM enabled? If you are on VDSL, do you have the overhead set correctly in your /etc/config/sqm ?

yes indeed you have missed the last line

Let me know if you need any other information

Yes I have done with SQM on and off

overhead set correctly in your /etc/config/sqm?

Can you give me some advice on this, please

Its currently set to 8

Well yes - you really need to provide further information on this if you want help.

What hardware is this on and what do you mean by slow upload? The first graphic you show (from your modem?) reports download and upload speeds consistent with your speed test in the second graphic.

So it's not even clear what the problem is.

By the way, SQM won't give you more bandwidth.

Imagine calling a car mechanic and asking why you couldn't get to McDonalds as quickly as you are used to. And expecting him to provide something useful concerning your car.

with your sync of (down/up):
36.805Mbps /619.000Kbps
or
36.805/0.619 Mbps
you can only expect at best the following goodput (TCP/IP payload throughput, roughly what on-line speedtests measure) of:

36.805 * 64/65 * ((1500 - 20 -20) / (1500 + 22)) = 34.8 Mbps
0.619 * 64/65 * ((1500 - 20 -20) / (1500 + 22)) = 0.58 Mbps

I would say that your 33.79/0.57 in the speedtest are pretty much as expected (especially since the above calculation is pretty much the best case, in reality I would expect the overhead to be somewhat larger and your ISP to actually use a traffic shaper upstream of the DSL link that reduces the rate to below what the DSL link can carry).

But IMHO that seems a pretty weird rate plan... could you name your ISP and the nominal rates they promise advertise? The upload looks really too low and your link might be affected by a defect (then again, not knowing your ISP you might simply be unlucky enough to have an "interesting" ISP).

2 Likes

Hi moeller0

Thanks for the reply.

My problem is the upload speed I should be getting 5MB min My data plan is 25MB download, 5MB upload. ISP is Plusnet business with 8 public IP addresses.

I have had Openreach out several times and they say there is nothing wrong with the line when they put their test equipment on they get > 25MB DL and 5MB UL.

I used an old BT router I had laying around and I get the correct upload and down load speed.
However, the old BT router will not handle multiple public IP addresses.

I have had a different BT router that has been flashed with OpenWrt 18.06, and for a while, it was working fine, but then at some point, the upload speed dropped to approx 56K. I cannot recall when this happened but I did not change anything in the Openwrt settings.

So my assumption is the router was faulty. So I bought another Plusnet router (BT HH 5) reflashed with the V21.02 of the OpenWrt software, But I am getting the same results from the new router.

All is working but the upload speed is extremely slow, looks like I'm only getting a 10th of what it should be.

Do you have any ideas?

We really need to know more about your link and the encapsulation your ISP enforces. But 8 seems unusually low.

Maybe you could post the output of:

  1. cat /etc/config/sqm
  2. cat /etc/config/network (make sure to redact any username and/or password before posting; I prefer to replace the actual password with the string "password" and the actual username with the string "username" so things are obviously redacted)
  3. tc -s qdisc

Good in that case, talk to your ISP, because the link currently reports the max upload capacity to be at 0.663476 Mbps, which is not quite 5 Mbps...

It i possible that your BT HH5A has some issues and a different modem (maybe even another HH5A) might sync with higher upload speed.

Ah, okay, then I understand Openreach's position that the line is okay.
Maybe try a different DSL formware blob on the HH5A?

Mmmh, I could imagine that the DSLAM started to use a feature (maybe G.INP in upload direction?) to which the firmware blobs distributed with OpenWrt are not terribly compatible with, as I said, maybe try a different firmware blob.

Short of trying a new firmware blob? No. And trying that is by no meas guaranteed to help, but since it is relatively easy to do, maybe have a go at it?

Thanks replaced the username and password, I don't think leaving the IP addresses will be of any use or do any halm so have left them in

config queue 'eth1'
        option qdisc 'fq_codel'
        option script 'simple.qos'
        option qdisc_advanced '0'
        option linklayer 'none'
        option debug_logging '0'
        option verbosity '5'
        option download '20000'
        option upload '20000'
        option enabled '1'
        option interface 'dsl0.101'

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd9e:9367:f5ee::/48'

config atm-bridge 'atm'
        option vpi '1'
        option vci '32'
        option encaps 'llc'
        option payload 'bridged'
        option nameprefix 'dsl'

config dsl 'dsl'
        option annex 'a'
        option tone 'a'
        option xfer_mode 'ptm'
        option line_mode 'vdsl'
        option ds_snr_offset '0'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth0.1'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ipaddr '192.168.61.254'
        option dns '212.159.96.43 212.159.96.44'

config device 'lan_dev'
        option name 'eth0.1'
        option macaddr '54:64:d9:12:e2:d4'

config device 'wan_dev'
        option name 'dsl0'
        option macaddr '54:64:d9:12:e2:d5'

config interface 'wan6'
        option ifname '@wan'
        option proto 'dhcpv6'
        option auto '0'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '0 1 2 4 6t'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '5 6t'

config interface 'DSL'
        option proto 'pppoe'
        option ipv6 '1'
        option ifname 'dsl0.101'
        option username 'user@plusdsl.net'
        option password 'password'

Which one?

I know how to upload the firmware to the router and flash it... But how do I know which one to chose

A viable option, but nowadays I would always recommend to at least also try:

        option qdisc 'cake'
        option script 'piece_of_cake.qos'

This is almost always the wrong thing to do as this simply defaults to the 14 bytes that the kernel traditionally reserves for src and dst MAC addresses and ethertype. Instead of going though this line by line, here is a proposal for a sqm config:

config queue 'eth1'
        option ingress_ecn 'ECN'
        option egress_ecn 'ECN'
        option itarget 'auto'
        option etarget 'auto'
        option verbosity '5'
        option qdisc 'cake'
        option script 'piece_of_cake.qos'
        option qdisc_advanced '1'
        option squash_dscp '1'
        option squash_ingress '1'
        option qdisc_really_really_advanced '1'
        option eqdisc_opts 'nat dual-srchost'
        option linklayer 'ethernet'
        option linklayer_advanced '1'
        option tcMTU '2047'
        option tcTSIZE '128'
        option linklayer_adaptation_mechanism 'default'
        option debug_logging '1'
        option iqdisc_opts 'nat dual-dsthost ingress'
        option interface 'pppoe-wan'
        option tcMPU '88'
        option enabled '1'
        option overhead '34'
        option download '33000'
        option upload '570'

Please note the upload is tailored for your current too low upload, you will need to change that once you get your upload fixed.

That indicates, that pppoe-wan is the better interface for the shaper than dsl0.101 and that 34 bytes of overhead are a reasonable assumption.

Sorry missed this one

 tc -s qdisc
qdisc noqueue 0: dev lo root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc fq_codel 0: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
 Sent 5522766 bytes 34522 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 1123 drop_overlimit 0 new_flow_count 90 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc noqueue 0: dev br-lan root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth0.1 root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev wlan1 root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev wlan0 root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc fq_codel 0: dev dsl0 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
 Sent 19455291 bytes 72868 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc noqueue 0: dev dsl0.101 root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc fq_codel 0: dev pppoe-DSL root refcnt 2 limit 10240p flows 1024 quantum 1518 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
 Sent 17846181 bytes 72569 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 1492 drop_overlimit 0 new_flow_count 382 ecn_mark 0
  new_flows_len 0 old_flows_len 3

You need to try this out, because if this is about compatibility with your DSLAM's firmware there is no way figuring out from a different DSLAM (and I am not even in the UK so really could not tell you). That said, I would try with the latest release version "VDSL over ISDN incl. vectoring support" where the ADSL part is labeled as "ADSL Annex A".

No flashing required, just copy the extracted blob to a known location on the router, e.g. to:

/etc/config/vr9-B-dsl.fb7490-07.28-5.9.1.4.0.7.bin

and then add the following to the "config dsl 'dsl'" section in /etc/config/network

        option firmware '/etc/config/vr9-B-dsl.fb7490-07.28-5.9.1.4.0.7.bin'

just replace with the correct file name. There is no need to reflash the router's whole firmware to upload a different firmware blob for the dsl modem (think of the modem as its own little comnputer and the blob being the OS, driver, and DSL application code to run on that computer).

Good luck.

Ah, for simple.qos, I also need the output of tc -d qdisc, but realistically this is not going to fix your low level DSL sync issue, so maybe post-pone this until the DSL issue is addressed?

I cannot seem to extract the blob tried downloading from site and getting 404 error. I also tried wget and getting
"wget: SSL support not available, please install one of the libustream-.*[ssl|tls] packages as well as the ca-bundle and ca-certificates packages."

I don't know how to resolve this issue

Never mind I got it

No I didn't ... still cannot get the file

I really think you need to use a different machine to download and extract firmware blobs as that requires a number of tools that seem tricky to get working on OpenWrt.

Seems like great advice above and how about also posting on the Plusnet forum? They are pretty responsive there too. See, for example, this thread:

I don't suppose you are able to get onto one of the BT 'full fibre' packages? My mother is getting one of those and I feel rather envious!

I used to use Plusnet myself for a 25Mbit fibre line and helped my mother with hers. My experience is that their service deteriorated rapidly a couple of years or so ago. They advertise rate X but provide rate X - Y, where Y is significant, and glitches and downtime all over the shop. It took lots and lots of complaining to get things fixed.

Then I moved house to the middle of nowhere in the Scottish Highlands (I don't really like people very much). Now we only have copper ADSL here up to around 6Mbit/s download. Happily our new house is rather close to a Vodafone cell tower so just use a 4G router and get circa 25-70Mbit/s download and 30Mbit/s upload. With a little help from OpenWrt SQM it's fine for all our business and personal needs. These days 4G/5G connections can give some of the weaker ADSL/fibre services a run for their money, albeit a good fixed line fibre is still of course superior. Our local farmer complained a lot about lack of fibre but didn't know about 4G - I told him to try and now he is very happy with it like me.

1 Like

Great idea, maybe we can "summon" @bill888 here to the thread as well. He might actually know how to resolve this issue.

These links might help:
https://openwrt.ebilan.co.uk/viewtopic.php?f=7&t=1088
https://forum.openwrt.org/t/lantiq-vrx200-xdsl-firmware-recommendation-thread/52937