Вероятно, вы уже нашли правильный синтаксис для шестнадцатеричных и битовых данных на справочной странице «snmpset»: http://www.net-snmp.org/docs/man/snmpset.html
Таким образом, установка большого значения Bits (0) выполняется аналогично синтаксису
snmpset <flags,host etc> <oid> b 0
И чтобы установить несколько флагов, например, как средний, так и компактный, используйте
snmpset <flags,host etc> <oid> b 1,2
Я думаю, что последний синтаксис плохо документирован. Я нашел его в архивах списка рассылки для net-snmp.
Как я писал в комментариях, в SNMP нет типа данных «HEX STRING». Если вы хотите передать двоичные данные, такие как значение OCTET STRING, вам нужно будет каким-то образом представить его в командной строке. Net-snmp предоставляет формат ввода под названием «HEX STRING», который будет принимать шестнадцатеричный ввод с использованием следующего синтаксиса:
snmpset <flags,host etc> <oid> x 60
Между прочим, «60» в шестнадцатеричном формате идентично тому, как SNMP будет кодировать «биты 1,2» (второй и третий биты, сначала старший бит).
Описание того, как SNMP кодирует и декодирует значения BITS, находится в разделе 8 RFC1906. Имея эти знания, вам просто нужно узнать, как работает шестнадцатеричное преобразование, которое легко найти в Google.
Изменить: я думаю, это то, что вы ищете:
0 -> 0x80
1 -> 0x40
2 -> 0x20
Это немного назад по сравнению с обычным (LSB) кодированием байтов, но снова прочитайте RFC1906 для описания того, как это работает.
Следует отметить, что если вы попытаетесь установить значение OCTET STRING для переменной BITS, вы можете ожидать, что агент SNMP вернет ошибку типа. Однако, поскольку BITS — это всего лишь макрос SMI, основанный на типе OCTET STRING, на самом деле они кодируются одинаково. Таким образом, агент должен с радостью установить значение.
person
Jolta
schedule
04.09.2014
input format
дляBITS
? - person   schedule 27.08.2014>But I don't want to post it..
- этот ответ вообще не имеет смысла. - person   schedule 28.08.2014