[openwrt/openwrt] ltq-vdsl-app: add error vector counters to the ubus metrics

LEDE Commits lede-commits at lists.infradead.org
Wed Oct 20 15:18:53 PDT 2021


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/70729d345414cdf1463dec042811813ff9a94e7a

commit 70729d345414cdf1463dec042811813ff9a94e7a
Author: Andre Heider <a.heider at gmail.com>
AuthorDate: Sun Oct 3 12:07:41 2021 +0200

    ltq-vdsl-app: add error vector counters to the ubus metrics
    
    These are useful stats to debug vector related line deteriorations,
    see [0].
    
    Example output:
        "erb": {
                "sent": 169925,
                "discarded": 0
        }
    
    [0] https://forum.openwrt.org/t/vectoring-on-lantiq-vrx200-vr9-missing-callback-for-sending-error-samples/104046
    
    Signed-off-by: Andre Heider <a.heider at gmail.com>
---
 .../config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c     | 23 ++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/package/network/config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c b/package/network/config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c
index ab18c9d4d6..707acdc606 100644
--- a/package/network/config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c
+++ b/package/network/config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c
@@ -502,6 +502,18 @@ static void get_vector_status(int fd, vector_t *status) {
 #endif
 }
 
+static void vector_erb(int fd) {
+#ifdef INCLUDE_DSL_CPE_API_VRX
+	if (fd < 0)
+		return;
+
+	IOCTL(IOCTL_MEI_dsmStatistics_t, FIO_MEI_DSM_STATISTICS_GET);
+
+	m_u32("sent", out.n_processed);
+	m_u32("discarded", out.n_fw_dropped_size + out.n_mei_dropped_size + out.n_mei_dropped_no_pp_cb + out.n_pp_dropped);
+#endif
+}
+
 static void band_plan_status(int fd, profile_t *profile) {
 #if (INCLUDE_DSL_CPE_API_VDSL_SUPPORT == 1)
 	IOCTL(DSL_BandPlanStatus_t, DSL_FIO_BAND_PLAN_STATUS_GET)
@@ -803,6 +815,17 @@ static int metrics(struct ubus_context *ctx, struct ubus_object *obj,
 	blobmsg_close_table(&b, c2);
 	blobmsg_close_table(&b, c);
 
+	switch (vector) {
+	case VECTOR_ON_DS:
+	case VECTOR_ON_DS_US:
+		c = blobmsg_open_table(&b, "erb");
+		vector_erb(fd_mei);
+		blobmsg_close_table(&b, c);
+		break;
+	default:
+		break;
+	};
+
 	ubus_send_reply(ctx, req, b.head);
 
 	if (fd_mei >= 0)



More information about the lede-commits mailing list