Please note: this method is not guaranteed to work, neither guaranteed that DLM won't trigger line banding. It is, however, a method I found working in my case.
First of all. My line is configured as 80/8mbps, however, only 55/7.5mbps is attainable with stock Draytek 2760n Delight settings. It is working in Interleave mode. Said so, currently I'm synced with 59/7.5mbps and I'm still on the way to see if it can be further improved without any physical changes to the line.
Draytek has a console where there is this magical command: vdsl snr [-50~50] with which you can control your downline Signal to Noise Ratio margin. What I see in practice is that when you set it to 50, the modem will refuse to accept signal that is lower than standard SNR +5dB, which may be good to stabilize the line if the standard used by your provider is not enough and you want to manually find the sweet spot before the DLM triggers and possibly cuts the speed more that you could achieve as stable by setting the margin by hand.
My provider wants me to work with 8dB SNR, giving me around 55mbps downline. When I force it with +5dB margin I get 14dB SNR and sync speed around 40mbps. However, the CRC Count and ES Count still shows up with such setting, having absolutely no difference between 8dB and 14dB which makes me believe that the line is not well maintained by our provider here (Orange Polska), not properly shielded or using faulty devices (or shortwaves and other interference surges are so high that it can't be properly avoided), and even with 14dB SNR on 14dB attenuation generates errors and in exactly the same amount as with 8dB SNR.
The good thing is that vdsl snr command allows you to use negative margin and I can confirm it working to some extend on my line. Though, as simple as it is to set positive values, it's not that straight forward when you want DSLAM to give you more. I guarantee you that it doesn't like when you suddenly want to reset the line from your side and negotiate a lower SNR. I'm currently at -1dB offset, though the SNR is still 8dB, my sync downlink speed is higher and offsetting it by -0.1dB did indeed raise it by approx 0.5mbps at a time until I forgot to do it properly and had -0.2dB "stolen" from me.
So how to do it properly?
First you need to remember that your line is under constant measurement in search for errors and link times. Most forums usually define it as 15 min checkpoints and ~24h summary. Thus you SHOULD NOT reset your line too often or preferably at all or you may risk being banded. Said so, there is a bit of "magic" you can perform to reset the line very nicely for DSLAM that I found working well in my case. This method does not necessarily require you to take off the phone line wire and wait 30 min. In fact, disconnecting your phone line from the modem could possibly send some "not nice" noise back to DSLAM that you would like to avoid at all costs, just in case.
In order to see if it is possible to be synced at better speed you need to have a lot of patience and properly measure your line over time (vdsl status) to find the sweet spot when DSLAM "wants" to give you one of the best possible attainable speeds. For me it's 4~6AM my time.
Do NOT use vdsl snr with negative values right away. First use vdsl idle on and wait until your line resets by itself, making your modem quiet so DSLAM can gracefully RESET the line. After this you can either wait 30 minutes or not, it's up to you and maybe how easy it is to trigger line banding with your provider. The next thing is to decrement snr margin by very little, possibly by 1 (0.1dB) at a time, thus vdsl snr -1, vdsl snr -2 and so on and do it preferably every 24h (it can work more often but to avoid banding it is the best to wait between resets). Do not forget vdsl idle on, if you do, it is possible that you won't get any higher speeds and doing it later correctly may even result in DSLAM taking away 0.5mbps from you. You must do vdsl idle on first when reducing SNR margin below 0, acting like a gentleman with DSLAM.
My experience:
- every time I reduced SNR margin by -0.1dB I got +0.5mbps sync
- when I forgot vdsl idle on once I got the same sync with higher attainable speed
- when I corrected my mistake right away I ended up with 0.5mbps being taken from me
- when I yet again (3 time that day, after 2h) reduced SNR by -0.1dB I got back my 0.5mbps
- Result? After forgetting vdsl idle on just once I ended up with -0.2dB margin offset and absolutely no change in actual downlink rate which may be either a limit for me or I triggered DLM to band me a bit, though I was capable of regaining the speed at the loss of 0.2dB of fine-tuning.
The following day:
SNR margin +4dB:
SNR margin -0.1dB:
SNR margin -1dB:
Your millage may differ.
Python script to produce images from your commands: vdsl showbins and vdsl showbins up. Must be text file bins_dl.txt and bins_ul.txt respectively. Both starting with bin 0, 1, 2, 3 and ending with 4092, 4093, 4094, 4095. No enter allowed at the end of file. Saves three files (check line with filenames list variable). Labels may not be visible due to adjusted fit to image size - change plt.subplot_adjust numeric parameters if you prefer it otherwise.
import matplotlib.pyplot as plt
def loaddata(file):
with open(file,mode="r") as f:
data = f.read()
data = data.replace("*","\n")
bins_raw = data.split("\n")
all_bins = []
for bin in bins_raw:
bin_data = bin.split()
all_bins.append(bin_data)
bins = []
bits = []
snrs = []
gains = []
for bin in all_bins:
bins.append(int(bin[0]))
bits.append(int(bin[3]))
snrs.append(int(bin[1]))
gains.append(int(bin[2]))
return bins,bits,snrs,gains
data_dl = loaddata("bins_dl.txt")
data_ul = loaddata("bins_ul.txt")
ylabels = ["Bits", "SNR dB", "Gain .1dB"]
filenames = ["dsl_bits_per_bin.png","dsl_snr_per_bin.png","dsl_gain_per_bin.png"]
for x in range(0,3):
plt.clf()
plt.xlabel("Bins")
plt.ylabel(ylabels[x])
plt.bar(data_dl[0],data_dl[x+1], label="Downstream")
plt.bar(data_ul[0],data_ul[x+1], label="Upstream")
plt.subplots_adjust(bottom=0.05, left=0.07, right=1, top=1)
plt.legend()
plt.savefig(filenames[x],dpi=1200)
Commands, bins dump and image generating python could possibly be fully automated on Linux machine, using ssh for controlling and getting data from router. Including finding the best possible time to gracefully reset connection for best sync speeds at 24h+ interval.