Olej писал(а): 4. После этого применяются автоматические генераторы кода, которые по описанным в MIB-файлах OID делают генерацию шаблонов кода обслуживания. Существует достаточно много сторонних пакетов генерации шаблонов кода на языках C, C++, Java, ... Один из таких генераторов в код C mib2c входит в состав пакета net-snmp-perl (мы определили это выше).
Код: Выделить всё
$ mib2c -h
...
Код: Выделить всё
$ env MIBS="+OLEJ-MANAGEMENT-MIB" mib2c -c mib2c.scalar.conf currentValue
writing to currentValue.h
writing to currentValue.c
running indent on currentValue.c
running indent on currentValue.h
Код: Выделить всё
$ env MIBS="+OLEJ-MANAGEMENT-MIB" mib2c -c mib2c.scalar.conf nextStep
writing to nextStep.h
writing to nextStep.c
running indent on nextStep.c
running indent on nextStep.h
OID в SNMP бывают таких классов: скалярная переменная, таблица, уведомление (нотификация, Trap, InfoRequest).
Можно и не указывать явно -c, но тогда на вопросы mib2c нужно будет отвечать в диалоге.
Заготовлено довольно много конфигураций для разных типов OID, главным образом для разных представлений табличных OID:
Код: Выделить всё
$ cd /usr/share/snmp
$ ls -w100 mib2c*.conf
mib2c.access_functions.conf mib2c.container.conf mib2c.notify.conf
mib2c.array-user.conf mib2c.create-dataset.conf mib2c.old-api.conf
mib2c.check_values.conf mib2c.emulation.conf mib2c.perl.conf
mib2c.check_values_local.conf mib2c.genhtml.conf mib2c.raw-table.conf
mib2c.column_defines.conf mib2c.int_watch.conf mib2c.row.conf
mib2c.column_enums.conf mib2c.iterate_access.conf mib2c.scalar.conf
mib2c.column_storage.conf mib2c.iterate.conf mib2c.table_data.conf
mib2c.conf mib2c.mfd.conf
Код: Выделить всё
$ ls *.h
common.h currentValue.h nextStep.h
$ ls *.c
cli.c currentValue.c locl.c nextStep.c snmp.c