  Simple Network Management Protocol (SNMP) is widely used for management of
Internet-based network today. In Lisp community, there're large Lisp-based
applications which may need be monitored, and there're Lispers who may need to
monitor other remote systems which are either Lisp-based or not. However, the
relationship between Lisp and SNMP haven't been studied enough during past 20
years.
  The cl-net-snmp project has developed a new Common Lisp package which
implemented the SNMP protocol. On client side, it can be used to query remote
SNMP peers, and on server side, it brings SNMP capability into Common Lisp
based applications, which could be monitored from remote through any SNMP-based
management system. It's also a flexible platform for researches on network
management and SNMP itself. But the most important, this project tries to
prove: Common Lisp is the most fit language to implement SNMP.
  Different from other exist SNMP projects on Common Lisp, cl-net-snmp is
clearly targeted on full SNMP protocol support include SNMPv3 and server-side
work (agent). During the development, an general ASN.1 compiler and runtime
package and an portable UDP networking package are also implemented, which
would be useful for other related projects.
  In this paper, the author first introduces the SNMP protocol and a quick
tutorial of cl-net-snmp on both client and server sides, and then the Lisp
native design and the implementation details of the ASN.1 and SNMP package,
especially the "code generation"' approach on compiling SNMP MIB definitions
from ASN.1 into Common Lisp.
