[catching up on past mail in mailing lists leaves me very behind in this discussion... Sorry about the delay.]
> [...] I didn't feel comfortable integrating > Net-SNMP into the daemon, so I started out with a pure BIRD-based > solution with an internal library used by the individual protocols. I strongly suggest you don't consider trying to implement an AgentX subagent by itself. There are a number of agentx toolkits you can use instead (Net-SNMP being just one). Getting things right in a subagent is not easy (contrary to what the "S" in SNMP stands for; the protocol is simple but the implementation is not). Doing it from scratch will likely end up in an infinite data loop and other annoying things. > [... actually above the other ...] > Considering the single-threaded nature of BIRD [...] And there's the rub. Routing is *the* thing that bird must do and must prioritize for. So the SNMP traffic needs to be handled last. I suspect there is ways of doing that, though, such as checking first for any non-SNMP traffic and handling it first and then *check again* rather than jumping to the held SNMP traffic. EG, wait for a truly dead time where there is no routing traffic to deal with first and the *only* traffic is SNMP based. Then, implement the SNMP agent/mib code in such a way that it won't ever take long to fulfill a request. If you have long-queries that are hard to answer quickly, then either don't answer them or break them up into smaller chunks of processing where you can keep checking for incoming important packets again while doing the processing. EG, the Net-SNMP agent does support a notion of asynchronous support that lets you return control before you've finished getting the data that was requested. > I revised my initial mile stone to just support notifications That's a good plan anyway :-) -- Wes Hardaker My Pictures: http://capturedonearth.com/ My Thoughts: http://pontifications.hardakers.net/
