Node-Red configuration
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

rfc1067.txt 66KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851
  1. Network Working Group J. Case
  2. Request for Comments: 1067 University of Tennessee at Knoxville
  3. M. Fedor
  4. NYSERNet, Inc.
  5. M. Schoffstall
  6. Rensselaer Polytechnic Institute
  7. J. Davin
  8. Proteon, Inc.
  9. August 1988
  10. A Simple Network Management Protocol
  11. Table of Contents
  12. 1. Status of this Memo ................................... 2
  13. 2. Introduction .......................................... 2
  14. 3. The SNMP Architecture ................................. 4
  15. 3.1 Goals of the Architecture ............................ 4
  16. 3.2 Elements of the Architecture ......................... 4
  17. 3.2.1 Scope of Management Information .................... 5
  18. 3.2.2 Representation of Management Information ........... 5
  19. 3.2.3 Operations Supported on Management Information ..... 6
  20. 3.2.4 Form and Meaning of Protocol Exchanges ............. 7
  21. 3.2.5 Definition of Administrative Relationships ......... 7
  22. 3.2.6 Form and Meaning of References to Managed Objects .. 11
  23. 3.2.6.1 Resolution of Ambiguous MIB References ........... 11
  24. 3.2.6.2 Resolution of References across MIB Versions...... 11
  25. 3.2.6.3 Identification of Object Instances ............... 11
  26. 3.2.6.3.1 ifTable Object Type Names ...................... 12
  27. 3.2.6.3.2 atTable Object Type Names ...................... 12
  28. 3.2.6.3.3 ipAddrTable Object Type Names .................. 13
  29. 3.2.6.3.4 ipRoutingTable Object Type Names ............... 13
  30. 3.2.6.3.5 tcpConnTable Object Type Names ................. 13
  31. 3.2.6.3.6 egpNeighTable Object Type Names ................ 14
  32. 4. Protocol Specification ................................ 15
  33. 4.1 Elements of Procedure ................................ 16
  34. 4.1.1 Common Constructs .................................. 18
  35. 4.1.2 The GetRequest-PDU ................................. 19
  36. 4.1.3 The GetNextRequest-PDU ............................. 20
  37. 4.1.3.1 Example of Table Traversal ....................... 22
  38. 4.1.4 The GetResponse-PDU ................................ 23
  39. 4.1.5 The SetRequest-PDU ................................. 24
  40. 4.1.6 The Trap-PDU ....................................... 26
  41. 4.1.6.1 The coldStart Trap ............................... 27
  42. 4.1.6.2 The warmStart Trap ............................... 27
  43. 4.1.6.3 The linkDown Trap ................................ 27
  44. 4.1.6.4 The linkUp Trap .................................. 27
  45. Case, Fedor, Schoffstall, & Davin [Page 1]
  46. RFC 1067 SNMP August 1988
  47. 4.1.6.5 The authenticationFailure Trap ................... 27
  48. 4.1.6.6 The egpNeighborLoss Trap ......................... 27
  49. 4.1.6.7 The enterpriseSpecific Trap ...................... 28
  50. 5. Definitions ........................................... 29
  51. 6. Acknowledgements ...................................... 32
  52. 7. References ............................................ 33
  53. 1. Status of this Memo
  54. This memo defines a simple protocol by which management information
  55. for a network element may be inspected or altered by logically remote
  56. users. In particular, together with its companion memos which
  57. describe the structure of management information along with the
  58. initial management information base, these documents provide a
  59. simple, workable architecture and system for managing TCP/IP-based
  60. internets and in particular the Internet.
  61. This memo specifies a draft standard for the Internet community.
  62. TCP/IP implementations in the Internet which are network manageable
  63. are expected to adopt and implement this specification.
  64. Distribution of this memo is unlimited.
  65. 2. Introduction
  66. As reported in RFC 1052, IAB Recommendations for the Development of
  67. Internet Network Management Standards [1], the Internet Activities
  68. Board has directed the Internet Engineering Task Force (IETF) to
  69. create two new working groups in the area of network management. One
  70. group is charged with the further specification and definition of
  71. elements to be included in the Management Information Base (MIB).
  72. The other is charged with defining the modifications to the Simple
  73. Network Management Protocol (SNMP) to accommodate the short-term
  74. needs of the network vendor and operations communities, and to align
  75. with the output of the MIB working group.
  76. The MIB working group has produced two memos, one which defines a
  77. Structure for Management Information (SMI) [2] for use by the managed
  78. objects contained in the MIB. A second memo [3] defines the list of
  79. managed objects.
  80. The output of the SNMP Extensions working group is this memo, which
  81. incorporates changes to the initial SNMP definition [4] required to
  82. attain alignment with the output of the MIB working group. The
  83. changes should be minimal in order to be consistent with the IAB's
  84. directive that the working groups be "extremely sensitive to the need
  85. to keep the SNMP simple." Although considerable care and debate has
  86. gone into the changes to the SNMP which are reflected in this memo,
  87. Case, Fedor, Schoffstall, & Davin [Page 2]
  88. RFC 1067 SNMP August 1988
  89. the resulting protocol is not backwardly-compatible with its
  90. predecessor, the Simple Gateway Monitoring Protocol (SGMP) [5].
  91. Although the syntax of the protocol has been altered, the original
  92. philosophy, design decisions, and architecture remain intact. In
  93. order to avoid confusion, new UDP ports have been allocated for use
  94. by the protocol described in this memo.
  95. Case, Fedor, Schoffstall, & Davin [Page 3]
  96. RFC 1067 SNMP August 1988
  97. 3. The SNMP Architecture
  98. Implicit in the SNMP architectural model is a collection of network
  99. management stations and network elements. Network management
  100. stations execute management applications which monitor and control
  101. network elements. Network elements are devices such as hosts,
  102. gateways, terminal servers, and the like, which have management
  103. agents responsible for performing the network management functions
  104. requested by the network management stations. The Simple Network
  105. Management Protocol (SNMP) is used to communicate management
  106. information between the network management stations and the agents in
  107. the network elements.
  108. 3.1. Goals of the Architecture
  109. The SNMP explicitly minimizes the number and complexity of management
  110. functions realized by the management agent itself. This goal is
  111. attractive in at least four respects:
  112. (1) The development cost for management agent software
  113. necessary to support the protocol is accordingly reduced.
  114. (2) The degree of management function that is remotely
  115. supported is accordingly increased, thereby admitting
  116. fullest use of internet resources in the management task.
  117. (3) The degree of management function that is remotely
  118. supported is accordingly increased, thereby imposing the
  119. fewest possible restrictions on the form and
  120. sophistication of management tools.
  121. (4) Simplified sets of management functions are easily
  122. understood and used by developers of network management
  123. tools.
  124. A second goal of the protocol is that the functional paradigm for
  125. monitoring and control be sufficiently extensible to accommodate
  126. additional, possibly unanticipated aspects of network operation and
  127. management.
  128. A third goal is that the architecture be, as much as possible,
  129. independent of the architecture and mechanisms of particular hosts or
  130. particular gateways.
  131. 3.2. Elements of the Architecture
  132. The SNMP architecture articulates a solution to the network
  133. management problem in terms of:
  134. Case, Fedor, Schoffstall, & Davin [Page 4]
  135. RFC 1067 SNMP August 1988
  136. (1) the scope of the management information communicated by
  137. the protocol,
  138. (2) the representation of the management information
  139. communicated by the protocol,
  140. (3) operations on management information supported by the
  141. protocol,
  142. (4) the form and meaning of exchanges among management
  143. entities,
  144. (5) the definition of administrative relationships among
  145. management entities, and
  146. (6) the form and meaning of references to management
  147. information.
  148. 3.2.1. Scope of Management Information
  149. The scope of the management information communicated by operation of
  150. the SNMP is exactly that represented by instances of all non-
  151. aggregate object types either defined in Internet-standard MIB or
  152. defined elsewhere according to the conventions set forth in
  153. Internet-standard SMI [2].
  154. Support for aggregate object types in the MIB is neither required for
  155. conformance with the SMI nor realized by the SNMP.
  156. 3.2.2. Representation of Management Information
  157. Management information communicated by operation of the SNMP is
  158. represented according to the subset of the ASN.1 language [6] that is
  159. specified for the definition of non-aggregate types in the SMI.
  160. The SGMP adopted the convention of using a well-defined subset of the
  161. ASN.1 language [6]. The SNMP continues and extends this tradition by
  162. utilizing a moderately more complex subset of ASN.1 for describing
  163. managed objects and for describing the protocol data units used for
  164. managing those objects. In addition, the desire to ease eventual
  165. transition to OSI-based network management protocols led to the
  166. definition in the ASN.1 language of an Internet-standard Structure of
  167. Management Information (SMI) [2] and Management Information Base
  168. (MIB) [3]. The use of the ASN.1 language, was, in part, encouraged
  169. by the successful use of ASN.1 in earlier efforts, in particular, the
  170. SGMP. The restrictions on the use of ASN.1 that are part of the SMI
  171. contribute to the simplicity espoused and validated by experience
  172. with the SGMP.
  173. Case, Fedor, Schoffstall, & Davin [Page 5]
  174. RFC 1067 SNMP August 1988
  175. Also for the sake of simplicity, the SNMP uses only a subset of the
  176. basic encoding rules of ASN.1 [7]. Namely, all encodings use the
  177. definite-length form. Further, whenever permissible, non-constructor
  178. encodings are used rather than constructor encodings. This
  179. restriction applies to all aspects of ASN.1 encoding, both for the
  180. top-level protocol data units and the data objects they contain.
  181. 3.2.3. Operations Supported on Management Information
  182. The SNMP models all management agent functions as alterations or
  183. inspections of variables. Thus, a protocol entity on a logically
  184. remote host (possibly the network element itself) interacts with the
  185. management agent resident on the network element in order to retrieve
  186. (get) or alter (set) variables. This strategy has at least two
  187. positive consequences:
  188. (1) It has the effect of limiting the number of essential
  189. management functions realized by the management agent to
  190. two: one operation to assign a value to a specified
  191. configuration or other parameter and another to retrieve
  192. such a value.
  193. (2) A second effect of this decision is to avoid introducing
  194. into the protocol definition support for imperative
  195. management commands: the number of such commands is in
  196. practice ever-increasing, and the semantics of such
  197. commands are in general arbitrarily complex.
  198. The strategy implicit in the SNMP is that the monitoring of network
  199. state at any significant level of detail is accomplished primarily by
  200. polling for appropriate information on the part of the monitoring
  201. center(s). A limited number of unsolicited messages (traps) guide
  202. the timing and focus of the polling. Limiting the number of
  203. unsolicited messages is consistent with the goal of simplicity and
  204. minimizing the amount of traffic generated by the network management
  205. function.
  206. The exclusion of imperative commands from the set of explicitly
  207. supported management functions is unlikely to preclude any desirable
  208. management agent operation. Currently, most commands are requests
  209. either to set the value of some parameter or to retrieve such a
  210. value, and the function of the few imperative commands currently
  211. supported is easily accommodated in an asynchronous mode by this
  212. management model. In this scheme, an imperative command might be
  213. realized as the setting of a parameter value that subsequently
  214. triggers the desired action. For example, rather than implementing a
  215. "reboot command," this action might be invoked by simply setting a
  216. parameter indicating the number of seconds until system reboot.
  217. Case, Fedor, Schoffstall, & Davin [Page 6]
  218. RFC 1067 SNMP August 1988
  219. 3.2.4. Form and Meaning of Protocol Exchanges
  220. The communication of management information among management entities
  221. is realized in the SNMP through the exchange of protocol messages.
  222. The form and meaning of those messages is defined below in Section 4.
  223. Consistent with the goal of minimizing complexity of the management
  224. agent, the exchange of SNMP messages requires only an unreliable
  225. datagram service, and every message is entirely and independently
  226. represented by a single transport datagram. While this document
  227. specifies the exchange of messages via the UDP protocol [8], the
  228. mechanisms of the SNMP are generally suitable for use with a wide
  229. variety of transport services.
  230. 3.2.5. Definition of Administrative Relationships
  231. The SNMP architecture admits a variety of administrative
  232. relationships among entities that participate in the protocol. The
  233. entities residing at management stations and network elements which
  234. communicate with one another using the SNMP are termed SNMP
  235. application entities. The peer processes which implement the SNMP,
  236. and thus support the SNMP application entities, are termed protocol
  237. entities.
  238. A pairing of an SNMP agent with some arbitrary set of SNMP
  239. application entities is called an SNMP community. Each SNMP
  240. community is named by a string of octets, that is called the
  241. community name for said community.
  242. An SNMP message originated by an SNMP application entity that in fact
  243. belongs to the SNMP community named by the community component of
  244. said message is called an authentic SNMP message. The set of rules
  245. by which an SNMP message is identified as an authentic SNMP message
  246. for a particular SNMP community is called an authentication scheme.
  247. An implementation of a function that identifies authentic SNMP
  248. messages according to one or more authentication schemes is called an
  249. authentication service.
  250. Clearly, effective management of administrative relationships among
  251. SNMP application entities requires authentication services that (by
  252. the use of encryption or other techniques) are able to identify
  253. authentic SNMP messages with a high degree of certainty. Some SNMP
  254. implementations may wish to support only a trivial authentication
  255. service that identifies all SNMP messages as authentic SNMP messages.
  256. For any network element, a subset of objects in the MIB that pertain
  257. to that element is called a SNMP MIB view. Note that the names of
  258. the object types represented in a SNMP MIB view need not belong to a
  259. Case, Fedor, Schoffstall, & Davin [Page 7]
  260. RFC 1067 SNMP August 1988
  261. single sub-tree of the object type name space.
  262. An element of the set { READ-ONLY, READ-WRITE } is called an SNMP
  263. access mode.
  264. A pairing of a SNMP access mode with a SNMP MIB view is called an
  265. SNMP community profile. A SNMP community profile represents
  266. specified access privileges to variables in a specified MIB view. For
  267. every variable in the MIB view in a given SNMP community profile,
  268. access to that variable is represented by the profile according to
  269. the following conventions:
  270. (1) if said variable is defined in the MIB with "Access:" of
  271. "none," it is unavailable as an operand for any operator;
  272. (2) if said variable is defined in the MIB with "Access:" of
  273. "read-write" or "write-only" and the access mode of the
  274. given profile is READ-WRITE, that variable is available
  275. as an operand for the get, set, and trap operations;
  276. (3) otherwise, the variable is available as an operand for
  277. the get and trap operations.
  278. (4) In those cases where a "write-only" variable is an
  279. operand used for the get or trap operations, the value
  280. given for the variable is implementation-specific.
  281. A pairing of a SNMP community with a SNMP community profile is called
  282. a SNMP access policy. An access policy represents a specified
  283. community profile afforded by the SNMP agent of a specified SNMP
  284. community to other members of that community. All administrative
  285. relationships among SNMP application entities are architecturally
  286. defined in terms of SNMP access policies.
  287. For every SNMP access policy, if the network element on which the
  288. SNMP agent for the specified SNMP community resides is not that to
  289. which the MIB view for the specified profile pertains, then that
  290. policy is called a SNMP proxy access policy. The SNMP agent
  291. associated with a proxy access policy is called a SNMP proxy agent.
  292. While careless definition of proxy access policies can result in
  293. management loops, prudent definition of proxy policies is useful in
  294. at least two ways:
  295. (1) It permits the monitoring and control of network elements
  296. which are otherwise not addressable using the management
  297. protocol and the transport protocol. That is, a proxy
  298. agent may provide a protocol conversion function allowing
  299. a management station to apply a consistent management
  300. Case, Fedor, Schoffstall, & Davin [Page 8]
  301. RFC 1067 SNMP August 1988
  302. framework to all network elements, including devices such
  303. as modems, multiplexors, and other devices which support
  304. different management frameworks.
  305. (2) It potentially shields network elements from elaborate
  306. access control policies. For example, a proxy agent may
  307. implement sophisticated access control whereby diverse
  308. subsets of variables within the MIB are made accessible
  309. to different management stations without increasing the
  310. complexity of the network element.
  311. By way of example, Figure 1 illustrates the relationship between
  312. management stations, proxy agents, and management agents. In this
  313. example, the proxy agent is envisioned to be a normal Internet
  314. Network Operations Center (INOC) of some administrative domain which
  315. has a standard managerial relationship with a set of management
  316. agents.
  317. Case, Fedor, Schoffstall, & Davin [Page 9]
  318. RFC 1067 SNMP August 1988
  319. +------------------+ +----------------+ +----------------+
  320. | Region #1 INOC | |Region #2 INOC | |PC in Region #3 |
  321. | | | | | |
  322. |Domain=Region #1 | |Domain=Region #2| |Domain=Region #3|
  323. |CPU=super-mini-1 | |CPU=super-mini-1| |CPU=Clone-1 |
  324. |PCommunity=pub | |PCommunity=pub | |PCommunity=slate|
  325. | | | | | |
  326. +------------------+ +----------------+ +----------------+
  327. /|\ /|\ /|\
  328. | | |
  329. | | |
  330. | \|/ |
  331. | +-----------------+ |
  332. +-------------->| Region #3 INOC |<-------------+
  333. | |
  334. |Domain=Region #3 |
  335. |CPU=super-mini-2 |
  336. |PCommunity=pub, |
  337. | slate |
  338. |DCommunity=secret|
  339. +-------------->| |<-------------+
  340. | +-----------------+ |
  341. | /|\ |
  342. | | |
  343. | | |
  344. \|/ \|/ \|/
  345. +-----------------+ +-----------------+ +-----------------+
  346. |Domain=Region#3 | |Domain=Region#3 | |Domain=Region#3 |
  347. |CPU=router-1 | |CPU=mainframe-1 | |CPU=modem-1 |
  348. |DCommunity=secret| |DCommunity=secret| |DCommunity=secret|
  349. +-----------------+ +-----------------+ +-----------------+
  350. Domain: the administrative domain of the element
  351. PCommunity: the name of a community utilizing a proxy agent
  352. DCommunity: the name of a direct community
  353. Figure 1
  354. Example Network Management Configuration
  355. Case, Fedor, Schoffstall, & Davin [Page 10]
  356. RFC 1067 SNMP August 1988
  357. 3.2.6. Form and Meaning of References to Managed Objects
  358. The SMI requires that the definition of a conformant management
  359. protocol address:
  360. (1) the resolution of ambiguous MIB references,
  361. (2) the resolution of MIB references in the presence multiple
  362. MIB versions, and
  363. (3) the identification of particular instances of object
  364. types defined in the MIB.
  365. 3.2.6.1. Resolution of Ambiguous MIB References
  366. Because the scope of any SNMP operation is conceptually confined to
  367. objects relevant to a single network element, and because all SNMP
  368. references to MIB objects are (implicitly or explicitly) by unique
  369. variable names, there is no possibility that any SNMP reference to
  370. any object type defined in the MIB could resolve to multiple
  371. instances of that type.
  372. 3.2.6.2. Resolution of References across MIB Versions
  373. The object instance referred to by any SNMP operation is exactly that
  374. specified as part of the operation request or (in the case of a get-
  375. next operation) its immediate successor in the MIB as a whole. In
  376. particular, a reference to an object as part of some version of the
  377. Internet-standard MIB does not resolve to any object that is not part
  378. of said version of the Internet-standard MIB, except in the case that
  379. the requested operation is get-next and the specified object name is
  380. lexicographically last among the names of all objects presented as
  381. part of said version of the Internet-Standard MIB.
  382. 3.2.6.3. Identification of Object Instances
  383. The names for all object types in the MIB are defined explicitly
  384. either in the Internet-standard MIB or in other documents which
  385. conform to the naming conventions of the SMI. The SMI requires that
  386. conformant management protocols define mechanisms for identifying
  387. individual instances of those object types for a particular network
  388. element.
  389. Each instance of any object type defined in the MIB is identified in
  390. SNMP operations by a unique name called its "variable name." In
  391. general, the name of an SNMP variable is an OBJECT IDENTIFIER of the
  392. form x.y, where x is the name of a non-aggregate object type defined
  393. in the MIB and y is an OBJECT IDENTIFIER fragment that, in a way
  394. Case, Fedor, Schoffstall, & Davin [Page 11]
  395. RFC 1067 SNMP August 1988
  396. specific to the named object type, identifies the desired instance.
  397. This naming strategy admits the fullest exploitation of the semantics
  398. of the GetNextRequest-PDU (see Section 4), because it assigns names
  399. for related variables so as to be contiguous in the lexicographical
  400. ordering of all variable names known in the MIB.
  401. The type-specific naming of object instances is defined below for a
  402. number of classes of object types. Instances of an object type to
  403. which none of the following naming conventions are applicable are
  404. named by OBJECT IDENTIFIERs of the form x.0, where x is the name of
  405. said object type in the MIB definition.
  406. For example, suppose one wanted to identify an instance of the
  407. variable sysDescr The object class for sysDescr is:
  408. iso org dod internet mgmt mib system sysDescr
  409. 1 3 6 1 2 1 1 1
  410. Hence, the object type, x, would be 1.3.6.1.2.1.1.1 to which is
  411. appended an instance sub-identifier of 0. That is, 1.3.6.1.2.1.1.1.0
  412. identifies the one and only instance of sysDescr.
  413. 3.2.6.3.1. ifTable Object Type Names
  414. The name of a subnet interface, s, is the OBJECT IDENTIFIER value of
  415. the form i, where i has the value of that instance of the ifIndex
  416. object type associated with s.
  417. For each object type, t, for which the defined name, n, has a prefix
  418. of ifEntry, an instance, i, of t is named by an OBJECT IDENTIFIER of
  419. the form n.s, where s is the name of the subnet interface about which
  420. i represents information.
  421. For example, suppose one wanted to identify the instance of the
  422. variable ifType associated with interface 2. Accordingly, ifType.2
  423. would identify the desired instance.
  424. 3.2.6.3.2. atTable Object Type Names
  425. The name of an AT-cached network address, x, is an OBJECT IDENTIFIER
  426. of the form 1.a.b.c.d, where a.b.c.d is the value (in the familiar
  427. "dot" notation) of the atNetAddress object type associated with x.
  428. The name of an address translation equivalence e is an OBJECT
  429. IDENTIFIER value of the form s.w, such that s is the value of that
  430. instance of the atIndex object type associated with e and such that w
  431. is the name of the AT-cached network address associated with e.
  432. Case, Fedor, Schoffstall, & Davin [Page 12]
  433. RFC 1067 SNMP August 1988
  434. For each object type, t, for which the defined name, n, has a prefix
  435. of atEntry, an instance, i, of t is named by an OBJECT IDENTIFIER of
  436. the form n.y, where y is the name of the address translation
  437. equivalence about which i represents information.
  438. For example, suppose one wanted to find the physical address of an
  439. entry in the address translation table (ARP cache) associated with an
  440. IP address of 89.1.1.42 and interface 3. Accordingly,
  441. atPhysAddress.3.1.89.1.1.42 would identify the desired instance.
  442. 3.2.6.3.3. ipAddrTable Object Type Names
  443. The name of an IP-addressable network element, x, is the OBJECT
  444. IDENTIFIER of the form a.b.c.d such that a.b.c.d is the value (in the
  445. familiar "dot" notation) of that instance of the ipAdEntAddr object
  446. type associated with x.
  447. For each object type, t, for which the defined name, n, has a prefix
  448. of ipAddrEntry, an instance, i, of t is named by an OBJECT IDENTIFIER
  449. of the form n.y, where y is the name of the IP-addressable network
  450. element about which i represents information.
  451. For example, suppose one wanted to find the network mask of an entry
  452. in the IP interface table associated with an IP address of 89.1.1.42.
  453. Accordingly, ipAdEntNetMask.89.1.1.42 would identify the desired
  454. instance.
  455. 3.2.6.3.4. ipRoutingTable Object Type Names
  456. The name of an IP route, x, is the OBJECT IDENTIFIER of the form
  457. a.b.c.d such that a.b.c.d is the value (in the familiar "dot"
  458. notation) of that instance of the ipRouteDest object type associated
  459. with x.
  460. For each object type, t, for which the defined name, n, has a prefix
  461. of ipRoutingEntry, an instance, i, of t is named by an OBJECT
  462. IDENTIFIER of the form n.y, where y is the name of the IP route about
  463. which i represents information.
  464. For example, suppose one wanted to find the next hop of an entry in
  465. the IP routing table associated with the destination of 89.1.1.42.
  466. Accordingly, ipRouteNextHop.89.1.1.42 would identify the desired
  467. instance.
  468. 3.2.6.3.5. tcpConnTable Object Type Names
  469. The name of a TCP connection, x, is the OBJECT IDENTIFIER of the form
  470. a.b.c.d.e.f.g.h.i.j such that a.b.c.d is the value (in the familiar
  471. Case, Fedor, Schoffstall, & Davin [Page 13]
  472. RFC 1067 SNMP August 1988
  473. "dot" notation) of that instance of the tcpConnLocalAddress object
  474. type associated with x and such that f.g.h.i is the value (in the
  475. familiar "dot" notation) of that instance of the tcpConnRemoteAddress
  476. object type associated with x and such that e is the value of that
  477. instance of the tcpConnLocalPort object type associated with x and
  478. such that j is the value of that instance of the tcpConnRemotePort
  479. object type associated with x.
  480. For each object type, t, for which the defined name, n, has a prefix
  481. of tcpConnEntry, an instance, i, of t is named by an OBJECT
  482. IDENTIFIER of the form n.y, where y is the name of the TCP connection
  483. about which i represents information.
  484. For example, suppose one wanted to find the state of a TCP connection
  485. between the local address of 89.1.1.42 on TCP port 21 and the remote
  486. address of 10.0.0.51 on TCP port 2059. Accordingly,
  487. tcpConnState.89.1.1.42.21.10.0.0.51.2059 would identify the desired
  488. instance.
  489. 3.2.6.3.6. egpNeighTable Object Type Names
  490. The name of an EGP neighbor, x, is the OBJECT IDENTIFIER of the form
  491. a.b.c.d such that a.b.c.d is the value (in the familiar "dot"
  492. notation) of that instance of the egpNeighAddr object type associated
  493. with x.
  494. For each object type, t, for which the defined name, n, has a prefix
  495. of egpNeighEntry, an instance, i, of t is named by an OBJECT
  496. IDENTIFIER of the form n.y, where y is the name of the EGP neighbor
  497. about which i represents information.
  498. For example, suppose one wanted to find the neighbor state for the IP
  499. address of 89.1.1.42. Accordingly, egpNeighState.89.1.1.42 would
  500. identify the desired instance.
  501. Case, Fedor, Schoffstall, & Davin [Page 14]
  502. RFC 1067 SNMP August 1988
  503. 4. Protocol Specification
  504. The network management protocol is an application protocol by which
  505. the variables of an agent's MIB may be inspected or altered.
  506. Communication among protocol entities is accomplished by the exchange
  507. of messages, each of which is entirely and independently represented
  508. within a single UDP datagram using the basic encoding rules of ASN.1
  509. (as discussed in Section 3.2.2). A message consists of a version
  510. identifier, an SNMP community name, and a protocol data unit (PDU).
  511. A protocol entity receives messages at UDP port 161 on the host with
  512. which it is associated for all messages except for those which report
  513. traps (i.e., all messages except those which contain the Trap-PDU).
  514. Messages which report traps should be received on UDP port 162 for
  515. further processing. An implementation of this protocol need not
  516. accept messages whose length exceeds 484 octets. However, it is
  517. recommended that implementations support larger datagrams whenever
  518. feasible.
  519. It is mandatory that all implementations of the SNMP support the five
  520. PDUs: GetRequest-PDU, GetNextRequest-PDU, GetResponse-PDU,
  521. SetRequest-PDU, and Trap-PDU.
  522. RFC1067-SNMP DEFINITIONS ::= BEGIN
  523. IMPORTS
  524. ObjectName, ObjectSyntax, NetworkAddress, IpAddress, TimeTicks
  525. FROM RFC1065-SMI;
  526. -- top-level message
  527. Message ::=
  528. SEQUENCE {
  529. version -- version-1 for this RFC
  530. INTEGER {
  531. version-1(0)
  532. },
  533. community -- community name
  534. OCTET STRING,
  535. data -- e.g., PDUs if trivial
  536. ANY -- authentication is being used
  537. }
  538. Case, Fedor, Schoffstall, & Davin [Page 15]
  539. RFC 1067 SNMP August 1988
  540. -- protocol data units
  541. PDUs ::=
  542. CHOICE {
  543. get-request
  544. GetRequest-PDU,
  545. get-next-request
  546. GetNextRequest-PDU,
  547. get-response
  548. GetResponse-PDU,
  549. set-request
  550. SetRequest-PDU,
  551. trap
  552. Trap-PDU
  553. }
  554. -- the individual PDUs and commonly used
  555. -- data types will be defined later
  556. END
  557. 4.1. Elements of Procedure
  558. This section describes the actions of a protocol entity implementing
  559. the SNMP. Note, however, that it is not intended to constrain the
  560. internal architecture of any conformant implementation.
  561. In the text that follows, the term transport address is used. In the
  562. case of the UDP, a transport address consists of an IP address along
  563. with a UDP port. Other transport services may be used to support the
  564. SNMP. In these cases, the definition of a transport address should
  565. be made accordingly.
  566. The top-level actions of a protocol entity which generates a message
  567. are as follows:
  568. (1) It first constructs the appropriate PDU, e.g., the
  569. GetRequest-PDU, as an ASN.1 object.
  570. (2) It then passes this ASN.1 object along with a community
  571. name its source transport address and the destination
  572. transport address, to the service which implements the
  573. desired authentication scheme. This authentication
  574. Case, Fedor, Schoffstall, & Davin [Page 16]
  575. RFC 1067 SNMP August 1988
  576. service returns another ASN.1 object.
  577. (3) The protocol entity then constructs an ASN.1 Message
  578. object, using the community name and the resulting ASN.1
  579. object.
  580. (4) This new ASN.1 object is then serialized, using the basic
  581. encoding rules of ASN.1, and then sent using a transport
  582. service to the peer protocol entity.
  583. Similarly, the top-level actions of a protocol entity which receives
  584. a message are as follows:
  585. (1) It performs a rudimentary parse of the incoming datagram
  586. to build an ASN.1 object corresponding to an ASN.1
  587. Message object. If the parse fails, it discards the
  588. datagram and performs no further actions.
  589. (2) It then verifies the version number of the SNMP message.
  590. If there is a mismatch, it discards the datagram and
  591. performs no further actions.
  592. (3) The protocol entity then passes the community name and
  593. user data found in the ASN.1 Message object, along with
  594. the datagram's source and destination transport addresses
  595. to the service which implements the desired
  596. authentication scheme. This entity returns another ASN.1
  597. object, or signals an authentication failure. In the
  598. latter case, the protocol entity notes this failure,
  599. (possibly) generates a trap, and discards the datagram
  600. and performs no further actions.
  601. (4) The protocol entity then performs a rudimentary parse on
  602. the ASN.1 object returned from the authentication service
  603. to build an ASN.1 object corresponding to an ASN.1 PDUs
  604. object. If the parse fails, it discards the datagram and
  605. performs no further actions. Otherwise, using the named
  606. SNMP community, the appropriate profile is selected, and
  607. the PDU is processed accordingly. If, as a result of
  608. this processing, a message is returned then the source
  609. transport address that the response message is sent from
  610. shall be identical to the destination transport address
  611. that the original request message was sent to.
  612. Case, Fedor, Schoffstall, & Davin [Page 17]
  613. RFC 1067 SNMP August 1988
  614. 4.1.1. Common Constructs
  615. Before introducing the six PDU types of the protocol, it is
  616. appropriate to consider some of the ASN.1 constructs used frequently:
  617. -- request/response information
  618. RequestID ::=
  619. INTEGER
  620. ErrorStatus ::=
  621. INTEGER {
  622. noError(0),
  623. tooBig(1),
  624. noSuchName(2),
  625. badValue(3),
  626. readOnly(4)
  627. genErr(5)
  628. }
  629. ErrorIndex ::=
  630. INTEGER
  631. -- variable bindings
  632. VarBind ::=
  633. SEQUENCE {
  634. name
  635. ObjectName,
  636. value
  637. ObjectSyntax
  638. }
  639. VarBindList ::=
  640. SEQUENCE OF
  641. VarBind
  642. RequestIDs are used to distinguish among outstanding requests. By
  643. use of the RequestID, an SNMP application entity can correlate
  644. incoming responses with outstanding requests. In cases where an
  645. unreliable datagram service is being used, the RequestID also
  646. provides a simple means of identifying messages duplicated by the
  647. network.
  648. A non-zero instance of ErrorStatus is used to indicate that an
  649. Case, Fedor, Schoffstall, & Davin [Page 18]
  650. RFC 1067 SNMP August 1988
  651. exception occurred while processing a request. In these cases,
  652. ErrorIndex may provide additional information by indicating which
  653. variable in a list caused the exception.
  654. The term variable refers to an instance of a managed object. A
  655. variable binding, or VarBind, refers to the pairing of the name of a
  656. variable to the variable's value. A VarBindList is a simple list of
  657. variable names and corresponding values. Some PDUs are concerned
  658. only with the name of a variable and not its value (e.g., the
  659. GetRequest-PDU). In this case, the value portion of the binding is
  660. ignored by the protocol entity. However, the value portion must
  661. still have valid ASN.1 syntax and encoding. It is recommended that
  662. the ASN.1 value NULL be used for the value portion of such bindings.
  663. 4.1.2. The GetRequest-PDU
  664. The form of the GetRequest-PDU is:
  665. GetRequest-PDU ::=
  666. [0]
  667. IMPLICIT SEQUENCE {
  668. request-id
  669. RequestID,
  670. error-status -- always 0
  671. ErrorStatus,
  672. error-index -- always 0
  673. ErrorIndex,
  674. variable-bindings
  675. VarBindList
  676. }
  677. The GetRequest-PDU is generated by a protocol entity only at the
  678. request of its SNMP application entity.
  679. Upon receipt of the GetRequest-PDU, the receiving protocol entity
  680. responds according to any applicable rule in the list below:
  681. (1) If, for any object named in the variable-bindings field,
  682. the object's name does not exactly match the name of some
  683. object available for get operations in the relevant MIB
  684. view, then the receiving entity sends to the originator
  685. of the received message the GetResponse-PDU of identical
  686. form, except that the value of the error-status field is
  687. noSuchName, and the value of the error-index field is the
  688. index of said object name component in the received
  689. Case, Fedor, Schoffstall, & Davin [Page 19]
  690. RFC 1067 SNMP August 1988
  691. message.
  692. (2) If, for any object named in the variable-bindings field,
  693. the object is an aggregate type (as defined in the SMI),
  694. then the receiving entity sends to the originator of the
  695. received message the GetResponse-PDU of identical form,
  696. except that the value of the error-status field is
  697. noSuchName, and the value of the error-index field is the
  698. index of said object name component in the received
  699. message.
  700. (3) If the size of the GetResponse-PDU generated as described
  701. below would exceed a local limitation, then the receiving
  702. entity sends to the originator of the received message
  703. the GetResponse-PDU of identical form, except that the
  704. value of the error-status field is tooBig, and the value
  705. of the error-index field is zero.
  706. (4) If, for any object named in the variable-bindings field,
  707. the value of the object cannot be retrieved for reasons
  708. not covered by any of the foregoing rules, then the
  709. receiving entity sends to the originator of the received
  710. message the GetResponse-PDU of identical form, except
  711. that the value of the error-status field is genErr and
  712. the value of the error-index field is the index of said
  713. object name component in the received message.
  714. If none of the foregoing rules apply, then the receiving protocol
  715. entity sends to the originator of the received message the
  716. GetResponse-PDU such that, for each object named in the variable-
  717. bindings field of the received message, the corresponding component
  718. of the GetResponse-PDU represents the name and value of that
  719. variable. The value of the error- status field of the GetResponse-
  720. PDU is noError and the value of the error-index field is zero. The
  721. value of the request-id field of the GetResponse-PDU is that of the
  722. received message.
  723. 4.1.3. The GetNextRequest-PDU
  724. The form of the GetNextRequest-PDU is identical to that of the
  725. GetRequest-PDU except for the indication of the PDU type. In the
  726. ASN.1 language:
  727. GetNextRequest-PDU ::=
  728. [1]
  729. IMPLICIT SEQUENCE {
  730. request-id
  731. RequestID,
  732. Case, Fedor, Schoffstall, & Davin [Page 20]
  733. RFC 1067 SNMP August 1988
  734. error-status -- always 0
  735. ErrorStatus,
  736. error-index -- always 0
  737. ErrorIndex,
  738. variable-bindings
  739. VarBindList
  740. }
  741. The GetNextRequest-PDU is generated by a protocol entity only at the
  742. request of its SNMP application entity.
  743. Upon receipt of the GetNextRequest-PDU, the receiving protocol entity
  744. responds according to any applicable rule in the list below:
  745. (1) If, for any object name in the variable-bindings field,
  746. that name does not lexicographically precede the name of
  747. some object available for get operations in the relevant
  748. MIB view, then the receiving entity sends to the
  749. originator of the received message the GetResponse-PDU of
  750. identical form, except that the value of the error-status
  751. field is noSuchName, and the value of the error-index
  752. field is the index of said object name component in the
  753. received message.
  754. (2) If the size of the GetResponse-PDU generated as described
  755. below would exceed a local limitation, then the receiving
  756. entity sends to the originator of the received message
  757. the GetResponse-PDU of identical form, except that the
  758. value of the error-status field is tooBig, and the value
  759. of the error-index field is zero.
  760. (3) If, for any object named in the variable-bindings field,
  761. the value of the lexicographical successor to the named
  762. object cannot be retrieved for reasons not covered by any
  763. of the foregoing rules, then the receiving entity sends
  764. to the originator of the received message the
  765. GetResponse-PDU of identical form, except that the value
  766. of the error-status field is genErr and the value of the
  767. error-index field is the index of said object name
  768. component in the received message.
  769. If none of the foregoing rules apply, then the receiving protocol
  770. entity sends to the originator of the received message the
  771. GetResponse-PDU such that, for each name in the variable-bindings
  772. field of the received message, the corresponding component of the
  773. Case, Fedor, Schoffstall, & Davin [Page 21]
  774. RFC 1067 SNMP August 1988
  775. GetResponse-PDU represents the name and value of that object whose
  776. name is, in the lexicographical ordering of the names of all objects
  777. available for get operations in the relevant MIB view, together with
  778. the value of the name field of the given component, the immediate
  779. successor to that value. The value of the error-status field of the
  780. GetResponse-PDU is noError and the value of the errorindex field is
  781. zero. The value of the request-id field of the GetResponse-PDU is
  782. that of the received message.
  783. 4.1.3.1. Example of Table Traversal
  784. One important use of the GetNextRequest-PDU is the traversal of
  785. conceptual tables of information within the MIB. The semantics of
  786. this type of SNMP message, together with the protocol-specific
  787. mechanisms for identifying individual instances of object types in
  788. the MIB, affords access to related objects in the MIB as if they
  789. enjoyed a tabular organization.
  790. By the SNMP exchange sketched below, an SNMP application entity might
  791. extract the destination address and next hop gateway for each entry
  792. in the routing table of a particular network element. Suppose that
  793. this routing table has three entries:
  794. Destination NextHop Metric
  795. 10.0.0.99 89.1.1.42 5
  796. 9.1.2.3 99.0.0.3 3
  797. 10.0.0.51 89.1.1.42 5
  798. The management station sends to the SNMP agent a GetNextRequest-PDU
  799. containing the indicated OBJECT IDENTIFIER values as the requested
  800. variable names:
  801. GetNextRequest ( ipRouteDest, ipRouteNextHop, ipRouteMetric1 )
  802. The SNMP agent responds with a GetResponse-PDU:
  803. GetResponse (( ipRouteDest.9.1.2.3 = "9.1.2.3" ),
  804. ( ipRouteNextHop.9.1.2.3 = "99.0.0.3" ),
  805. ( ipRouteMetric1.9.1.2.3 = 3 ))
  806. The management station continues with:
  807. GetNextRequest ( ipRouteDest.9.1.2.3,
  808. ipRouteNextHop.9.1.2.3,
  809. Case, Fedor, Schoffstall, & Davin [Page 22]
  810. RFC 1067 SNMP August 1988
  811. ipRouteMetric1.9.1.2.3 )
  812. The SNMP agent responds:
  813. GetResponse (( ipRouteDest.10.0.0.51 = "10.0.0.51" ),
  814. ( ipRouteNextHop.10.0.0.51 = "89.1.1.42" ),
  815. ( ipRouteMetric1.10.0.0.51 = 5 ))
  816. The management station continues with:
  817. GetNextRequest ( ipRouteDest.10.0.0.51,
  818. ipRouteNextHop.10.0.0.51,
  819. ipRouteMetric1.10.0.0.51 )
  820. The SNMP agent responds:
  821. GetResponse (( ipRouteDest.10.0.0.99 = "10.0.0.99" ),
  822. ( ipRouteNextHop.10.0.0.99 = "89.1.1.42" ),
  823. ( ipRouteMetric1.10.0.0.99 = 5 ))
  824. The management station continues with:
  825. GetNextRequest ( ipRouteDest.10.0.0.99,
  826. ipRouteNextHop.10.0.0.99,
  827. ipRouteMetric1.10.0.0.99 )
  828. As there are no further entries in the table, the SNMP agent returns
  829. those objects that are next in the lexicographical ordering of the
  830. known object names. This response signals the end of the routing
  831. table to the management station.
  832. 4.1.4. The GetResponse-PDU
  833. The form of the GetResponse-PDU is identical to that of the
  834. GetRequest-PDU except for the indication of the PDU type. In the
  835. ASN.1 language:
  836. GetResponse-PDU ::=
  837. [2]
  838. IMPLICIT SEQUENCE {
  839. request-id
  840. RequestID,
  841. Case, Fedor, Schoffstall, & Davin [Page 23]
  842. RFC 1067 SNMP August 1988
  843. error-status
  844. ErrorStatus,
  845. error-index
  846. ErrorIndex,
  847. variable-bindings
  848. VarBindList
  849. }
  850. The GetResponse-PDU is generated by a protocol entity only upon
  851. receipt of the GetRequest-PDU, GetNextRequest-PDU, or SetRequest-PDU,
  852. as described elsewhere in this document.
  853. Upon receipt of the GetResponse-PDU, the receiving protocol entity
  854. presents its contents to its SNMP application entity.
  855. 4.1.5. The SetRequest-PDU
  856. The form of the SetRequest-PDU is identical to that of the
  857. GetRequest-PDU except for the indication of the PDU type. In the
  858. ASN.1 language:
  859. SetRequest-PDU ::=
  860. [3]
  861. IMPLICIT SEQUENCE {
  862. request-id
  863. RequestID,
  864. error-status -- always 0
  865. ErrorStatus,
  866. error-index -- always 0
  867. ErrorIndex,
  868. variable-bindings
  869. VarBindList
  870. }
  871. The SetRequest-PDU is generated by a protocol entity only at the
  872. request of its SNMP application entity.
  873. Upon receipt of the SetRequest-PDU, the receiving entity responds
  874. according to any applicable rule in the list below:
  875. (1) If, for any object named in the variable-bindings field,
  876. Case, Fedor, Schoffstall, & Davin [Page 24]
  877. RFC 1067 SNMP August 1988
  878. the object is not available for set operations in the
  879. relevant MIB view, then the receiving entity sends to the
  880. originator of the received message the GetResponse-PDU of
  881. identical form, except that the value of the error-status
  882. field is noSuchName, and the value of the error-index
  883. field is the index of said object name component in the
  884. received message.
  885. (2) If, for any object named in the variable-bindings field,
  886. the contents of the value field does not, according to
  887. the ASN.1 language, manifest a type, length, and value
  888. that is consistent with that required for the variable,
  889. then the receiving entity sends to the originator of the
  890. received message the GetResponse-PDU of identical form,
  891. except that the value of the error-status field is
  892. badValue, and the value of the error-index field is the
  893. index of said object name in the received message.
  894. (3) If the size of the Get Response type message generated as
  895. described below would exceed a local limitation, then the
  896. receiving entity sends to the originator of the received
  897. message the GetResponse-PDU of identical form, except
  898. that the value of the error-status field is tooBig, and
  899. the value of the error-index field is zero.
  900. (4) If, for any object named in the variable-bindings field,
  901. the value of the named object cannot be altered for
  902. reasons not covered by any of the foregoing rules, then
  903. the receiving entity sends to the originator of the
  904. received message the GetResponse-PDU of identical form,
  905. except that the value of the error-status field is genErr
  906. and the value of the error-index field is the index of
  907. said object name component in the received message.
  908. If none of the foregoing rules apply, then for each object named in
  909. the variable-bindings field of the received message, the
  910. corresponding value is assigned to the variable. Each variable
  911. assignment specified by the SetRequest-PDU should be effected as if
  912. simultaneously set with respect to all other assignments specified in
  913. the same message.
  914. The receiving entity then sends to the originator of the received
  915. message the GetResponse-PDU of identical form except that the value
  916. of the error-status field of the generated message is noError and the
  917. value of the error-index field is zero.
  918. Case, Fedor, Schoffstall, & Davin [Page 25]
  919. RFC 1067 SNMP August 1988
  920. 4.1.6. The Trap-PDU
  921. The form of the Trap-PDU is:
  922. Trap-PDU ::=
  923. [4]
  924. IMPLICIT SEQUENCE {
  925. enterprise -- type of object generating
  926. -- trap, see sysObjectID in [2]
  927. OBJECT IDENTIFIER,
  928. agent-addr -- address of object generating
  929. NetworkAddress, -- trap
  930. generic-trap -- generic trap type
  931. INTEGER {
  932. coldStart(0),
  933. warmStart(1),
  934. linkDown(2),
  935. linkUp(3),
  936. authenticationFailure(4),
  937. egpNeighborLoss(5),
  938. enterpriseSpecific(6)
  939. },
  940. specific-trap -- specific code, present even
  941. INTEGER, -- if generic-trap is not
  942. -- enterpriseSpecific
  943. time-stamp -- time elapsed between the last
  944. TimeTicks, -- (re)initialization of the network
  945. -- entity and the generation of the
  946. trap
  947. variable-bindings -- "interesting" information
  948. VarBindList
  949. }
  950. The Trap-PDU is generated by a protocol entity only at the request of
  951. the SNMP application entity. The means by which an SNMP application
  952. entity selects the destination addresses of the SNMP application
  953. entities is implementation-specific.
  954. Upon receipt of the Trap-PDU, the receiving protocol entity presents
  955. its contents to its SNMP application entity.
  956. Case, Fedor, Schoffstall, & Davin [Page 26]
  957. RFC 1067 SNMP August 1988
  958. The significance of the variable-bindings component of the Trap-PDU
  959. is implementation-specific.
  960. Interpretations of the value of the generic-trap field are:
  961. 4.1.6.1. The coldStart Trap
  962. A coldStart(0) trap signifies that the sending protocol entity is
  963. reinitializing itself such that the agent's configuration or the
  964. protocol entity implementation may be altered.
  965. 4.1.6.2. The warmStart Trap
  966. A warmStart(1) trap signifies that the sending protocol entity is
  967. reinitializing itself such that neither the agent configuration nor
  968. the protocol entity implementation is altered.
  969. 4.1.6.3. The linkDown Trap
  970. A linkDown(2) trap signifies that the sending protocol entity
  971. recognizes a failure in one of the communication links represented in
  972. the agent's configuration.
  973. The Trap-PDU of type linkDown contains as the first element of its
  974. variable-bindings, the name and value of the ifIndex instance for the
  975. affected interface.
  976. 4.1.6.4. The linkUp Trap
  977. A linkUp(3) trap signifies that the sending protocol entity
  978. recognizes that one of the communication links represented in the
  979. agent's configuration has come up.
  980. The Trap-PDU of type linkUp contains as the first element of its
  981. variable-bindings, the name and value of the ifIndex instance for the
  982. affected interface.
  983. 4.1.6.5. The authenticationFailure Trap
  984. An authenticationFailure(4) trap signifies that the sending protocol
  985. entity is the addressee of a protocol message that is not properly
  986. authenticated. While implementations of the SNMP must be capable of
  987. generating this trap, they must also be capable of suppressing the
  988. emission of such traps via an implementation-specific mechanism.
  989. 4.1.6.6. The egpNeighborLoss Trap
  990. An egpNeighborLoss(5) trap signifies that an EGP neighbor for whom
  991. Case, Fedor, Schoffstall, & Davin [Page 27]
  992. RFC 1067 SNMP August 1988
  993. the sending protocol entity was an EGP peer has been marked down and
  994. the peer relationship no longer obtains.
  995. The Trap-PDU of type egpNeighborLoss contains as the first element of
  996. its variable-bindings, the name and value of the egpNeighAddr
  997. instance for the affected neighbor.
  998. 4.1.6.7. The enterpriseSpecific Trap
  999. A enterpriseSpecific(6) trap signifies that the sending protocol
  1000. entity recognizes that some enterprise-specific event has occurred.
  1001. The specific-trap field identifies the particular trap which
  1002. occurred.
  1003. Case, Fedor, Schoffstall, & Davin [Page 28]
  1004. RFC 1067 SNMP August 1988
  1005. 5. Definitions
  1006. RFC1067-SNMP DEFINITIONS ::= BEGIN
  1007. IMPORTS
  1008. ObjectName, ObjectSyntax, NetworkAddress, IpAddress, TimeTicks
  1009. FROM RFC1065-SMI;
  1010. -- top-level message
  1011. Message ::=
  1012. SEQUENCE {
  1013. version -- version-1 for this RFC
  1014. INTEGER {
  1015. version-1(0)
  1016. },
  1017. community -- community name
  1018. OCTET STRING,
  1019. data -- e.g., PDUs if trivial
  1020. ANY -- authentication is being used
  1021. }
  1022. -- protocol data units
  1023. PDUs ::=
  1024. CHOICE {
  1025. get-request
  1026. GetRequest-PDU,
  1027. get-next-request
  1028. GetNextRequest-PDU,
  1029. get-response
  1030. GetResponse-PDU,
  1031. set-request
  1032. SetRequest-PDU,
  1033. trap
  1034. Trap-PDU
  1035. }
  1036. Case, Fedor, Schoffstall, & Davin [Page 29]
  1037. RFC 1067 SNMP August 1988
  1038. -- PDUs
  1039. GetRequest-PDU ::=
  1040. [0]
  1041. IMPLICIT PDU
  1042. GetNextRequest-PDU ::=
  1043. [1]
  1044. IMPLICIT PDU
  1045. GetResponse-PDU ::=
  1046. [2]
  1047. IMPLICIT PDU
  1048. SetRequest-PDU ::=
  1049. [3]
  1050. IMPLICIT PDU
  1051. PDU ::=
  1052. SEQUENCE {
  1053. request-id
  1054. INTEGER,
  1055. error-status -- sometimes ignored
  1056. INTEGER {
  1057. noError(0),
  1058. tooBig(1),
  1059. noSuchName(2),
  1060. badValue(3),
  1061. readOnly(4),
  1062. genErr(5)
  1063. },
  1064. error-index -- sometimes ignored
  1065. INTEGER,
  1066. variable-bindings -- values are sometimes ignored
  1067. VarBindList
  1068. }
  1069. Trap-PDU ::=
  1070. [4]
  1071. IMPLICIT SEQUENCE {
  1072. enterprise -- type of object generating
  1073. -- trap, see sysObjectID in [2]
  1074. OBJECT IDENTIFIER,
  1075. Case, Fedor, Schoffstall, & Davin [Page 30]
  1076. RFC 1067 SNMP August 1988
  1077. agent-addr -- address of object generating
  1078. NetworkAddress, -- trap
  1079. generic-trap -- generic trap type
  1080. INTEGER {
  1081. coldStart(0),
  1082. warmStart(1),
  1083. linkDown(2),
  1084. linkUp(3),
  1085. authenticationFailure(4),
  1086. egpNeighborLoss(5),
  1087. enterpriseSpecific(6)
  1088. },
  1089. specific-trap -- specific code, present even
  1090. INTEGER, -- if generic-trap is not
  1091. -- enterpriseSpecific
  1092. time-stamp -- time elapsed between the last
  1093. TimeTicks, -- (re)initialization of the
  1094. network
  1095. -- entity and the generation of the
  1096. trap
  1097. variable-bindings -- "interesting" information
  1098. VarBindList
  1099. }
  1100. -- variable bindings
  1101. VarBind ::=
  1102. SEQUENCE {
  1103. name
  1104. ObjectName,
  1105. value
  1106. ObjectSyntax
  1107. }
  1108. VarBindList ::=
  1109. SEQUENCE OF
  1110. VarBind
  1111. END
  1112. Case, Fedor, Schoffstall, & Davin [Page 31]
  1113. RFC 1067 SNMP August 1988
  1114. 6. Acknowledgements
  1115. This memo was influenced by the IETF SNMP Extensions working
  1116. group:
  1117. Karl Auerbach, Epilogue Technology
  1118. K. Ramesh Babu, Excelan
  1119. Amatzia Ben-Artzi, 3Com/Bridge
  1120. Lawrence Besaw, Hewlett-Packard
  1121. Jeffrey D. Case, University of Tennessee at Knoxville
  1122. Anthony Chung, Sytek
  1123. James Davidson, The Wollongong Group
  1124. James R. Davin, Proteon
  1125. Mark S. Fedor, NYSERNet
  1126. Phill Gross, The MITRE Corporation
  1127. Satish Joshi, ACC
  1128. Dan Lynch, Advanced Computing Environments
  1129. Keith McCloghrie, The Wollongong Group
  1130. Marshall T. Rose, The Wollongong Group (chair)
  1131. Greg Satz, cisco
  1132. Martin Lee Schoffstall, Rensselaer Polytechnic Institute
  1133. Wengyik Yeong, NYSERNet
  1134. Case, Fedor, Schoffstall, & Davin [Page 32]
  1135. RFC 1067 SNMP August 1988
  1136. 7. References
  1137. [1] Cerf, V., "IAB Recommendations for the Development of
  1138. Internet Network Management Standards", RFC 1052, IAB,
  1139. April 1988.
  1140. [2] Rose, M., and K. McCloghrie, "Structure and Identification
  1141. of Management Information for TCP/IP-based internets",
  1142. RFC 1065, TWG, August 1988.
  1143. [3] McCloghrie, K., and M. Rose, "Management Information Base
  1144. for Network Management of TCP/IP-based internets",
  1145. RFC 1066, TWG, August 1988.
  1146. [4] Case, J., M. Fedor, M. Schoffstall, and J. Davin,
  1147. "A Simple Network Management Protocol", Internet
  1148. Engineering Task Force working note, Network Information
  1149. Center, SRI International, Menlo Park, California,
  1150. March 1988.
  1151. [5] Davin, J., J. Case, M. Fedor, and M. Schoffstall,
  1152. "A Simple Gateway Monitoring Protocol", RFC 1028,
  1153. Proteon, University of Tennessee at Knoxville,
  1154. Cornell University, and Rensselaer Polytechnic
  1155. Institute, November 1987.
  1156. [6] Information processing systems - Open Systems
  1157. Interconnection, "Specification of Abstract Syntax
  1158. Notation One (ASN.1)", International Organization for
  1159. Standardization, International Standard 8824,
  1160. December 1987.
  1161. [7] Information processing systems - Open Systems
  1162. Interconnection, "Specification of Basic Encoding Rules
  1163. for Abstract Notation One (ASN.1)", International
  1164. Organization for Standardization, International Standard
  1165. 8825, December 1987.
  1166. [8] Postel, J., "User Datagram Protocol", RFC 768,
  1167. USC/Information Sciences Institute, November 1980.
  1168. Case, Fedor, Schoffstall, & Davin [Page 33]