aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/config/ltq-vdsl-app/patches
diff options
context:
space:
mode:
authorAndre Heider <a.heider@gmail.com>2021-01-26 09:00:48 +0100
committerHauke Mehrtens <hauke@hauke-m.de>2021-02-08 21:43:00 +0100
commit5372205ca9afea8e51c1762eabcaf5a97350bbaf (patch)
treefe7cde18357fc6905d9cc95d1f9e819956163b99 /package/network/config/ltq-vdsl-app/patches
parent4ba6fad7f7f9fe12633149d76fbf9d1486c06306 (diff)
downloadupstream-5372205ca9afea8e51c1762eabcaf5a97350bbaf.tar.gz
upstream-5372205ca9afea8e51c1762eabcaf5a97350bbaf.tar.bz2
upstream-5372205ca9afea8e51c1762eabcaf5a97350bbaf.zip
ltq-vdsl-app: add ubus support to get metrics
Add a 'dsl' ubus object with a 'metrics' function to replace the expensive shell parsing done by /etc/init.d/dsl_control [dsl|luci]stat. All metrics are gathered by using syscalls. An additional thread is started to handle ubus events. $ time /etc/init.d/dsl_control dslstat real 0m 2.66s user 0m 0.90s sys 0m 1.76s $ time ubus call dsl metrics real 0m 0.02s user 0m 0.00s sys 0m 0.01s Example output: { "api_version": "4.17.18.6", "firmware_version": "5.8.1.5.0.7", "chipset": "Lantiq-VRX200", "driver_version": "1.5.17.6", "state": "Showtime with TC-Layer sync", "up": true, "uptime": 3891, "atu_c": { "vendor_id": [ 181, 0, 66, 68, 67, 77, 178, 26 ], "vendor": "Broadcom 178.26", "system_vendor_id": [ 181, 0, 66, 68, 67, 77, 0, 0 ], "system_vendor": "Broadcom", "version": [ 49, 57, 46, 48, 46, 51, 53, 46, 50, 32, 86, 69, 95, 49, 49, 95 ], "serial": [ 65, 65, 49, 52, 52, 54, 70, 69, 48, 90, 87, 45, 48, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] }, "power_state": "L0 - Synchronized", "xtse": [ 0, 0, 0, 0, 0, 0, 0, 2 ], "annex": "B", "standard": "G.993.2", "profile": "17a", "mode": "G.993.2 (VDSL2, Profile 17a, with down- and upstream vectoring)", "upstream": { "vector": true, "trellis": true, "bitswap": true, "retx": true, "virtual_noise": false, "interleave_delay": 0, "data_rate": 31999000, "latn": 8.500000, "satn": 8.400000, "snr": 12.700000, "actps": -90.100000, "actatp": 13.400000, "attndr": 37180000 }, "downstream": { "vector": true, "trellis": true, "bitswap": true, "retx": true, "virtual_noise": false, "interleave_delay": 140, "data_rate": 89998000, "latn": 9.500000, "satn": 9.600000, "snr": 13.300000, "actps": -90.100000, "actatp": -1.600000, "attndr": 116315372 }, "errors": { "near": { "es": 1, "ses": 0, "loss": 3, "uas": 424, "lofs": 0, "fecs": 0, "hec": 0, "ibe": 0, "crc_p": 0, "crcp_p": 0, "cv_p": 0, "cvp_p": 0, "rx_corrupted": 27740, "rx_uncorrected_protected": 27010, "rx_retransmitted": 0, "rx_corrected": 730, "tx_retransmitted": 16222 }, "far": { "es": 242, "ses": 71, "loss": 0, "uas": 424, "lofs": 0, "fecs": 22687, "hec": 0, "ibe": 0, "crc_p": 0, "crcp_p": 0, "cv_p": 0, "cvp_p": 0, "rx_corrupted": 1383552, "rx_uncorrected_protected": 1220215, "rx_retransmitted": 0, "rx_corrected": 163337, "tx_retransmitted": 1574051 } } } Signed-off-by: Andre Heider <a.heider@gmail.com> Tested-by: Martin Schiller <ms@dev.tdt.de>
Diffstat (limited to 'package/network/config/ltq-vdsl-app/patches')
-rw-r--r--package/network/config/ltq-vdsl-app/patches/300-ubus.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/package/network/config/ltq-vdsl-app/patches/300-ubus.patch b/package/network/config/ltq-vdsl-app/patches/300-ubus.patch
new file mode 100644
index 0000000000..f218ea2208
--- /dev/null
+++ b/package/network/config/ltq-vdsl-app/patches/300-ubus.patch
@@ -0,0 +1,50 @@
+--- a/src/dsl_cpe_control.c
++++ b/src/dsl_cpe_control.c
+@@ -177,6 +177,9 @@ extern DSL_Error_t DSL_CPE_Pipe_StaticRe
+ #endif /* INCLUDE_DSL_RESOURCE_STATISTICS*/
+ #endif
+
++extern void ubus_init();
++extern void ubus_deinit();
++
+ DSL_char_t *g_sFirmwareName1 = DSL_NULL;
+ DSL_FirmwareFeatures_t g_nFwFeatures1 = {DSL_FW_XDSLMODE_CLEANED, DSL_FW_XDSLFEATURE_CLEANED,
+ DSL_FW_XDSLFEATURE_CLEANED};
+@@ -6759,6 +6762,8 @@ DSL_int_t dsl_cpe_daemon (
+ signal (SIGTERM, DSL_CPE_TerminationHandler);
+ #endif /* RTEMS*/
+
++ ubus_init();
++
+ /* Open DSL_CPE_MAX_DSL_ENTITIES devices*/
+ for (nDevice = 0; nDevice < DSL_CPE_MAX_DSL_ENTITIES; nDevice++)
+ {
+@@ -7213,6 +7218,7 @@ DSL_int_t dsl_cpe_daemon (
+ #endif /* INCLUDE_DSL_CPE_CLI_SUPPORT */
+
+ DSL_CPE_CONTROL_EXIT:
++ ubus_deinit();
+
+ #ifdef INCLUDE_DSL_BONDING
+ DSL_CPE_BND_Stop((DSL_CPE_BND_Context_t*)pCtrlCtx->pBnd);
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -11,7 +11,7 @@ else
+ dsl_cpe_control_common_ldflags =
+ endif
+
+-dsl_cpe_control_LDADD = -lpthread -lrt
++dsl_cpe_control_LDADD = -lpthread -lrt -lubox -lubus
+
+ if INCLUDE_DSL_CPE_DTI_SUPPORT
+ dsl_cpe_control_LDADD += -ldti_agent
+@@ -66,7 +66,8 @@ dsl_cpe_control_SOURCES = \
+ dsl_cpe_control.c \
+ dsl_cpe_init_cfg.c \
+ dsl_cpe_linux.c \
+- dsl_cpe_debug.c
++ dsl_cpe_debug.c \
++ dsl_cpe_ubus.c
+
+ dsl_cpe_control_SOURCES += \
+ $(dsl_cpe_control_dti_sources)