Add back a slightly modified version of the lowlevel settings which
where removed with r46920.

In compare to the old lowlevel settings, the B43c tone is added to
tone_adsl_b and tone_adsl_bv.

If an unsupported tone value is used, the auto probing mode is used, in
compare to the fallback to tone_adsl_av and tone_vdsl_av with the old
lowlevel settings.

Signed-off-by: Mathias Kresin <open...@kresin.me>

---

I've done some tests to see in which situations the tone setting is
required. In cases no tone is specified, the tone is used according to
the loaded firmware or set by the loaded firmware.

Using a device with the hybrid set to POTS (Annex A) on a Deutsche
Telekom VDSL2 line which requires the B43 tone, I made the following
observations:

annex setting     firmware     tone setting     result
-------------------------------------------------------
annex a           adsl-a.bin   no tone          no sync
annex a           adsl-a.bin   b                sync
annex a           adsl-b.bin   no tone          sync

no annex          adsl-a.bin   no tone          no sync
no annex          adsl-a.bin   b                sync
no annex          adsl-b.bin   no tone          sync

I would vote for using 'auto' for the initial config here as well. I
would expect that people who are using an Annex A device in an Annex B
network know how to set the correct tone value.

 .../network/config/ltq-vdsl-app/files/dsl_control  | 88 ++++++++++++++++++++++
 1 file changed, 88 insertions(+)

diff --git a/package/network/config/ltq-vdsl-app/files/dsl_control 
b/package/network/config/ltq-vdsl-app/files/dsl_control
index db5eb2a..1a121eb 100644
--- a/package/network/config/ltq-vdsl-app/files/dsl_control
+++ b/package/network/config/ltq-vdsl-app/files/dsl_control
@@ -39,6 +39,81 @@ xtse_xdsl_b="10_00_10_00_00_04_00_0F"
 # G.993.5 Annex A/B/C
 xtse_xdsl_j="10_00_10_40_00_04_01_0F"
 
+#
+# ITU-T G.994.1 (06/2012) - Table 2 (Mandatory carrier sets)
+#
+
+# A43
+tone_adsl_a="0x142" # A43C + J43 + A43
+tone_vdsl_a="0x142" # A43C + J43 + A43
+
+# A43 + V43
+tone_adsl_av="0x142" # A43C + J43 + A43
+tone_vdsl_av="0x146" # A43C + J43 + A43 + V43
+
+# B43
+tone_adsl_b="0x81" # B43 + B43c
+tone_vdsl_b="0x1" # B43
+
+# B43 + V43
+tone_adsl_bv="0x81" # B43 + B43c
+tone_vdsl_bv="0x5" # B43 + V43
+
+lowlevel_cfg() {
+       echo "# VRX Low Level Configuration File
+#
+# Parameters must be separated by tabs or spaces.
+# Empty lines and comments will be ignored.
+#
+
+# nFilter
+#
+# NA     = -1
+# OFF    = 0
+# ISDN   = 1
+# POTS   = 2
+# POTS_2 = 3
+# POTS_3 = 4
+#
+#  (dec)
+    -1
+
+# nHsToneGroupMode nHsToneGroup_A       nHsToneGroup_V    nHsToneGroup_AV
+#
+# NA     = -1      NA         = -1      see               see
+# AUTO   = 0       VDSL2_B43  = 0x0001  nHsToneGroup_A    nHsToneGroup_A
+# MANUAL = 1       VDSL2_A43  = 0x0002
+#                  VDSL2_V43  = 0x0004
+#                  VDSL1_V43P = 0x0008
+#                  VDSL1_V43I = 0x0010
+#                  ADSL1_C43  = 0x0020
+#                  ADSL2_J43  = 0x0040
+#                  ADSL2_B43C = 0x0080
+#                  ADSL2_A43C = 0x0100
+#
+#  (dec)           (hex)                (hex)             (hex)
+     1             $1                  $2               0x0
+
+#   nBaseAddr     nIrqNum
+#
+#     (hex)        (dec)
+    0x1e116000      63
+
+# nUtopiaPhyAdr   nUtopiaBusWidth      nPosPhyParity
+#                 default(16b) = 0     NA   = -1
+#                 8-bit        = 1     ODD  = 0
+#                 16-bit       = 2
+#
+#
+#    (hex)            (dec)                (dec)
+      0xFF              0                    0
+
+# bNtrEnable
+#
+#  (dec)
+    0" > /tmp/lowlevel.cfg
+}
+
 service_triggers() {
        procd_add_reload_trigger network
 }
@@ -46,10 +121,15 @@ service_triggers() {
 start_service() {
        local annex
        local firmware
+       local tone
+       local tone_adsl
+       local tone_vdsl
        local xtse
        local mode
+       local lowlevel
 
        config_load network
+       config_get tone dsl tone
        config_get annex dsl annex
        config_get firmware dsl firmware
        config_get xfer_mode dsl xfer_mode
@@ -77,11 +157,19 @@ start_service() {
                return 1
        }
 
+       eval "tone_adsl=\"\${tone_adsl_$tone}\""
+       eval "tone_vdsl=\"\${tone_vdsl_$tone}\""
+       [ -n "${tone_adsl}" ] && [ -n "${tone_vdsl}" ] && {
+               lowlevel_cfg "${tone_adsl}" "${tone_vdsl}"
+               lowlevel="-l /tmp/lowlevel.cfg"
+       }
+
        procd_open_instance
        procd_set_param command /sbin/vdsl_cpe_control_wrapper \
                        -i$xtse \
                        -n /sbin/dsl_notify.sh \
                        -f ${firmware} \
+                       $lowlevel \
                        -M ${mode}
        procd_append_param env "LOAD=$LOAD" "UNLOAD=$UNLOAD"
        procd_close_instance
-- 
1.9.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to