summaryrefslogtreecommitdiff
path: root/src/op_mode
diff options
context:
space:
mode:
authorViacheslav Hletenko <v.gletenko@vyos.io>2022-08-23 11:33:20 +0000
committerViacheslav Hletenko <v.gletenko@vyos.io>2022-08-23 11:33:20 +0000
commit9b3cdfb96af98d479cb804c69baa68c1ad50b48f (patch)
tree581875a836863553a9f7b8ba31a1b1da622a74fe /src/op_mode
parentf60d0e1ce029925b843f635b36154c90049b9577 (diff)
downloadvyos-1x-9b3cdfb96af98d479cb804c69baa68c1ad50b48f.tar.gz
vyos-1x-9b3cdfb96af98d479cb804c69baa68c1ad50b48f.zip
conntrack: T4623: Add conntrack statistics for op-mode
Diffstat (limited to 'src/op_mode')
-rwxr-xr-xsrc/op_mode/conntrack.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/op_mode/conntrack.py b/src/op_mode/conntrack.py
index 036226418..b27aa6060 100755
--- a/src/op_mode/conntrack.py
+++ b/src/op_mode/conntrack.py
@@ -51,6 +51,21 @@ def _get_raw_data(family):
return _xml_to_dict(xml)
+def _get_raw_statistics():
+ entries = []
+ data = cmd('sudo conntrack -S')
+ data = data.replace(' \t', '').split('\n')
+ for entry in data:
+ entries.append(entry.split())
+ return entries
+
+
+def get_formatted_statistics(entries):
+ headers = ["CPU", "Found", "Invalid", "Insert", "Insert fail", "Drop", "Early drop", "Errors", "Search restart"]
+ output = tabulate(entries, headers, numalign="left")
+ return output
+
+
def get_formatted_output(dict_data):
"""
:param xml:
@@ -111,6 +126,14 @@ def show(raw: bool, family: str):
return get_formatted_output(conntrack_data)
+def show_statistics(raw: bool):
+ conntrack_statistics = _get_raw_statistics()
+ if raw:
+ return conntrack_statistics
+ else:
+ return get_formatted_statistics(conntrack_statistics)
+
+
if __name__ == '__main__':
try:
res = vyos.opmode.run(sys.modules[__name__])