From 238471d25f82d0fa995e1017033c0c6d809cb671 Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Sun, 5 Sep 2021 18:17:05 +0000 Subject: [PATCH] Ensure more updates can fit in the queue, allow scaling to 20 variables on 1000 interfaces --- pyagentx/agent.py | 2 +- vpp-snmp-agent.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pyagentx/agent.py b/pyagentx/agent.py index 021cb1c..5ec21e0 100644 --- a/pyagentx/agent.py +++ b/pyagentx/agent.py @@ -68,7 +68,7 @@ class Agent(object): pass def start(self): - update_queue = queue.Queue(maxsize=20) + update_queue = queue.Queue(maxsize=20000) # 1000 interfaces, 20 variables each self.setup() # Start Updaters for u in self._updater_list: diff --git a/vpp-snmp-agent.py b/vpp-snmp-agent.py index dea9fbf..b03c8dd 100755 --- a/vpp-snmp-agent.py +++ b/vpp-snmp-agent.py @@ -26,6 +26,15 @@ class ifName(pyagentx.Updater): self.set_OCTETSTRING(str(i + 1), vppstat['/if/names'][i]) +class ifIndex(pyagentx.Updater): + def update(self): + global vppstat + vppstat.connect() + + for i in range(len(vppstat['/if/names'])): + self.set_INTEGER(str(i + 1), i + 1) + + class ifType(pyagentx.Updater): def update(self): global vppstat @@ -307,6 +316,7 @@ class MyAgent(pyagentx.Agent): def setup(self): # iso.org.dod.internet.mgmt.mib_2.interfaces.ifTable.ifEntry + self.register('1.3.6.1.2.1.2.2.1.1', ifIndex) self.register('1.3.6.1.2.1.2.2.1.2', ifName) self.register('1.3.6.1.2.1.2.2.1.3', ifType) self.register('1.3.6.1.2.1.2.2.1.9', ifCounterDiscontinuityTime)