# Asynchronous: asyncore

If you find yourself unable to use particular SNMP feature with the high-level (hlapi) API, your next step would be to use SNMPv3 engine services through one of the Standard SNMP Applications (RFC3413).

There’re a large number of SNMPv3 Native API example scripts on this website. Most of them serve a very specific purpose like talking arbitrary SNMP version or handling particular PDU type. That dedication of features serve the purpose of simplifying example code and easing your studies.

Since all these examples are built on top of common PySNMP components like SNMP engine, asyncore-based I/O dispatcher, configuration datastore, you could always combine parts of the examples for getting a new breed of SNMP application best matching your needs.

## Command Generator Applications

- Various SNMP versions
  - SNMPv1
  - Set scalar value
  - SNMPv3, auth: SHA, privacy: AES128
  - Set string value
- Modifying values
  - SET string and integer scalars
- Walking operations
  - Bulk walk MIB
  - Fetch two subtrees in parallel
- Table operations
  - Fetch scalar and table variables
  - Pull MIB subtree
- MIB tweaks
  - Walk Agent and resolve variables at MIB
- Transport tweaks
  - SNMPv2c, custom timeout
  - Send packets from specific local interface
  - Spoof source address
  - Walk Agent over IPv6
- Advanced topics
  - Custom ContextEngineId and ContextName
  - Report SNMP engine processing details

## Command Responder Applications

- Various SNMP versions
  - Multiple SNMP USM users
  - Multiple SNMP communities
- Agent-side MIB implementations
  - Implementing scalar MIB objects
  - Implementing conceptual table
  - Serve non-default MIB tree
  - Custom MIB Controller
- Transport tweaks
  - Serve multiple network transports
  - Listen on multiple network interfaces
  - Running at secondary network interface
- Advanced topics
  - Specific SNMP Engine ID
  - Observe SNMP engine operations
  - Multiple SNMP Engines
  - Detailed VACM configuration

## Notification Originator Applications

- Various SNMP versions
  - SNMPv1 TRAP
  - SNMPv2c TRAP
  - SNMPv3 TRAP, auth: MD5, privacy: DES
  - SNMPv3 INFORM, auth: MD5, privacy: none
- Common notifications
  - SNMPv1 TRAP
  - SNMPv2c TRAP
  - INFORM notification
- Evaluating NOTIFICATION-TYPE
  - Sending notification with OBJECT’s
- Multiple managers operations
  - Notification to multiple addresses
  - Notification to multiple SNMP managers
  - Notification over multiple SNMP versions
- Transport tweaks
  - Notification over multiple network protocols
  - Send packet from specific network interface/port
- Advanced topic
  - Send crafted TRAP PDU

## Notification Receiver Applications

- Various SNMP versions
  - Serving multiple network interfaces
  - Multiple SNMP USM users
- Transport tweaks
  - Serving multiple network interfaces
  - Using multiple network transports
  - Receive notifications noting peer address
- Advanced topics
  - Observe SNMP engine internal operations
  - Serve SNMP Community names defined by regexp

## Proxy Forwarder Applications

- Transport conversion
  - IPv6-to-IPv4 conversion
- Protocol conversion
  - SNMPv2c-to-SNMPv1 conversion
  - SNMPv2c-to-SNMPv3 conversion
  - SNMPv3-to-SNMPv2c conversion

For more details on PySNMP programming model and interfaces, please refer to the documentation