Команда snmpgetnext
Назначение команды
Команда snmpgetnext служит для запроса значений переменных плат блока MC04-DSL-3U (чтения переменных). Данная команда почти полностью аналогична команде snmpget, и отличается от нее лишь тем, что вместо значения переменной, переданной в запросе, возвращает значение следующей за указанной в запросе переменной. Команда snmpgetnext в-основном служит для внутренних целей платы SW-01 - реализации запроса GETNEXT протокола SNMP.
Ключи запроса
См. описание ключей запроса команды snmpget.
Права доступа
См. описание прав доступа команды snmpget.
Возвращаемые данные
См. описание возвращаемых данных команды snmpget.
В отличие от команды snmpget, в возвращаемых командой snmpgetnext данных поле oid объекта с результатом чтения значения переменной содержит не OID запрошенной переменной, а OID, следующий в MIB платы непосредственно за запрошенным. При этом ключи объекта result будут, как и при использовании команды snmpget, иметь значения, указанные в запросе.
Для примера предположим, что в слоте 9 установлена плата "AB-12", имеющая переменные .1.0, .2.0, .3.0, .4.0, .5.0, .7.1.1.0, .7.1.2.0 и т.д. Запрос {"cmd":"snmpgetnext","varlist":[".4.9.1.0"]} вернет такой ответ:
{
"cmd":"snmpgetnext",
"result": {
".4.9.1.0": {
"oid":".4.9.2.0",
"status":"OK",
"value":"AB-12"
}
}
}
При указании в запросе нескольких OID для каждого из них будет возвращено значение следующей переменной. Например запрос {"cmd":"snmpgetnext","varlist":[".4.9.1.0", ".4.9.7.1.1.0"]} вернет такой ответ:
{
"cmd":"snmpgetnext",
"result": {
".4.9.1.0": {
"oid":".4.9.2.0",
"status":"OK",
"value":"AB-12"
},
".4.9.7.1.1.0": {
"oid":".4.9.7.1.2.0",
"status":"OK",
"value":12345
}
}
}
Так как обращения к переменным, указываемым в запросе, не происходит, а указываемые строки служат только для поиска следующего OID в MIB платы, допустимо указывать в запросе неполный OID или OID несуществующей переменной. Например запрос {"cmd":"snmpgetnext","varlist":[".4.9.2", ".4.9.6.0"]} вернет такой ответ:
{
"cmd":"snmpgetnext",
"result": {
".4.9.2": {
"oid":".4.9.2.0",
"status":"OK",
"value":"AB-12"
},
".4.9.6.0": {
"oid":".4.9.7.1.1.0",
"status":"OK",
"value":530
}
}
}
В случае, если в блоке нет переменных с OID, следующим за запрошенным командой snmpgetnext, для запрошенного OID возвращается результат со статусом UNKNOWN и полем oid, имеющим значение запрошенного. Например запрос {"cmd":"snmpgetnext","varlist":[".4.21.199.0"]} вернет такой ответ:
{
"cmd":"snmpgetnext",
"result": {
".4.20": {
"oid":".4.20",
"status":"UNKNOWN"
}
}
}
