confd: refactor dhcp server counters

Counters should follow the format from ieee802-ethernet-interface
model, which use:

 - in/out for Rx/Tx
 - plural from

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2025-01-31 13:56:40 +01:00
parent 340330b75b
commit 95cfcaa2fe
3 changed files with 55 additions and 66 deletions
+30 -38
View File
@@ -309,46 +309,38 @@ module infix-dhcp-server {
description "DHCP packet statistics.";
config false;
container sent {
description "The packets sent by the server.";
leaf offer-count {
type yang:counter32;
description "Total number of DHCPOFFER packets.";
}
leaf ack-count {
type yang:counter32;
description "Total number of DHCPACK packets.";
}
leaf nak-count {
type yang:counter32;
description "Total number of DHCPNAK packets.";
}
leaf out-offers {
type yang:counter32;
description "Total number of DHCPOFFER packets.";
}
leaf out-acks {
type yang:counter32;
description "Total number of DHCPACK packets.";
}
leaf out-naks {
type yang:counter32;
description "Total number of DHCPNAK packets.";
}
container received {
description "The packets sent by the client.";
leaf decline-count {
type yang:counter32;
description "Total number of DHCPDECLINE packets.";
}
leaf discover-count {
type yang:counter32;
description "Total number of DHCPDISCOVER packets.";
}
leaf request-count {
type yang:counter32;
description "Total number of DHCPREQUEST packets.";
}
leaf release-count {
type yang:counter32;
description "Total number of DHCPRELEASE packets.";
}
leaf inform-count {
type yang:counter32;
description "Total number of DHCPINFORM packets.";
}
leaf in-declines {
type yang:counter32;
description "Total number of DHCPDECLINE packets.";
}
leaf in-discovers {
type yang:counter32;
description "Total number of DHCPDISCOVER packets.";
}
leaf in-requests {
type yang:counter32;
description "Total number of DHCPREQUEST packets.";
}
leaf in-releases {
type yang:counter32;
description "Total number of DHCPRELEASE packets.";
}
leaf in-informs {
type yang:counter32;
description "Total number of DHCPINFORM packets.";
}
action clear {
+17 -16
View File
@@ -375,15 +375,16 @@ class DhcpServer:
"host": lease["hostname"],
"exp": exp
})
stats = get_json_data([], self.data, 'statistics')
self.offers = stats["sent"]["offer-count"]
self.acks = stats["sent"]["ack-count"]
self.naks = stats["sent"]["nak-count"]
self.declines = stats["received"]["decline-count"]
self.discovers = stats["received"]["discover-count"]
self.requests = stats["received"]["request-count"]
self.releases = stats["received"]["release-count"]
self.informs = stats["received"]["inform-count"]
self.out_offers = stats["out-offers"]
self.out_acks = stats["out-acks"]
self.out_naks = stats["out-naks"]
self.in_declines = stats["in-declines"]
self.in_discovers = stats["in-discovers"]
self.in_requests = stats["in-requests"]
self.in_releases = stats["in-releases"]
self.in_informs = stats["in-informs"]
def format_duration(self, seconds):
"""Convert seconds to DDdHHhMMmSSs format, omitting zero values"""
@@ -421,14 +422,14 @@ class DhcpServer:
print(row)
def print_stats(self):
print(f"{'DHCP offers sent':<{32}}: {self.offers}")
print(f"{'DHCP ACK messages sent':<{32}}: {self.acks}")
print(f"{'DHCP NAK messages sent':<{32}}: {self.naks}")
print(f"{'DHCP decline messages received':<{32}}: {self.declines}")
print(f"{'DHCP discover messages received':<{32}}: {self.discovers}")
print(f"{'DHCP request messages received':<{32}}: {self.requests}")
print(f"{'DHCP release messages received':<{32}}: {self.discovers}")
print(f"{'DHCP inform messages received':<{32}}: {self.discovers}")
print(f"{'DHCP offers sent':<{32}}: {self.out_offers}")
print(f"{'DHCP ACK messages sent':<{32}}: {self.out_acks}")
print(f"{'DHCP NAK messages sent':<{32}}: {self.out_naks}")
print(f"{'DHCP decline messages received':<{32}}: {self.in_declines}")
print(f"{'DHCP discover messages received':<{32}}: {self.in_discovers}")
print(f"{'DHCP request messages received':<{32}}: {self.in_requests}")
print(f"{'DHCP release messages received':<{32}}: {self.in_discovers}")
print(f"{'DHCP inform messages received':<{32}}: {self.in_discovers}")
class Iface:
+8 -12
View File
@@ -70,18 +70,14 @@ def statistics():
}
return {
"sent": {
"offer-count": metrics["dhcp_offer"],
"ack-count": metrics["dhcp_ack"],
"nak-count": metrics["dhcp_nak"]
},
"received": {
"decline-count": metrics["dhcp_decline"],
"discover-count": metrics["dhcp_discover"],
"request-count": metrics["dhcp_request"],
"release-count": metrics["dhcp_release"],
"inform-count": metrics["dhcp_inform"]
}
"out-offers": metrics["dhcp_offer"],
"out-acks": metrics["dhcp_ack"],
"out-naks": metrics["dhcp_nak"],
"in-declines": metrics["dhcp_decline"],
"in-discovers": metrics["dhcp_discover"],
"in-requests": metrics["dhcp_request"],
"in-releases": metrics["dhcp_release"],
"in-informs": metrics["dhcp_inform"]
}