I eventually realised that the example you used from my connection has not been posted in this forum thread, but obtained elsewhere 
I can confirm that the values shown are indeed the values displayed in the modem's GUI.
e.g.
| Text |
1
23
| ..
FECErrors = 42205 is displayed as Downstream FEC errors in the GUI ATUCFECErrors = 105 is displayed as Upstream FEC errors in the GUI |
Just to be 100% clear what is being said here, are you confirming that the modem's GUI is CORRECTLY reporting CRC, FEC, & HEC errors, or just confirming just how INCORRECTLY it reports them, citing a real-life example?
If only the firmware was open source and then we would know for sure. We could trace the source of the data right back to the kernel driver.
There are several places where Broadcom and/or Huawei could get it wrong. The driver itself presumably records the correct data. That data is directly retrieved from the kernel by xdslcmd using Unix system calls known as ioctls. So xdslcmd is most likely to report the correct data, but even that tool incorrectly reports the attenuation levels in certain places.
Huawei uses a middleware server in between the embedded web server and the xdsl device driver. And then there's that scripting engine in the webserver itself, and then there's some Javascript which actually renders the data on a web page. So there are many places where programming bugs could be introduced. Some of the source code has comments in Chinese, so that was presumably written by or for Huawei rather than by Broadcom. So the problems of language misunderstandings introduce another avenue for bugs.
I kind of think that Broadcom may as well release the driver source code under an open source licence, so that others can work on it. Since the source code has been leaked all over the internet anyway, there is no commercial advantage in keeping that code proprietary.
The DSP code which runs on the second MIPS core in the 6368 CPU is a different kettle of fish, and Broadcom unsurprisingly guards that code with great care. All we have of that code is a 500kByte binary blob.
But the character device driver (accessed through the device node /dev/*dsl) may as well be open source now, so that these bugs can be worked on.
Unfortunately I don't have the actual xdslcmd info --stats log to go with the example used above, But previous log examples have highlighted the "discrepancies" between the data it contains & the data as displayed in the GUI.
Paul
I still don't understood what those discrepancies involve.
EDIT:
Okay, I just looked at JustAnother's post at [1]. The uptime may relate to total DSL uptime accumulated since the last reboot of the Huawei.. Which means if there were multiple DSL sessions, between which the Huawei was _not_ rebooted, then that uptime figure would be a summation of those session durations. Only a suggestion, mind!
As for the (large) figure reported by the web interface for FEC errors... wasn't that solved by john and WWWombat? Since the same figure is reported under the heading "RSCorr" in 'xdslcmd info --stats', isn't it the number of 'correctable' errors that were caught, before the data blocks were passed to the RS code for correction? Those blocks don't need re-sending since Reed-Solomon coding reserves redundant bytes for the purposes of correction. At that stage, the errors were counted as RSCorrectable, rather than as RSCorrected.
It is a very poor web interface in the Huawei. For someone with the enthusiasm, it wouldn't be difficult to patch it though. Between these four walls, there's a security flaw in the Huawei's web server that can be used beneficially to execute arbitrary code on the device. It can be used to retrieve whatever statistics you want from the xDSL kernel driver.
cheers, a
[1]
http://forum.kitz.co.uk/index.php/topic,10289.msg205...
Edited by deleted (Wed 14-Dec-11 00:38:55)