5. Определения
RFC1157-SNMP DEFINITIONS ::= BEGIN
IMPORTS
ObjectName, ObjectSyntax, NetworkAddress, IpAddress, TimeTicks
FROM RFC1155-SMI;
-- сообщение верхнего уровня
Message ::=
SEQUENCE {
version -- номер версии (1 для данной спецификации)
INTEGER {
version-1(0)
},
community -- имя группы (community name)
OCTET STRING,
data -- например, PDU (при использовании
ANY -- тривиальной аутентификации)
}
-- protocol data units
PDUs ::=
CHOICE {
get-request
GetRequest-PDU,
get-next-request
GetNextRequest-PDU,
get-response
GetResponse-PDU,
set-request
SetRequest-PDU,
trap
Trap-PDU
}
-- PDUs
GetRequest-PDU ::=
[0]
IMPLICIT PDU
GetNextRequest-PDU ::=
[1]
IMPLICIT PDU
GetResponse-PDU ::=
[2]
IMPLICIT PDU
SetRequest-PDU ::=
[3]
IMPLICIT PDU
PDU ::=
SEQUENCE {
request-id
INTEGER,
error-status -- иногда игнорируется
INTEGER {
noError(0),
tooBig(1),
noSuchName(2),
badValue(3),
readOnly(4),
genErr(5)
},
error-index -- иногда игнорируется
INTEGER,
variable-bindings -- эти значения иногда игнорируются
VarBindList
}
Trap-PDU ::=
[4]
IMPLICIT SEQUENCE {
enterprise -- тип объекта, генерирующего
-- прерывание (см. sysObjectID в [5])
OBJECT IDENTIFIER,
agent-addr -- адрес объекта,
NetworkAddress, -- генерирующего прерывание
generic-trap -- тип прерывания
INTEGER {
coldStart(0),
warmStart(1),
linkDown(2),
linkUp(3),
authenticationFailure(4),
egpNeighborLoss(5),
enterpriseSpecific(6)
},
specific-trap -- специфический код, включаемый
INTEGER, -- даже для прерываний, не относящихся
-- к числу enterpriseSpecific
time-stamp -- время, прошедшее с момента
TimeTicks, -- (ре)инициализации сетевого объекта
-- до момента генерации прерывания
variable-bindings -- представляющая интерес информация
VarBindList
}
-- variable bindings
VarBind ::=
SEQUENCE {
name
ObjectName,
value
ObjectSyntax
}
VarBindList ::=
SEQUENCE OF
VarBind
END