Kitz ADSL Broadband Information
adsl spacer  
Support this site
Home Broadband ISPs Tech Routers Wiki Forum
 
     
   Compare ISP   Rate your ISP
   Glossary   Glossary
 
Please login or register.

Login with username, password and session length
Advanced search  

News:

Pages: 1 2 [3]

Author Topic: stats / bitloading from D-Link DSL-2780 (from TalkTalk) possible?  (Read 20735 times)

asbokid

  • Kitizen
  • ****
  • Posts: 1286
    • Hacking the 2Wire
Re: stats / bitloading from D-Link DSL-2780 (from TalkTalk) possible?
« Reply #30 on: March 26, 2013, 12:00:19 AM »

Hi Adam,

Perhaps set_ready has to be set to zero (with xmldbc -s) and then monitored until it changes back to one, to indicate that new realtime data has been populated?  Pure guess.  Like some sort of polling flag, though.  What other purpose might it have?  Set_ready was set to zero in Ian's database dump, yet it was set to one in yours. 

XGI sounds like a primitive server-side scripting engine.   It's a symlink to /sbin/atp.

With the file-system extracted with the firmware mod kit, [1] we can run strings against atp. That divulges a few other hard-coded references to xgi resources:

Code: [Select]
strings atp  | grep xgi
xgi_main
xgi_handlers
do_xgi
test.xgi
config.xgi
**.xgi
/config/doxgi/errermsg
ConfigSet(/config/doxgi/errermsg,Factory restore error ...)
ConfigSet(/config/doxgi/errermsg,Save and Reboot error ...)
reboot.xgi
restore.xgi
saveandreboot.xgi
downloadmessagelog.xgi
Summary_DSL_Wait.xgi
st_stat_wait.xgi

If strace was gotten onto the device, and attached to the xgi process, it should reveal the calls used to trigger the repopulation of the database with realtime data.  Bit of effort to get that working, though.

We can also grep the root file system from a desktop machine. Which shows that set_ready is referenced quite a lot from a number of static resources:

Code: [Select]
$ grep -r set_ready * 2>/dev/null
Binary file bin/alphaWanAgent matches
www/Wizard/Summary_DSL_Gat.htm:"<?ConfigGet(/runtime/dsl/set_ready)?>"
www/public/__menu.js: top.fPanel.location.href="st_stat_wait.xgi?&set/runtime/dsl/set_ready=1";
www/STATUS/st_stat_get.htm:"<?ConfigGet(/runtime/dsl/set_ready)?>"
www/js/Wizard/Summary_Screen.js: var url="Summary_DSL_Wait.xgi?&set/runtime/dsl/set_ready=1";
www/js/Wizard/Summary_Wireless.js: var url="Summary_DSL_Wait.xgi?&set/runtime/dsl/set_ready=1";
www/js/Wizard/Summary_3g.js: var url="Summary_DSL_Wait.xgi?&set/runtime/dsl/set_ready=1";
www/js/Wizard/Summary_Internet.js: var url="Summary_DSL_Wait.xgi?&set/runtime/dsl/set_ready=1";
www/js/Wizard/Summary_DSL.js: var url="Summary_DSL_Wait.xgi?&set/runtime/dsl/set_ready=1";
www/js/STATUS/st_stat.js: var url="st_stat_wait.xgi?&set/runtime/dsl/set_ready=1";

Not immediately obvious how it works!  Could be interesting when you discover, though!

cheers, a

[1] http://code.google.com/p/firmware-mod-kit/
Logged

adam

  • Member
  • **
  • Posts: 14
Re: stats / bitloading from D-Link DSL-2780 (from TalkTalk) possible?
« Reply #31 on: March 26, 2013, 09:20:40 PM »

Thanks for the pointers on strace. You gave me some ideas and steered me in the right direction.
I got the web UI auto refreshing as it does, and then set ps in a loop to see what gets called...a bunch of stuff it turns out

Some of these, although they don't seem to do the updating magic.

Code: [Select]

8604 0           340 S   alpha_wa_cmd cmd_tx 24
8607 0           348 S   alpha_wa_cmd cmd_tx 27
8608 0           340 S   alpha_wa_cmd cmd_tx 28
8609 0           340 S   alpha_wa_cmd cmd_tx 29
8612 0           348 S   alpha_wa_cmd cmd_tx 34

Code: [Select]
DSL-2780 # alpha_wa_cmd help
20:59:42: W_AGENT: CMD: 80000000

Usage: alpha_wa_cmd {Options} {operation}
alpha_wa_cmd { -v } connection [id] [start|stop|restart|create|delete|show]
alpha_wa_cmd { -v } oam [id] [start|stop] [f5|f4]
alpha_wa_cmd { -v } upgrade [runtime|xdsl|bootloader] [path]
alpha_wa_cmd reboot
alpha_wa_cmd factory_reset
alpha_wa_cmd cmd_tx [cmd_index] <pvc_index, default:1> -> send command to PB
    0:  TC_GET_SYS_VER_CMD          --> sys tpget sys verinfo
    1:  TC_GET_WAN_STATUS_CMD       --> sys tpget sys show wan
    2:  TC_GET_PVC_CMD              --> sys tpget wan atm pvc disp ...
    3:  TC_GET_PVC_ALL_CMD          --> sys tpget wan atm pvc disp
    4:  TC_GET_DSL_STATUS_CMD       --> sys tpget wan adsl status
    5:  TC_GET_DSL_TYPE_MODE_CMD    --> sys tpget sys show adsl
    6:  TC_GET_DSL_MAX_RATE_CMD     --> sys tpget wan adsl maxrate
    7:  TC_GET_SYS_STATUS_CMD       --> sys tpget sys show sysstatus
    8:  TC_GET_WAN_DSL_STAT_CMD     --> sys tpget wan adsl statistics
    9:  TC_GET_SAR_STAT_CMD         --> sys tpget wan hwsar statistics ...
    10: TC_GET_SYS_TRAFFIC_CMD      --> sys tpget sys show systraffic
    11: TC_GET_OAM_F5_CMD           --> sys tpget wan hwsar oamresult
    12: TC_SET_DSL_OPEN_CMD         --> sys tpset wan adsl open
    13: TC_SET_DSL_CLOSE_CMD        --> sys tpset wan adsl close
    14: TC_SET_DSL_TYPE_CMD         --> sys tpset wan adsl type  ...
    15: TC_SET_DSL_MODE_CMD         --> sys tpset wan adsl mode  ...
    16: TC_SET_ADD_PVC_CMD          --> sys tpset wan atm pvc add  ...
    17: TC_SET_DEL_PVC_CMD          --> sys tpset wan atm pvc del  ...
    18: TC_SET_ATM_QOS_CMD          --> sys tpset wan atm setqos  ...
    19: TC_SET_REBOOT_CMD           --> sys tpset sys reboot
    20: TC_SET_IP_CMD               --> sys tpset sys ip
    21: TC_GET_IP_CMD               --> sys tpget sys ip
    22: TC_GET_MODEL_NUM_CMD        --> sys tpget sys modelcheck on
    23: TC_SET_FACTORY_RESET_CMD    --> sys tpset sys default
    24: TC_GET_SYS_OTHER_STATUS_CMD --> sys tpset sys show sysotherstatus
    25: TC_GET_WAN_DSL_SUPFRAME_CMD --> sys tpset wan dsl supframe
    26: TC_GET_WAN_DSL_RSCORERRS_CMD --> sys tpset wan dsl rscorerrs
    27: TC_GET_WAN_DSL_TOTALCELLS_CMD --> sys tpset wan dsl totalcells
    28: TC_GET_WAN_DSL_DATACELLS_CMD --> sys tpset wan dsl datacells
    29: TC_GET_WAN_DSL_BITERRS_CMD  --> sys tpset wan dsl biterrs
    30: TC_GET_WAN_DSL_TOTALERRSECONDS_CMD --> sys tpset wan dsl totalerrseconds
    31: TC_SET_WAN_BITSWAP_CMD      --> sys tpset wan bitswap
    32: TC_SET_WAN_SRA_CMD          --> sys tpset wan sra
    33: TC_SET_RETRAIN_CMD          --> sys tpset wan ad r
    34: TC_GET_W_GHS_SHOW_OP_CMD    --> sys tpget w ghs show op
    35: TC_GET_WAN_ADSL_L_F_CMD     --> sys tpget wan adsl l f
    36: TC_GET_WAN_DMT2_SHOW_SNRM_CMD --> sys tpget wan dmt2 show snrm
    37: TC_SET_WAN_DSL_LED_ON_CMD   --> sys tpset led on
    38: TC_SET_WAN_DSL_LED_OFF_CMD  --> sys tpset led off
        Note: if cmd need parameters, then it will get from PVC1 settings.
Options:       -v    verbose mode
20:59:42: W_AGENT: OK

And the important bit!!

Code: [Select]
12270 0           264 S   /sbin/xgi /www/Wizard/Summary_DSL_Wait.xgi
12273 0           356 S   sh -c /usr/sbin/submit ADSL_STATUS /dev/console
12274 0           384 R   /bin/sh /usr/sbin/submit ADSL_STATUS /dev/console

Running
Code: [Select]
/usr/sbin/submit ADSL_STATUS /dev/console updates the db :-)

Code: [Select]
DSL-2780 # submit
Usage: submit {COMMIT|WAN|LAN|CLR_DEVSTATUS|LAN_CHANGE|HTTPD|HTTPD_PASSWD|REMOTE|
               DHCPD|DHCP_RELAY|DNS|DNSR|TIME|MANUAL_TIME|WLAN|RESET_WLAN|PPPCONNECT|
               IGMPPROXY|PORTMAP|SYSLOG|CLEARLOG|FRESET|REBOOT|
               RG|RG_FIREWALL|SECURITY|RG_IP_FILTER|RG_MAC_FILTER|RG_BLOCKING|
               RG_VSVR|RG_DMZ|RG_MISC|RG_APP|
               SYSTEM|DO_WPS|DO_WPS_PBC|ROUTE|VIDEO_ROUTE|FTPD|RIPD|DDNS|DDNS_TEST|
               QOS|DIAG_DSL|DIAG_ETH|TR069|TR069_PROXY|SNMP|CAC|[VOIP_]*|CALL_LOG|
               UPNP|STOP_UPNP|ADSL_STATUS|ADSL_SETMODE|ADSL_SETTYPE|ADSL_SETBITSWAP|
               ADSL_SETSRA}
DSL-2780 #




Logged

asbokid

  • Kitizen
  • ****
  • Posts: 1286
    • Hacking the 2Wire
Re: stats / bitloading from D-Link DSL-2780 (from TalkTalk) possible?
« Reply #32 on: March 26, 2013, 10:32:20 PM »

Great finds, Adam!  And excellent that you've documented it  :)

cheers, a
Logged
Pages: 1 2 [3]
 

anything