Add the new application layer. Changes include:
authormartijn <martijn@openbsd.org>
Wed, 19 Jan 2022 10:59:35 +0000 (10:59 +0000)
committermartijn <martijn@openbsd.org>
Wed, 19 Jan 2022 10:59:35 +0000 (10:59 +0000)
commit7f594a49e81c07f4fdb6a6220dbabce80d1e961c
tree11c19f194c5e73976118d10988231988926230b8
parente7a76d17fd3d855417cca1de3f518b75fe8f94ad
Add the new application layer. Changes include:
- Asynchronous design, which should allow us to cleanly implement agentx
  support.
- Cluster requests when sending them to backends
- Return a better error code in a lot of cases.
- Allow bulkget to return row by row instead of column by column (as per
  RFC3416)
- Better SNMPv1 mapping as per RFC3584
- Allow registration of overlapping regions.
- Stricter OID comparison.
- We loose write support. Previous write support didn't guarantee
  atomicity, wasn't persistent across restarts and didn't implement
  anything useful. This can be added later if it's missed.
- This is quite a bit slower, but this should clear up once the current
  mps.c and mib.c code gets pushed out. Other tricks could help speed
  things up, but I don't want to resort to extra tricks if it's not needed.
- More detailed debugging output.

This commit is stand-alone and gets hooked in with the following commit.

"Looks good at first glance" benno@
minor issues pointed out by and OK jmatthew@
Performance loss aceptable to sthen@
tested as part of larger diff by sthen@ and Joel Carnat
usr.sbin/snmpd/application.c [new file with mode: 0644]
usr.sbin/snmpd/application.h [new file with mode: 0644]
usr.sbin/snmpd/application_legacy.c [new file with mode: 0644]