1[1] What is SMUX?
2
3SMUX is the snmp multiplexing protocol (RFC 1227). It can be used by an
4snmp agent to query variables maintained by another user-level process.
5
6[2] Why is it relevant to net-snmp?
7
8The original ucd-snmp agent needed a mechanism to query statistics from
9GateD.  GateD has traditionally supported this functionality via SMUX.
10Hence SMUX was implemented within the ucd-snmp framework to extract
11routing protocol statistics from GateD.
12
13net-snmp continues to support smux, and many applications still use it.
14
15[3] What is GateD?
16
17GateD is the 'Gateway Daemon' which implements a variety of routing
18protocols on a variety of platforms (OSes). This was formerly available
19as open source, but has since been made closed and entirely un-free.
20Other routing protocol daemons such a quagga (http://www.quagga.net)
21support SMUX.
22
23[4] Can SMUX extract statistics from other user-level processes?
24
25Yes, the current implementation allows for the registration of any MIB
26that might be registered by a SMUX peer.
27
28[5] How does it work?
29
30Assuming 'snmpd' is already up and running, when the SMUX peer comes up,
31it identifies itself with an oid identifier and string password, and
32registers any MIBs it would like to implement.  When 'snmpd' receives
33queries for these MIBs, it passes these queries to the peer.
34
35[6] Who implemented SMUX for ucd-snmp?
36
37SMUX was implemented by Rohit Dube. He had oodles of help from
38ucd-snmp-coders (Dave, Niels, Wes, Simon, Felix, Leonti) and gated-people
39(Acee, Feiyi, Larry, Sue). [If I missed somebody, sorry in advance and
40do let me know].  Later, Nick Amato re-write the entire SMUX package so
41the code today is mostly his.
42
43[7] How do I find out more about SMUX?
44
45Read the RFC and the code, mainly, but only for legacy code.
46
47*New* sub-agent development should use the AgentX protocol instead,
48which is not only standardized (RFC 2741 + 2742), but is outright superior
49to smux in a number of important ways (handles SET requests reliably,
50able to handle overlapping registrations, aware of SNMPv3 contexts, etc.)
51
52Only build new smux support if you have to.
53