mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-02 19:58:03 +00:00
LFUtils.py: adds client function that can produce more detailed histogram from a Layer 3 DistributionPayload
Signed-off-by: Jed Reynolds <jed@candelatech.com>
This commit is contained in:
@@ -746,4 +746,58 @@ def exec_wrap(cmd):
|
|||||||
print("\nError with '" + cmd + "', bye\n")
|
print("\nError with '" + cmd + "', bye\n")
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
def expand_endp_histogram(distribution_payload=None):
|
||||||
|
"""
|
||||||
|
Layer 3 endpoints can contain DistributionPayloads that appear like
|
||||||
|
"rx-silence-5m" : {
|
||||||
|
# "histo_category_width" : 1,
|
||||||
|
# "histogram" : [
|
||||||
|
# 221,
|
||||||
|
# 113,
|
||||||
|
# 266,
|
||||||
|
# 615,
|
||||||
|
# 16309,
|
||||||
|
# 56853,
|
||||||
|
# 7954,
|
||||||
|
# 1894,
|
||||||
|
# 29246,
|
||||||
|
# 118,
|
||||||
|
# 12,
|
||||||
|
# 2,
|
||||||
|
# 0,
|
||||||
|
# 0,
|
||||||
|
# 0,
|
||||||
|
# 0
|
||||||
|
# ],
|
||||||
|
# "time window ms" : 300000,
|
||||||
|
# "window avg" : 210.285,
|
||||||
|
# "window max" : 228,
|
||||||
|
# "window min" : 193
|
||||||
|
|
||||||
|
These histogbrams are a set of linear categorys roughly power-of-two categories.
|
||||||
|
:param distribution_payload: dictionary requiring histo_category_width and histogram
|
||||||
|
:return: dictionary containing expanded category ranges and values for categories
|
||||||
|
"""
|
||||||
|
if distribution_payload is None:
|
||||||
|
return None
|
||||||
|
if ("histogram" not in distribution_payload) \
|
||||||
|
or ("histo_category_width" not in distribution_payload):
|
||||||
|
raise ValueError("Unexpected histogram format.")
|
||||||
|
multiplier = int(distribution_payload["histo_category_width"])
|
||||||
|
formatted_dict = {
|
||||||
|
#"00000 <= x <= 00001" : "0"
|
||||||
|
}
|
||||||
|
for bucket_index in range(len(distribution_payload["histogram"]) - 1):
|
||||||
|
pow1 = (2**bucket_index) * multiplier
|
||||||
|
pow2 = (2**(bucket_index+1)) * multiplier
|
||||||
|
if bucket_index == 0:
|
||||||
|
category_name = "00000 <= x <= {:-05.0f}".format(pow2)
|
||||||
|
else:
|
||||||
|
category_name = "{:-05.0f} < x <= {:-05.0f}".format(pow1, pow2)
|
||||||
|
formatted_dict[category_name] = distribution_payload["histogram"][bucket_index]
|
||||||
|
|
||||||
|
pprint.pprint([("historgram", distribution_payload["histogram"]),
|
||||||
|
("formatted", formatted_dict)])
|
||||||
|
return formatted_dict
|
||||||
###
|
###
|
||||||
|
|||||||
Reference in New Issue
Block a user