Модуль odl-snmp-plugin не имеет функций для прямой работы с файлами MIB.
Универсальные RPC, такие как snmp-get, будут принимать только значения OID и возвращать документ JSON с парами OID/значение.
POST :host/restconf/operations/snmp:snmp-get
Authentication: :basic-auth
Content-Type: application/json
{
"input": {
"ip-address": ":addr",
"oid" : "1.3.6.1.2.1.2.2.1",
"get-type" : "GET-BULK",
"community" : ":community"
}
}
{
"output": {
"results": [
{
"oid": "1.3.6.1.2.1.2.2.1.1.1",
"value": "1"
},
{
"oid": "1.3.6.1.2.1.2.2.1.1.2",
"value": "2"
},
...
]
}
}
Специфичные для модуля RPC, такие как get-interfaces, зависят от двух предварительных условий:
- Файл YANG создан из необходимого MIB.
- Файл .oid, который содержит сопоставления имени MIB с OID для плагина yang-oid.
С учетом этих предварительных условий вы можете затем написать файл Maven POM, который будет генерировать код Java, включающий аннотации OID. Это предназначено для того, чтобы вы могли использовать API-интерфейсы Java, поддерживающие привязку, для получения объектов Java, которые заполняются данными SNMP.
Проект OpenDaylight snmp является полным примером того, как это сделать.
См. здесь пример файла YANG, сгенерированного из IF-MIB: https://github.com/opendaylight/snmp/blob/master/mibs-model/src/main/yang/IF-MIB.yang
См. здесь пример файла .oid, также сгенерированного из IF-MIB: https://github.com/opendaylight/snmp/blob/master/mibs-model/src/main/oid/IF-MIB.oid
Необходимы дальнейшие шаги для реализации решения, предоставляющего доступ через NETCONF или RESTCONF. Простой способ — добавить и жестко закодировать RPC, как это сделал плагин odl-snmp-plugin. Более сложное решение потребует концепции подключенных устройств, как это делает odl-netconf-connector, где вы расширяете топологию для хранения учетных данных SNMP устройства, а затем пишете соединитель, который монтирует модули YANG с поддержкой SNMP в узле топологии для устройство.
person
donaldh
schedule
17.01.2017