From 794104a974a886f63e5ecafe93681b32f141f4bc Mon Sep 17 00:00:00 2001 From: Amin Ben Ramdhane Date: Thu, 4 Mar 2021 17:18:51 +0100 Subject: [PATCH] bbf: Add support for Device.FAST.Line.{i}.Stats, Device.DSL.Line.{i}.Stats and Device.DSL.Channel.{i}.Stats parameters --- dmtree/tr181/dsl.c | 128 ++++++++++++++++++ dmtree/tr181/fast.c | 64 +++++++++ json/tr181.json | 312 ++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 480 insertions(+), 24 deletions(-) diff --git a/dmtree/tr181/dsl.c b/dmtree/tr181/dsl.c index 5a161694..72b1b432 100644 --- a/dmtree/tr181/dsl.c +++ b/dmtree/tr181/dsl.c @@ -776,6 +776,62 @@ static int get_DSLLine_XTUCANSIRev(char *refparam, struct dmctx *ctx, void *data return 0; } +/*#Device.DSL.Line.{i}.Stats.BytesSent!UBUS:dsl.line.1/stats//bytes_sent*/ +static int get_DSLLineStats_BytesSent(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.line", ((struct dsl_line_args*)data)->id, "stats", "bytes_sent"); + return 0; +} + +/*#Device.DSL.Line.{i}.Stats.BytesReceived!UBUS:dsl.line.1/stats//bytes_received*/ +static int get_DSLLineStats_BytesReceived(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.line", ((struct dsl_line_args*)data)->id, "stats", "bytes_received"); + return 0; +} + +/*#Device.DSL.Line.{i}.Stats.PacketsSent!UBUS:dsl.line.1/stats//packets_sent*/ +static int get_DSLLineStats_PacketsSent(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.line", ((struct dsl_line_args*)data)->id, "stats", "packets_sent"); + return 0; +} + +/*#Device.DSL.Line.{i}.Stats.PacketsReceived!UBUS:dsl.line.1/stats//packets_received*/ +static int get_DSLLineStats_PacketsReceived(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.line", ((struct dsl_line_args*)data)->id, "stats", "packets_received"); + return 0; +} + +/*#Device.DSL.Line.{i}.Stats.ErrorsSent!UBUS:dsl.line.1/stats//errors_sent*/ +static int get_DSLLineStats_ErrorsSent(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.line", ((struct dsl_line_args*)data)->id, "stats", "errors_sent"); + return 0; +} + +/*#Device.DSL.Line.{i}.Stats.ErrorsReceived!UBUS:dsl.line.1/stats//errors_received*/ +static int get_DSLLineStats_ErrorsReceived(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.line", ((struct dsl_line_args*)data)->id, "stats", "errors_received"); + return 0; +} + +/*#Device.DSL.Line.{i}.Stats.DiscardPacketsSent!UBUS:dsl.line.1/stats//discard_packets_sent*/ +static int get_DSLLineStats_DiscardPacketsSent(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.line", ((struct dsl_line_args*)data)->id, "stats", "discard_packets_sent"); + return 0; +} + +/*#Device.DSL.Line.{i}.Stats.DiscardPacketsReceived!UBUS:dsl.line.1/stats//discard_packets_received*/ +static int get_DSLLineStats_DiscardPacketsReceived(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.line", ((struct dsl_line_args*)data)->id, "stats", "discard_packets_received"); + return 0; +} + /*#Device.DSL.Line.{i}.Stats.TotalStart!UBUS:dsl.line.1/stats//total_start*/ static int get_DSLLineStats_TotalStart(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { @@ -1102,6 +1158,62 @@ static int get_DSLChannel_ACTINPREIN(char *refparam, struct dmctx *ctx, void *da return 0; } +/*#Device.DSL.Channel.{i}.Stats.BytesSent!UBUS:dsl.channel.1/stats//bytes_sent*/ +static int get_DSLChannelStats_BytesSent(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.channel", ((struct dsl_channel_args*)data)->id, "stats", "bytes_sent"); + return 0; +} + +/*#Device.DSL.Channel.{i}.Stats.BytesReceived!UBUS:dsl.channel.1/stats//bytes_received*/ +static int get_DSLChannelStats_BytesReceived(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.channel", ((struct dsl_channel_args*)data)->id, "stats", "bytes_received"); + return 0; +} + +/*#Device.DSL.Channel.{i}.Stats.PacketsSent!UBUS:dsl.channel.1/stats//packets_sent*/ +static int get_DSLChannelStats_PacketsSent(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.channel", ((struct dsl_channel_args*)data)->id, "stats", "packets_sent"); + return 0; +} + +/*#Device.DSL.Channel.{i}.Stats.PacketsReceived!UBUS:dsl.channel.1/stats//packets_received*/ +static int get_DSLChannelStats_PacketsReceived(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.channel", ((struct dsl_channel_args*)data)->id, "stats", "packets_received"); + return 0; +} + +/*#Device.DSL.Channel.{i}.Stats.ErrorsSent!UBUS:dsl.channel.1/stats//errors_sent*/ +static int get_DSLChannelStats_ErrorsSent(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.channel", ((struct dsl_channel_args*)data)->id, "stats", "errors_sent"); + return 0; +} + +/*#Device.DSL.Channel.{i}.Stats.ErrorsReceived!UBUS:dsl.channel.1/stats//errors_received*/ +static int get_DSLChannelStats_ErrorsReceived(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.channel", ((struct dsl_channel_args*)data)->id, "stats", "errors_received"); + return 0; +} + +/*#Device.DSL.Channel.{i}.Stats.DiscardPacketsSent!UBUS:dsl.channel.1/stats//discard_packets_sent*/ +static int get_DSLChannelStats_DiscardPacketsSent(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.channel", ((struct dsl_channel_args*)data)->id, "stats", "discard_packets_sent"); + return 0; +} + +/*#Device.DSL.Channel.{i}.Stats.DiscardPacketsReceived!UBUS:dsl.channel.1/stats//discard_packets_received*/ +static int get_DSLChannelStats_DiscardPacketsReceived(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_dsl_value_without_argument("dsl.channel", ((struct dsl_channel_args*)data)->id, "stats", "discard_packets_received"); + return 0; +} + /*#Device.DSL.Channel.{i}.Stats.TotalStart!UBUS:dsl.channel.1/stats//total_start*/ static int get_DSLChannelStats_TotalStart(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { @@ -1434,6 +1546,14 @@ DMOBJ tDSLLineStatsObj[] = { DMLEAF tDSLLineStatsParams[] = { /* PARAM, permission, type, getvalue, setvalue, bbfdm_type*/ +{"BytesSent", &DMREAD, DMT_UNLONG, get_DSLLineStats_BytesSent, NULL, BBFDM_BOTH}, +{"BytesReceived", &DMREAD, DMT_UNLONG, get_DSLLineStats_BytesReceived, NULL, BBFDM_BOTH}, +{"PacketsSent", &DMREAD, DMT_UNLONG, get_DSLLineStats_PacketsSent, NULL, BBFDM_BOTH}, +{"PacketsReceived", &DMREAD, DMT_UNLONG, get_DSLLineStats_PacketsReceived, NULL, BBFDM_BOTH}, +{"ErrorsSent", &DMREAD, DMT_UNINT, get_DSLLineStats_ErrorsSent, NULL, BBFDM_BOTH}, +{"ErrorsReceived", &DMREAD, DMT_UNINT, get_DSLLineStats_ErrorsReceived, NULL, BBFDM_BOTH}, +{"DiscardPacketsSent", &DMREAD, DMT_UNINT, get_DSLLineStats_DiscardPacketsSent, NULL, BBFDM_BOTH}, +{"DiscardPacketsReceived", &DMREAD, DMT_UNINT, get_DSLLineStats_DiscardPacketsReceived, NULL, BBFDM_BOTH}, {"TotalStart", &DMREAD, DMT_UNINT, get_DSLLineStats_TotalStart, NULL, BBFDM_BOTH}, {"ShowtimeStart", &DMREAD, DMT_UNINT, get_DSLLineStats_ShowtimeStart, NULL, BBFDM_BOTH}, {"LastShowtimeStart", &DMREAD, DMT_UNINT, get_DSLLineStats_LastShowtimeStart, NULL, BBFDM_BOTH}, @@ -1528,6 +1648,14 @@ DMOBJ tDSLChannelStatsObj[] = { DMLEAF tDSLChannelStatsParams[] = { /* PARAM, permission, type, getvalue, setvalue, bbfdm_type*/ +{"BytesSent", &DMREAD, DMT_UNLONG, get_DSLChannelStats_BytesSent, NULL, BBFDM_BOTH}, +{"BytesReceived", &DMREAD, DMT_UNLONG, get_DSLChannelStats_BytesReceived, NULL, BBFDM_BOTH}, +{"PacketsSent", &DMREAD, DMT_UNLONG, get_DSLChannelStats_PacketsSent, NULL, BBFDM_BOTH}, +{"PacketsReceived", &DMREAD, DMT_UNLONG, get_DSLChannelStats_PacketsReceived, NULL, BBFDM_BOTH}, +{"ErrorsSent", &DMREAD, DMT_UNINT, get_DSLChannelStats_ErrorsSent, NULL, BBFDM_BOTH}, +{"ErrorsReceived", &DMREAD, DMT_UNINT, get_DSLChannelStats_ErrorsReceived, NULL, BBFDM_BOTH}, +{"DiscardPacketsSent", &DMREAD, DMT_UNINT, get_DSLChannelStats_DiscardPacketsSent, NULL, BBFDM_BOTH}, +{"DiscardPacketsReceived", &DMREAD, DMT_UNINT, get_DSLChannelStats_DiscardPacketsReceived, NULL, BBFDM_BOTH}, {"TotalStart", &DMREAD, DMT_UNINT, get_DSLChannelStats_TotalStart, NULL, BBFDM_BOTH}, {"ShowtimeStart", &DMREAD, DMT_UNINT, get_DSLChannelStats_ShowtimeStart, NULL, BBFDM_BOTH}, {"LastShowtimeStart", &DMREAD, DMT_UNINT, get_DSLChannelStats_LastShowtimeStart, NULL, BBFDM_BOTH}, diff --git a/dmtree/tr181/fast.c b/dmtree/tr181/fast.c index 3bdfe94e..ed1bc563 100644 --- a/dmtree/tr181/fast.c +++ b/dmtree/tr181/fast.c @@ -390,6 +390,62 @@ static int get_FASTLine_SNRMRMCus(char *refparam, struct dmctx *ctx, void *data, return 0; } +/*#Device.FAST.Line.{i}.Stats.BytesSent!UBUS:fast.line.1/stats//bytes_sent*/ +static int get_FASTLineStats_BytesSent(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_fast_value_without_argument("fast.line", ((struct fast_line_args*)data)->id, "stats", "bytes_sent"); + return 0; +} + +/*#Device.FAST.Line.{i}.Stats.BytesReceived!UBUS:fast.line.1/stats//bytes_received*/ +static int get_FASTLineStats_BytesReceived(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_fast_value_without_argument("fast.line", ((struct fast_line_args*)data)->id, "stats", "bytes_received"); + return 0; +} + +/*#Device.FAST.Line.{i}.Stats.PacketsSent!UBUS:fast.line.1/stats//packets_sent*/ +static int get_FASTLineStats_PacketsSent(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_fast_value_without_argument("fast.line", ((struct fast_line_args*)data)->id, "stats", "packets_sent"); + return 0; +} + +/*#Device.FAST.Line.{i}.Stats.PacketsReceived!UBUS:fast.line.1/stats//packets_received*/ +static int get_FASTLineStats_PacketsReceived(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_fast_value_without_argument("fast.line", ((struct fast_line_args*)data)->id, "stats", "packets_received"); + return 0; +} + +/*#Device.FAST.Line.{i}.Stats.ErrorsSent!UBUS:fast.line.1/stats//errors_sent*/ +static int get_FASTLineStats_ErrorsSent(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_fast_value_without_argument("fast.line", ((struct fast_line_args*)data)->id, "stats", "errors_sent"); + return 0; +} + +/*#Device.FAST.Line.{i}.Stats.ErrorsReceived!UBUS:fast.line.1/stats//errors_received*/ +static int get_FASTLineStats_ErrorsReceived(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_fast_value_without_argument("fast.line", ((struct fast_line_args*)data)->id, "stats", "errors_received"); + return 0; +} + +/*#Device.FAST.Line.{i}.Stats.DiscardPacketsSent!UBUS:fast.line.1/stats//discard_packets_sent*/ +static int get_FASTLineStats_DiscardPacketsSent(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_fast_value_without_argument("fast.line", ((struct fast_line_args*)data)->id, "stats", "discard_packets_sent"); + return 0; +} + +/*#Device.FAST.Line.{i}.Stats.DiscardPacketsReceived!UBUS:fast.line.1/stats//discard_packets_received*/ +static int get_FASTLineStats_DiscardPacketsReceived(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + *value = get_fast_value_without_argument("fast.line", ((struct fast_line_args*)data)->id, "stats", "discard_packets_received"); + return 0; +} + /*#Device.FAST.Line.{i}.Stats.TotalStart!UBUS:fast.line.1/stats//total_start*/ static int get_FASTLineStats_TotalStart(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { @@ -908,6 +964,14 @@ DMOBJ tFASTLineStatsObj[] = { DMLEAF tFASTLineStatsParams[] = { /* PARAM, permission, type, getvalue, setvalue, bbfdm_type*/ +{"BytesSent", &DMREAD, DMT_UNLONG, get_FASTLineStats_BytesSent, NULL, BBFDM_BOTH}, +{"BytesReceived", &DMREAD, DMT_UNLONG, get_FASTLineStats_BytesReceived, NULL, BBFDM_BOTH}, +{"PacketsSent", &DMREAD, DMT_UNLONG, get_FASTLineStats_PacketsSent, NULL, BBFDM_BOTH}, +{"PacketsReceived", &DMREAD, DMT_UNLONG, get_FASTLineStats_PacketsReceived, NULL, BBFDM_BOTH}, +{"ErrorsSent", &DMREAD, DMT_UNINT, get_FASTLineStats_ErrorsSent, NULL, BBFDM_BOTH}, +{"ErrorsReceived", &DMREAD, DMT_UNINT, get_FASTLineStats_ErrorsReceived, NULL, BBFDM_BOTH}, +{"DiscardPacketsSent", &DMREAD, DMT_UNINT, get_FASTLineStats_DiscardPacketsSent, NULL, BBFDM_BOTH}, +{"DiscardPacketsReceived", &DMREAD, DMT_UNINT, get_FASTLineStats_DiscardPacketsReceived, NULL, BBFDM_BOTH}, {"TotalStart", &DMREAD, DMT_UNINT, get_FASTLineStats_TotalStart, NULL, BBFDM_BOTH}, {"ShowtimeStart", &DMREAD, DMT_UNINT, get_FASTLineStats_ShowtimeStart, NULL, BBFDM_BOTH}, {"LastShowtimeStart", &DMREAD, DMT_UNINT, get_FASTLineStats_LastShowtimeStart, NULL, BBFDM_BOTH}, diff --git a/json/tr181.json b/json/tr181.json index a90dc2ae..bab5c18e 100644 --- a/json/tr181.json +++ b/json/tr181.json @@ -8827,7 +8827,18 @@ "cwmp", "usp" ], - "datatype": "unsignedLong" + "datatype": "unsignedLong", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.line.1", + "method": "stats", + "args": {}, + "key": "bytes_sent" + } + } + ] }, "BytesReceived": { "type": "unsignedLong", @@ -8837,7 +8848,18 @@ "cwmp", "usp" ], - "datatype": "unsignedLong" + "datatype": "unsignedLong", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.line.1", + "method": "stats", + "args": {}, + "key": "bytes_received" + } + } + ] }, "PacketsSent": { "type": "unsignedLong", @@ -8847,7 +8869,18 @@ "cwmp", "usp" ], - "datatype": "unsignedLong" + "datatype": "unsignedLong", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.line.1", + "method": "stats", + "args": {}, + "key": "packets_sent" + } + } + ] }, "PacketsReceived": { "type": "unsignedLong", @@ -8857,7 +8890,18 @@ "cwmp", "usp" ], - "datatype": "unsignedLong" + "datatype": "unsignedLong", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.line.1", + "method": "stats", + "args": {}, + "key": "packets_received" + } + } + ] }, "ErrorsSent": { "type": "unsignedInt", @@ -8867,7 +8911,18 @@ "cwmp", "usp" ], - "datatype": "unsignedInt" + "datatype": "unsignedInt", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.line.1", + "method": "stats", + "args": {}, + "key": "errors_sent" + } + } + ] }, "ErrorsReceived": { "type": "unsignedInt", @@ -8877,7 +8932,18 @@ "cwmp", "usp" ], - "datatype": "unsignedInt" + "datatype": "unsignedInt", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.line.1", + "method": "stats", + "args": {}, + "key": "errors_received" + } + } + ] }, "DiscardPacketsSent": { "type": "unsignedInt", @@ -8887,7 +8953,18 @@ "cwmp", "usp" ], - "datatype": "unsignedInt" + "datatype": "unsignedInt", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.line.1", + "method": "stats", + "args": {}, + "key": "discard_packets_sent" + } + } + ] }, "DiscardPacketsReceived": { "type": "unsignedInt", @@ -8897,7 +8974,18 @@ "cwmp", "usp" ], - "datatype": "unsignedInt" + "datatype": "unsignedInt", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.line.1", + "method": "stats", + "args": {}, + "key": "discard_packets_received" + } + } + ] }, "TotalStart": { "type": "unsignedInt", @@ -10061,7 +10149,18 @@ "cwmp", "usp" ], - "datatype": "unsignedLong" + "datatype": "unsignedLong", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.channel.1", + "method": "stats", + "args": {}, + "key": "bytes_sent" + } + } + ] }, "BytesReceived": { "type": "unsignedLong", @@ -10071,7 +10170,18 @@ "cwmp", "usp" ], - "datatype": "unsignedLong" + "datatype": "unsignedLong", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.channel.1", + "method": "stats", + "args": {}, + "key": "bytes_received" + } + } + ] }, "PacketsSent": { "type": "unsignedLong", @@ -10081,7 +10191,18 @@ "cwmp", "usp" ], - "datatype": "unsignedLong" + "datatype": "unsignedLong", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.channel.1", + "method": "stats", + "args": {}, + "key": "packets_sent" + } + } + ] }, "PacketsReceived": { "type": "unsignedLong", @@ -10091,7 +10212,18 @@ "cwmp", "usp" ], - "datatype": "unsignedLong" + "datatype": "unsignedLong", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.channel.1", + "method": "stats", + "args": {}, + "key": "packets_received" + } + } + ] }, "ErrorsSent": { "type": "unsignedInt", @@ -10101,7 +10233,18 @@ "cwmp", "usp" ], - "datatype": "unsignedInt" + "datatype": "unsignedInt", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.channel.1", + "method": "stats", + "args": {}, + "key": "errors_sent" + } + } + ] }, "ErrorsReceived": { "type": "unsignedInt", @@ -10111,7 +10254,18 @@ "cwmp", "usp" ], - "datatype": "unsignedInt" + "datatype": "unsignedInt", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.channel.1", + "method": "stats", + "args": {}, + "key": "errors_received" + } + } + ] }, "DiscardPacketsSent": { "type": "unsignedInt", @@ -10121,7 +10275,18 @@ "cwmp", "usp" ], - "datatype": "unsignedInt" + "datatype": "unsignedInt", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.channel.1", + "method": "stats", + "args": {}, + "key": "discard_packets_sent" + } + } + ] }, "DiscardPacketsReceived": { "type": "unsignedInt", @@ -10131,7 +10296,18 @@ "cwmp", "usp" ], - "datatype": "unsignedInt" + "datatype": "unsignedInt", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "dsl.channel.1", + "method": "stats", + "args": {}, + "key": "discard_packets_received" + } + } + ] }, "TotalStart": { "type": "unsignedInt", @@ -14668,7 +14844,18 @@ "cwmp", "usp" ], - "datatype": "unsignedLong" + "datatype": "unsignedLong", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "fast.line.1", + "method": "stats", + "args": {}, + "key": "bytes_sent" + } + } + ] }, "BytesReceived": { "type": "unsignedLong", @@ -14678,7 +14865,18 @@ "cwmp", "usp" ], - "datatype": "unsignedLong" + "datatype": "unsignedLong", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "fast.line.1", + "method": "stats", + "args": {}, + "key": "bytes_received" + } + } + ] }, "PacketsSent": { "type": "unsignedLong", @@ -14688,7 +14886,18 @@ "cwmp", "usp" ], - "datatype": "unsignedLong" + "datatype": "unsignedLong", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "fast.line.1", + "method": "stats", + "args": {}, + "key": "packets_sent" + } + } + ] }, "PacketsReceived": { "type": "unsignedLong", @@ -14698,7 +14907,18 @@ "cwmp", "usp" ], - "datatype": "unsignedLong" + "datatype": "unsignedLong", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "fast.line.1", + "method": "stats", + "args": {}, + "key": "packets_received" + } + } + ] }, "ErrorsSent": { "type": "unsignedInt", @@ -14708,7 +14928,18 @@ "cwmp", "usp" ], - "datatype": "unsignedInt" + "datatype": "unsignedInt", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "fast.line.1", + "method": "stats", + "args": {}, + "key": "errors_sent" + } + } + ] }, "ErrorsReceived": { "type": "unsignedInt", @@ -14718,7 +14949,18 @@ "cwmp", "usp" ], - "datatype": "unsignedInt" + "datatype": "unsignedInt", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "fast.line.1", + "method": "stats", + "args": {}, + "key": "errors_received" + } + } + ] }, "DiscardPacketsSent": { "type": "unsignedInt", @@ -14728,7 +14970,18 @@ "cwmp", "usp" ], - "datatype": "unsignedInt" + "datatype": "unsignedInt", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "fast.line.1", + "method": "stats", + "args": {}, + "key": "discard_packets_sent" + } + } + ] }, "DiscardPacketsReceived": { "type": "unsignedInt", @@ -14738,7 +14991,18 @@ "cwmp", "usp" ], - "datatype": "unsignedInt" + "datatype": "unsignedInt", + "mapping": [ + { + "type": "ubus", + "ubus": { + "object": "fast.line.1", + "method": "stats", + "args": {}, + "key": "discard_packets_received" + } + } + ] }, "TotalStart": { "type": "unsignedInt",