Git Product home page Git Product logo

go-dsl's People

Contributors

janh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

drguildo feckert

go-dsl's Issues

Quirks for ALLNET ALL-BM300

I was able to get go-dsl working with my ALLNET ALL-BM300 modem after applying some quirks. I don't have a straight up patch because some of the quirks go beyond what go-dsl does right now, and others conflict with some of its assumptions. Here is what I had to do:

  1. Once accessed by telnet (192.168.16.254, user admin, password admin), the command prompt ends in $, not # (lantiq/telnet.go line 37).
  2. The command is found at /opt/opt/intel/bin/dsl_pipe, but it's owned by dsl:dslgrp with permissions 110, so user admin cannot run it. Fortunately, sudo is available. I didn't want to mess with the original binary via overlayfs and simply copied it to /tmp/dsl_pipe_ (there was an unrelated file called /tmp/dsl_pipe there already), then changed its permissions to 755.
  3. When run as user admin, the command fails because it has no write access to /tmp/pipe/dms_0_cmd. I changed this file's permissions to 777 and go-dsl was finally able to read data.
  4. The modem reports API version 5.5.21 and did not understand most commands sent by go-dsl. Treating it as legacy (lantiq/data.go, line 137) helped and made more data appear.
  5. I was able to add the following commandLegacy entries in lantiq/data.go to get more data:
LineFeatureStatus_US         dataItem `command:"lfsg 0" commandLegacy:"lfsg 0 0"`
LineFeatureStatus_DS         dataItem `command:"lfsg 1" commandLegacy:"lfsg 0 1"`
G997_RateAdaptationStatus_US dataItem `command:"g997rasg 0" commandLegacy:"g997rasg 0 0"`
G997_RateAdaptationStatus_DS dataItem `command:"g997rasg 1" commandLegacy:"g997rasg 0 1"`
BandBorderStatus_US           dataItem `command:"bbsg 0" commandLegacy:"bbsg 0 0"`
BandBorderStatus_DS           dataItem `command:"bbsg 1" commandLegacy:"bbsg 0 1"`
  1. I also had to change one of the commandLegacy entries for my modem:
G997_XTUSystemEnablingStatus dataItem `command:"g997xtusesg" commandLegacy:"g997xtusesg 0"`
  1. Finally, for the line state, lantiq/status.go checks for a 0x prefix on the state code in line 235, but only to strip it, not to distinguish between hex and decimal numbers. This is wrong for my modem. The code has no 0x prefix and it isn't hex, but decimal. Decoding it as such in line 239 gave me the correct line state.

Speedport Smart 4 - can't connect

I've tried the following commands:

./dsl -d speedport speedport.ip -- Result: Connecting… failed: no challenge found

./dsl -d sagemcom speedport.ip -- Result: Connecting… failed: request for /js/gui-core.js failed with status 404

Am I doing something wrong?

feature requests: tighter axis limits for QLN and Hlog plots

Interpretation of Hlog and QLN plots mostly depends on looking at the precise curves and deviations from theoretical curve "forms". This gets easier if the plot is centered more on the actual range of the individual data compared the the current fixed? and quite generous limits (QLN: -70 to -160 dBm/Hz; Hlog: 0 to -100 dB)

Also a genuine question, why displaying the QLN as bar and not (as is done customarily) as line graph?

Final thought: the up/down qualification in the plots could be slightly more prominent, the current color scheme is quite elegant, but also quite subtle. Maybe turn up the color for these and plot these behind the actual data (currently they seem overlayed)?his would require different colors for max and min on the SNR plots though). But this is mostly cosmetic and a matter of preference, so if you prefer your current design, that also works.

[Solved] Scaling issue #14 again?

I'm experiencing scaling issues which resemble the ones solved with #14: the graphs seem to be cut off on the right border relative to the legends.

image

My modem is a Technicolor DGA4132 with custom firmware based on the Broadcom chipset with xdslctl.

potential cahnnel characteristic/hlog upload plotting for Fritzbox on profile 35b

Please have a look at:

this

The channel characteristic plot looks like the upload data is misaligned (and potentially mis-scaled), this might be a peculiarity of the Fritzbox output for profile 35b or some other minor issue. Maybe worth looking into?

P.S.: The really cool thing about this plot is that is actually shows the QLN and hlog plots, something FritzOS seems to consider unimportant even though the Australians make a point about especially hlog's utility in diagnosing line faults....

TP Link xDSL modems

First, thank you for creating this project.
TP Link has various modems with Broadcom, Mediatek, Lantiq chips.

Their products can be accessed for additional xDSL stats.
It requires modding the firmware as seen here:
https://github.com/sta-c0000/tpconf_bin_xml

Once that is done, root access is granted, through telnet at port 1023.

It seems go-dsl defaults to port 23 for telnet access.

By editing internal/telnet/client.go line 140 from :23 to :1023
I can use go-dsl to access my Bradcom based TP Link modem through telnet.

It would be great if this program could allow a parameter to specify telnet port.

Thank you.

[Feature Request] Emergency save

go-dsl will not allow to save the current data if it detected an 'error condition' like modem crash or unscheduled power down of the modem. It could be helpful in such situations if one could still save the data that exists at that point.

Documentation/PR on github page

Maybe you could add a screen shot of the GUI view of your tool to the github description, so potential users can immediately see what they can expect?

dsl-gui ssh login fails when a passphase is used to secure access to the private keys

So I "secured" access to my private keys behind a passphrase and the CLI application sort of works:

computer:go-dsl user$ ./dsl

Connecting… passphrase required
Fingerprint: SHA256:rcl9qcANmVORxAH5pPkMDL8TCtu+Z9jDNVmfTKLdjqo
Passphrase: 
Authenticating… done
Loading data… done

           State:    Showtime
            Mode:    VDSL2 Profile 17a
          Uptime:    32 days, 16 hours, 11 minutes

          Remote:    Broadcom 12.4.127 (194.127)
           Modem:    Infineon 5.9.1.4.0.7

     Actual rate:      116797 kbit/s      36998 kbit/s 
 Attainable rate:      140083 kbit/s      40043 kbit/s 
         MINEFTR:       81349 kbit/s    1730261 kbit/s 

         Bitswap:          on                on        
   Rate adaption:         off               off        

    Interleaving:        0.14 ms              0 ms     
             INP:        40.0 symbols      44.0 symbols
  Retransmission:          on                on        

       Vectoring:        full              full        

     Attenuation:         9.8 dB            8.3 dB     
      SNR margin:        12.5 dB            8.5 dB     
  Transmit power:        14.5 dBm          -3.5 dBm    

    RTX TX Count:      335827             37924        
     RTX C Count:       32108            223166        
    RTX UC Count:         762           1487052        

       FEC Count:           0              4298        
       CRC Count:          23               321        

        ES Count:           5               128        
       SES Count:           1                76        

but when I try the same with dsl-gui I get a prompt "The device requests a password" which neither accepts:

  1. an empty password
  2. the modems password
  3. my ssh passphrase:
computer:go-dsl user$ ./dsl-gui 
setting password failed: no password required
setting password failed: no password required
setting password failed: no password required

Which is a pity as the 4 "spectral" plots are really nice and informative.

Speedport Pro Plus - Status 307

Unable to read DSL Stats of the Speedport Pro Plus running Firmware 120141.5.0.013.0

PS C:\Users\Maxim\Downloads\go-dsl-master> ./dsl -d speedport speedport.ip

Connecting… failed: request for /html/login/index.html failed with status 307
PS C:\Users\Maxim\Downloads\go-dsl-master> ./dsl -d speedport 10.10.1.1

Connecting… failed: request for /html/login/index.html failed with status 307

build failure of dsl-gui on macos monterey with go 1.19.4

I seem to run into some issue when building dsl-gui (the CLI version compiles just fine)

bash-3.2$ go build -o dsl ./cmd
bash-3.2$ go build -tags gui -o dsl-gui ./cmd
# github.com/webview/webview
../../../go/pkg/mod/github.com/webview/[email protected]/webview.go:15:10: fatal error: 'stdlib.h' file not found
#include <stdlib.h>
         ^~~~~~~~~~
1 error generated.
bash-3.2$ go version
go version go1.19.4 darwin/amd64

This is probably a pilot's error from my side, but maybe you have an idea how I could fix this?

feature request: bitswaps per sub-carrierer graphs

DSLstats for broadcom modems has a very interesting plot for diagnosing potential problem, in which it displays the count of Bitloading changes per carrier. I am not sure how this is implemented, but in theory it should be enough to take the absolute difference between consecutive bitloading data and just plot the count of these bitswap events per carrier. That will not be 100% correct (e.g. two bitswaps between samples might cancel each other out) but should show problematic carriers relative well.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.