ltq-vdsl-app: set MAC address for vectoring error reports
authorJan Hoffmann <jan@3e8.eu>
Sun, 13 Mar 2022 21:14:37 +0000 (22:14 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Tue, 7 Jun 2022 19:36:58 +0000 (21:36 +0200)
This tells the modem about the WAN MAC address, which is used as source
address for vectoring error reports that are generated by the firmware.

It needs to be set early, as the MEI driver only actually writes the
value to the modem when is in reset state (i.e. the firmware has been
loaded, but connection has not started yet).

Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
(cherry picked from commit b35d33c8b8a7b96f06179982b5d944cde7234004)

package/network/config/ltq-vdsl-app/files/dsl_control

index 54b739e2cd9d00eae0c6ba4b04ab362e47f36782..34642dbda5aa851822d3bee9f01a315b77170d6a 100644 (file)
@@ -95,10 +95,11 @@ tone_vdsl_b="0x1" # B43
 tone_adsl_bv="0x81" # B43 + B43c
 tone_vdsl_bv="0x5" # B43 + V43
 
-# create ADSL autoboot script. Used for SNR margin tweak
+# create DSL autoboot script. Used for SNR margin tweak and to set MAC address for vectoring error reports
 autoboot_script() {
     echo "[WaitForConfiguration]={
 locs 0 $1
+dsmmcs $2
 }
 
 [WaitForLinkActivate]={
@@ -166,6 +167,12 @@ lowlevel_cfg() {
     0" > /tmp/lowlevel.cfg
 }
 
+get_macaddr() {
+       local name
+       config_get name $1 name
+       [ "$name" = "dsl0" ] && config_get $2 $1 macaddr
+}
+
 service_triggers() {
        procd_add_reload_trigger network
 }
@@ -183,6 +190,7 @@ start_service() {
        local mode
        local lowlevel
        local snr
+       local macaddr
 
        config_load network
        config_get tone dsl tone
@@ -191,6 +199,7 @@ start_service() {
        config_get xfer_mode dsl xfer_mode
        config_get line_mode dsl line_mode
        config_get snr dsl ds_snr_offset
+       config_foreach get_macaddr device macaddr
 
        eval "xtse=\"\${xtse_xdsl_$annex}\""
 
@@ -289,11 +298,10 @@ start_service() {
                lowlevel="-l /tmp/lowlevel.cfg"
        }
 
-       [ -z "${snr}" ] || {
-           # for SNR offset setting
-           autoboot_script "$snr"
-           autoboot="-a /tmp/dsl.scr -A /tmp/dsl.scr"
-       }
+       [ -z "${snr}" ] && snr=0
+       [ -z "${macaddr}" ] && macaddr="00:00:00:00:00:00"
+       autoboot_script "$snr" "$macaddr"
+       autoboot="-a /tmp/dsl.scr -A /tmp/dsl.scr"
 
        procd_open_instance
        procd_set_param command /sbin/vdsl_cpe_control \