From 4bfd864f10b68b71482b35c818559068ef8d5797 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Wed, 27 Nov 2024 20:54:24 +0100 Subject: doc: Add RFC documents --- doc/rfc/rfc1024.txt | 4142 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 4142 insertions(+) create mode 100644 doc/rfc/rfc1024.txt (limited to 'doc/rfc/rfc1024.txt') diff --git a/doc/rfc/rfc1024.txt b/doc/rfc/rfc1024.txt new file mode 100644 index 0000000..b7b7a4c --- /dev/null +++ b/doc/rfc/rfc1024.txt @@ -0,0 +1,4142 @@ + +Network Working Group C.Partridge +Request For Comment: 1024 BBN/NNSC + G. Trewitt + Stanford + October 1987 + + HEMS VARIABLE DEFINITIONS + +STATUS OF THIS MEMO + + This memo assigns instruction codes, defines object formats and + object semantics for use with the High-Level Monitoring and Control + Language, defined in RFC-1023. + + This memo is provisional and the definitions are subject to change. + Readers should confirm that they have the most recent version of the + memo. + + The authors assume a working knowledge of the ISO data encoding + standard, ASN.1, and a general understanding of the IP protocol + suite. + + Distribution of this memo is unlimited. + +INTRODUCTION + + In other memos [RFC-1021, RFC-1022] the authors have described a + general system for monitoring and controlling network entities; this + system is called the High-Level Entity Management System (HEMS). + This system permits applications to read and write values in remote + entities which support a simple query processor. + + In this memo we standardize the language instruction codes, the + objects which can be read or written, and the meanings of any + constants stored in the objects. There are three parts to this + standardization: (1) the assignment of an ASN.1 tag to each value, + (2) the definition of the external representation of the value (e.g., + INTEGER, OCTETSTRING, etc.), and (3) the definition of the meaning, + or semantics of a value (e.g., what types of packets a particular + packet counter actually tracks). + + This definition is provisional, and the authors hope that it will be + expanded and improved as the community becomes more experienced with + HEMS. Readers with suggestions for additional object definitions, or + improved definitions are encouraged to contact the authors. + + + + + + +Partridge & Trewitt [Page 1] + +RFC 1024 HEMS Definitions October 1987 + + +MESSAGE FORMATS + + All HEMS values are conveyed between applications and entities using + the High-Level Entity Management Protocol (HEMP) specified in RFC- + 1022. All values specified in this memo are passed in the data + sections of HEMP messages. For all message types, the data section + is a SEQUENCE of objects. For requests, these objects are operations + and their operands. Replies contain a sequence of objects retrieved + by a request. Events contain an initial event object followed by an + optional number of objects related to the event. + + Messages conforming to this memo should set the link field in the + HEMP CommonHeader to 1, to indicate version 1 of HEMS. The + resourceId field should be set to NULL. + + +CONTROL LANGUAGE INSTRUCTIONS + + The HEMS Monitoring and Control Language defines a suite of + operations which the query processor must be able to perform. These + operations and their operands are ASN.1 objects which are passed to + the query processor over a network connection. The operations and + operands are sent in postfix form (the operation follows the + operands). Operands are pushed onto a stack and are processed when + the operation is encountered. + + To ensure that operations are easily recognized in the input stream, + they are all encoded in a single application-specific type. This + type is shown below. + + Operation ::= [APPLICATION 1] IMPLICIT INTEGER { + reserved(0), get(1) begin(2), end(3), + get-match(4), get-attributes(5), + get-attributes-match(6), get-range(7), + set(8), set-match(9) + } + + When the query processor encounters an Operation object it consults + the value to determine which operation is to be done (e.g., GET). + +GENERAL COMMENTS ON OBJECTS STORED IN ENTITIES + + The High-Level Monitoring and Control Language requires the object + space to have a tree-shaped type space. Locating a particular object + requires identifying that section of the tree in which the object + resides. (A more detailed explanation of the scheme is given in + RFC-1023). + + + + +Partridge & Trewitt [Page 2] + +RFC 1024 HEMS Definitions October 1987 + + + This memo defines a universal type space. A subset of this type + space is expected to be an appropriate type space for any entity + (e.g., a gateway or a multi-user host). The type space is divided + into required and optional portions. Implementors should implement + the required portion of the type space plus that part of the optional + type space which is appropriate for their particular entity. + + One problem with defining a universal type space is that certain + interesting objects are not universal, but are instead very machine + specific (for example, status registers on specialized hardware). To + allow implementors to retrieve such implementation-specific objects + using the HEMS system, a special APPLICATION type is reserved for + non-standard values. + + Putting objects in ASN.1 form implies an ability to map to and from + ASN.1 format. One of the design goals of this system has been to + minimize the amount of ASN.1 compilation required by the query + processor to reduce the expense of processing queries at entities. + (This implies a certain willingness to force the applications + querying entities to be more powerful). We expect that most of the + complex mapping will be done when objects are read; most writable + objects have a simple format (e.g., an INTEGER, or OCTETSTRING). As + a result, we have made a heavy use of the ASN.1 SET type, which + allows values to be presented in any order. Applications which + require particular fields in an object may use the template structure + to specify particular fields to be retrieved, but this still permits + the query processor to return the fields in whatever order is + convenient. + + In addition to ease the problems of ASN.1 compilation, query + processors are not required to reduce an INTEGER to the minimum + number of octets as specified in ASN.1. Applications should be + prepared to receive INTEGERs which have leading octets with all zeros + or ones. + + More generally, a design goal of HEMS was to try to limit the data + processing done at the entity, and to place the burden of data + reduction on the querying application. As a result, the objects + presented here are typically counters, or values which the entity has + to compute already. Object definitions which require the entity to + do data reduction are not supported, although consideration might be + given to making them optionally available. + + Finally, HEMS is required to support access by multiple network + management centers or applications. This constraint has some + important consequences. First, the SET operation cannot be applied + to any Counter, since changing the value of a Counter may impair data + acquisition by other centers. More generally, there are questions + + + +Partridge & Trewitt [Page 3] + +RFC 1024 HEMS Definitions October 1987 + + + about competing or clashing SET requests from management centers. + Currently HEMS does not provide any facilities for protecting against + such requests. If such facilities become necessary, the authors + envision the enhancement of the object definitions to incorporate the + idea of "owned" objects. + + +READING THE OBJECT DEFINITIONS + + Most of the rest of this memo is devoted to ennumerating the objects + managed by the query processor. Many of these objects are + dictionaries, objects which reference other objects. Defining + dictionaries requires that we specify the class of objects they + reference. + + Most significant objects, such as packet counts, reside at the leaves + of the object data tree. They need to be carefully defined to ensure + that their meaning is consistent across all HEMS implementations. + These values are defined using the following format: + + + OBJECT: This is the name of the object. + + Type: This is the ASN.1 type of the object. + + Definition: The meaning of the data the object contains. + Implementations should ensure that their instance of + the object fulfills this definition since an important + feature of HEMS is that objects have consistent meaning + across all machines. It is better not to implement + an object than to abuse its definition. + + Notes: An optional section of the definition which is used + to discuss issues not covered in other sections of + this specification. + + Object Status: An optional section of the definition which + is used to indicate whether the object is required of all + HEMS implementations, encouraged of HEMS implementations + or simply considered useful. Currently, there are four + levels of status: + + Required: The object is felt to provide critical + information and must be included in a fully + conforming HEMS implementation. + + Required On Condition: The object is felt to + provide critical information about an optional + + + +Partridge & Trewitt [Page 4] + +RFC 1024 HEMS Definitions October 1987 + + + feature of an IP entity (for example, support of + the Transmission Control Protocol). The object + is required if the feature is implemented in the + entity. + + Encouraged: The object is felt to provide very + useful management information and implementors + are encouraged to implement it. + + Defined: The object may be useful and has been + defined so that all implementations of the object + are consistent. + + If the object status is not specified, the object should + be considered required. If the parent dictionary is optional, + then the object should be considered required if the parent + dictionary is supported. + + Operations on Object: The definition of how each monitoring + and control operation acts on the object. Many operations + have the same effect on almost all values, so some + default definitions are presented here. In the absence + of an operation specification, implementors should use + the default operations defined here. + + BEGIN: The default is for BEGIN to be defined for + dictionaries, and an error if performed on leaf + objects in the tree. + + CREATE: The default is that CREATE is undefined. + + DELETE: The default is that DELETE is undefined. + + END: END is a stack operation and is defined for all objects. + Note that END may fail if there is no object on the + stack. + + + GET-ATTRIBUTES: The default is that GET-ATTRIBUTES is + defined on the contents of all dictionaries specified + in this memo. The text description attributes + are optional for values defined in this memo, but + are required for implementation-specific objects. + Any descriptions of object listed in this memo should + cite this memo. GET-ATTRIBUTES must be supported on + all entity-specific values. GET-ATTRIBUTES + returns a Attributes object, which is defined in + the well-known types section below. + + + +Partridge & Trewitt [Page 5] + +RFC 1024 HEMS Definitions October 1987 + + + GET-ATTRIBUTES-MATCH: The default is that + GET-ATTRIBUTES-MATCH is optionally defined on any + object which supports GET-MATCH, and is an error + otherwise. The rules for attributes returned by + GET-ATTRIBUTES-MATCH are the same as those for + GET-ATTRIBUTES. + + GET: The default definition of GET is to emit the operand + specified is a leaf object, and if the operand is a + dictionary, to recursively GET the entire dictionary and + its subdictionaries. + + GET-MATCH: Unless otherwise specified, GET-MATCH is not + supported on an object. + + GET-RANGE: Unless otherwise specified, GET-RANGE is not + supported on an object. + + SET: Unless otherwise specified, SET is not supported on an + object. + + SET-MATCH: Unless otherwise specified, SET-MATCH is not + supported on an object. + + +ATTRIBUTES + + HEMS requires that remote applications be able to discover the + meaning of an object by querying the entity in which the object is + stored. This is done through use of the GET-ATTRIBUTES operator, + which causes an Attributes object to be returned to the application. + The Attributes object is described below. + + Attributes ::= [APPLICATION 2] IMPLICIT SEQUENCE { + tagASN1 [0] IMPLICIT INTEGER, + valueFormat [1] IMPLICIT INTEGER, + longDesc [2] IMPLICIT IA5String OPTIONAL, + shortDesc [3] IMPLICIT IA5String OPTIONAL, + unitsDesc [4] IMPLICIT IA5String OPTIONAL, + precision [5] IMPLICIT INTEGER OPTIONAL, + properties [6] IMPLICIT BITSTRING OPTIONAL, + } + + The meanings of the various attributes are given below. + + tagASN1: The ASN.1 tag for this object. + This attribute is required. + + + + +Partridge & Trewitt [Page 6] + +RFC 1024 HEMS Definitions October 1987 + + + valueFormat: The underlying ASN.1 type of the object + (e.g., SEQUENCE, or OCTETSTRING). This attribute + is required. + + longDesc: A potentially lengthy text description which + fully defines the object. This attribute is optional + for objects defined in this memo and required for + entity-specific objects. + + shortDesc: A short mnemonic string of less than 15 octets + which is suitable for labelling the value on a display. + This attribute is optional. + + unitsDesc: A short string used for integer values to + indicate the units in which the value is measured + (e.g. "ms", "sec", "packets", etc). This attribute + is optional. + + precision: For Counter objects, the value at which the + Counter will roll-over. Required for all Counter + objects. + + properties: A bitstring of boolean properties of the + object. If the bit is on, it has the given property. + This attribute is optional. The bits currently + defined are: + + 0 -- If true, the difference between two values + of this object is significant. For example, + the changes in a packet count is always + significant, it always conveys information. + In this case, the 0 bit would be set. On the + other hand, the difference between two readings + of a queue length may be meaningless. + + +IMPLEMENTATION SPECIFIC TYPES + + Each vendor or implementation specific value must be contained within + an VendorSpecific object. The format of the VendorSpecific object is + shown below. + + Type: VendorSpecific + + VendorSpecific ::= [APPLICATION 3] IMPLICIT SET of ANY + + + + + + +Partridge & Trewitt [Page 7] + +RFC 1024 HEMS Definitions October 1987 + + + For a detailed discussion of the need for this type, see RFC 1023. + +WELL-KNOWN TYPES + + There are some generally useful types which are defined across the + system and are considered well-known. These types support abstract + notions that are frequently used in other definitions. + + TYPE: Error + + Error ::= [APPLICATION 0] IMPLICIT SEQUENCE { + errorCode INTEGER, + errorOffset INTEGER + errorDescription IA5String, + } + + The Error type is returned within reply messages when an error is + countered. The errorCode is a number specifying a general class of + error. The errorOffset is the octet in the query where the error was + discovered. Note that the query starts at the first octet (octet 0) + of the HEMP data section. The errorDescription is a text message + explaining the error. Note that the definition of this section is + the same (except for the start of the offset) as that of the HEMP + protocol error structure and the error codes have been selected to + keep the code spaces distinct. This is intended to ease the + processing of error messages. The defined errorCodes are: + + 100 -- Any error not listed below. + + 101 -- System error. The query processor has failed + in some way. + + 102 -- Format error. An error has been detected in + the input stream. + + 103 -- Stack error. A stack overflow or underflow has + occurred. + + 104 -- Instruction error. The instruction is either + unknown, or not supported on the object to which + it has been applied. + + 105 -- Operand error. The wrong number of operands or + inappropriate operands have been given to an + instruction. + + + + + + +Partridge & Trewitt [Page 8] + +RFC 1024 HEMS Definitions October 1987 + + + TYPE: Counter + + Counter ::= [APPLICATION 4] IMPLICIT INTEGER + + The Counter type is an unsigned integer which is defined to roll-over + to 0 when incremented past a certain value. (The roll-over point may + be found by examining the attributes for the particular counter.) + Counter sizes should be chosen such that the counters will not roll + over more than once every 24 hours. + + TYPE: InstructionGroup + + InstructionGroup ::= [APPLICATION 5] IMPLICIT SEQUENCE + of ANY + + An InstructionGroup is an encapsulated sequence of operands and + operations. It allows applications to encode queries as objects. + + TYPE: Histogram + + Histogram ::= SET of HistEntry + + HistEntry ::= SEQUENCE { + histValue INTEGER, + histCount Counter + } + + A Histogram associates a count, histCount, with a numeric value, + histValue. No meaning is placed on the count or value by this + definition. Each HistEntry may represent a simple map (e.g., + histCount instances of histValue), or a more complex relationship + (e.g., a count of all values between this histValue and the next + lowest histValue in the Histogram). The meaning of the particular + Histogram is given in the object definition. + + TYPE: TrafficMatrix + + TrafficMatrix ::= SET of TrafficEntry + + TrafficEntry ::= SEQUENCE { + src IpAddress, + dst IpAddress, + count Counter + } + + A TrafficMatrix measures traffic observed between two IP addresses. + Typically it is used to count packets flowing through a gateway. + + + + +Partridge & Trewitt [Page 9] + +RFC 1024 HEMS Definitions October 1987 + + + TYPE: IpAddress + + IpAddress ::= OCTETSTRING + + The 4 octet IP address. If the length of the string is less than 4 + then the missing octets are wildcarded. A zero length string is a + default address (e.g., for indicating default routes). + + + TYPE: Fraction + + Fraction ::= INTEGER + + A Fraction is an integer representation of a fractional value. It + contains the numerator of a value as expressed over 256. (For + example dividing the Fraction by 256 gives the fractional value.) + + TYPE: BootClock + + BootClock ::= INTEGER + + The time in milliseconds since the machine was last booted or reset. + This value is always defined. + + TYPE: localClock + + LocalClock ::= INTEGER + + The local system clock, measured in milliseconds since 00:00 1 + January 1900 UTC. Assumed to be only a local estimate of the time. + The value 0 is reserved for an uninitialized clock (For example, an + uninitialized time-of-day chip.) + + + TYPE: NetClock + + NetClock ::= INTEGER + + A network synchronized clock, which is assumed to be synchronized + across some part of a network. The clock value is measured in + milliseconds since 00:00 1 January 1900 UTC. Specific information + about the synchronization protocol is found in the system variable + dictionary. The value 0 is used to indicate an uninitialized clock. + + TYPE: TimeStamp + + TimeStamp ::= CHOICE { + [0] BootClock + + + +Partridge & Trewitt [Page 10] + +RFC 1024 HEMS Definitions October 1987 + + + [1] localClock + [2] NetClock + } + + A TimeStamp, which was taken from the boot clock, system clock or the + synchronized clock. In general, a time of day is preferred to the + time since boot, and a synchronized clock is preferred to an + unsynchronized clock. It is more useful to know that an event + occurred at a particular time, than that it happened so many + milliseconds after the machine booted. + + +OBJECT DEFINITIONS + +The Root Dictionary + + In HEMS, all data is stored in dictionaries, where a dictionary is + thought to represent a conceptual grouping of values. The top-level + dictionary is the root dictionary. The form of the root dictionary + for is shown below. + + RootDictionary ::= [APPLICATION 32] IMPLICIT SET { + SystemVariables, + EventControls OPTIONAL, + Interfaces, + IpNetworkLayer, + IpRoutingTable, + IpTransportLayer, + IpApplications OPTIONAL + } + +The root dictionary is split into seven general dictionaries: + + - SystemVariables, which stores general system values such + as the system clock, machine memory and system up/down + status. + + - EventControls, which stores all objects necessary to + observe and control the event generating mechanism in + entities which support events. + + - interfaces, which contains all information on all + the network interfaces and IP to physical address + maps (ARP tables, X.25 Standard mappings, etc). + + - IpNetworkLayer, which contains information about the + workings of the IP layer. This includes information such + as routing tables, general packet counts, and host-traffic + + + +Partridge & Trewitt [Page 11] + +RFC 1024 HEMS Definitions October 1987 + + + matrices. + + - IpRoutingTable, which contains information on how the + machine routes packets. It proved more useful to segregate + routing information than to keep it stored with the network + layer data. + + - IpTransportLayer, which stores information on the transport + protocols that the entity supports. + + - IpApplications, which may store information about various + internet applications such as the domain system. This + section is not required of HEMS entities. + + The next several sections define the values stored in the five + dictionaries. + + +The SystemVariables Dictionary + + The SystemVariables dictionary stores objects which are not strictly + protocol, network, or application specific. Such objects include + values such as the machine load, clocks and the processor status. + The form of the dictionary is shown below. + + SystemVariables ::= [APPLICATION 33] IMPLICIT SET { + referenceClock [0] IMPLICIT TimeStamp, + netClockInfo [1] IMPLICIT SET OPTIONAL, + processorLoad [2] IMPLICIT INTEGER, + entityState [3] IMPLICIT INTEGER, + kernelMemory [4] IMPLICIT OCTETSTRING OPTIONAL, + pktBuffers [5] IMPLICIT INTEGER OPTIONAL, + pktOctets [6] IMPLICIT INTEGER OPTIONAL, + pktBuffersFree [7] IMPLICIT INTEGER OPTIONAL, + pktOctetsFree [8] IMPLICIT INTEGER OPTIONAL + systemID [9] IMPLICIT IA5STRING, + } + + OBJECT: SystemVariables + + Type: SET + + Definition: see above + + The objects in the dictionary are defined below. + + OBJECT: referenceClock + + + + +Partridge & Trewitt [Page 12] + +RFC 1024 HEMS Definitions October 1987 + + + Type: TimeStamp + + Definition: The system clock used for placing timestamps on + information. Use of a NetClock is encouraged. + + Operations on Object: Defaults. + + Notes: Cross-network clock adjustment is best handled by a proper + time synchronization protocol, not through the use of SET. + + + OBJECT: netClockInfo + + Type: SET + + Definition: Detailed information on the referenceClock if the + referenceClock is a NetClock. The format of this + information is shown below. + + netClockInfo ::= [1] IMPLICIT SET { + estError INTEGER, + refClockType INTEGER { + unspecified(0), primary-reference(1), + ntp-secondary-reference(2), secondary-reference(3), + wristwatch(4) + } + } + + The estError is the estimated error in milliseconds. The + refClockType is a value indicating the type of reference + clock consulted for network time (the values are taken + directly from the Network Time Protocol specification, + RFC-958). + + Object Status: Required if the referenceClock is a NetClock. + + + OBJECT: processorLoad + + Type: Fraction + + Definition: A value, expressed as a Fraction, which indicates + the current processing load on the entity. A value of + 256 (= 1.0) is defined to be running at capacity. It + is recognized that this is an imprecise definition since + capacity can be measured in several ways. For example, + a multiprocessor may still have plenty of capacity + even if one processor is running at capacity, + + + +Partridge & Trewitt [Page 13] + +RFC 1024 HEMS Definitions October 1987 + + + or it may be at capacity because that processor is the + master processor and handles all context switching. + The idea is for remote applications to be able to get some + sense of the current workload on the entity. Also note + that the time scale of the measurement should be small. + A load measure that averages over the past 10 seconds + is acceptable but a load measure that averages over the + past 10 minutes is not. Implementors should chose some + mapping between system load and this scale such that 256 + represents a machine under severe strain. (Note that this + suggests that values greater than 256 may be returned in + rare cases.) + + OBJECT: entityState + + Type: INTEGER + + Definition: An object which indicates the system state. There are + several defined object values. Some values are read-only and + can only be read from the object. Over values are write-only + and will never be read from the object. Over values are + write-only and will never be read from the object.The values + are: + + The read-only values are: + + (0) -- reserved. + + (1) -- running. The entity is up and running. + + (2) -- testing. The entity is running some sort of + diagnostics which may affect its network + operation. + + The write-only values are: + + (0) -- reserved. + + (1) -- reset the entity. + + (2) -- reboot the entity. This value is assumed to + cause a more aggressive recycling of the system + than reset, though this need not be the case. + + (3) -- halt the entity. This value stops the + entity. It assumed to prevent the entity from + operating until it is manually restarted. (I.e. + the halt takes the machine off the network). + + + +Partridge & Trewitt [Page 14] + +RFC 1024 HEMS Definitions October 1987 + + + Note: The ability to change an entity's state requires very strong + access controls. + + + Operations on Object: The defaults except as noted below. + + SET: Optionally writes the value into the object. + The message requesting the SET must be authenticated. + + SET-MATCH: Optionally writes the value into the object + if the current value is matched. + + OBJECT: kernelMemory + + Type: OCTETSTRING + + Definition: A sequence of octets which represents the image of the + kernel software running on the entity. This facility is + provided to allow remote network debugging. + + By kernel software, we mean that software which controls the + operations and access to the hardware. In particular, the kernel + is expected to contain all network software up through the IP + layer. + + Implementations which use lightweight processes or segmented + images should consider providing some way to map their internal + representation into a single contiguous stream of octets. + + Note: Access control is required to read this object. + + Object Status: Useful. + + Operations on Object: The defaults except as noted below. + + GET-RANGE: Emits the section of memory specified. + + GET: Emits all of memory, but note that a GET on the system + dictionary should *not* emit this object. + + OBJECT: pktBuffers + + Type: INTEGER + + Definition: The total number of packet buffers in the entity. + + Object Status: Required if the entity has a maximum number of + buffers. Note that most entities do have a limit (even if it + + + +Partridge & Trewitt [Page 15] + +RFC 1024 HEMS Definitions October 1987 + + + is for practical purposes, near infinite) and should return + that limit. + + OBJECT: pktOctets + + Type: INTEGER + + Definition: The maximum number of octets that can be buffered in the + entity at any one time. + + Object Status: Required if the entity has a maximum number of octets + it can buffer. Note that most entities do have a limit and + should return that limit. + + + OBJECT: pktBuffersFree + + Type: INTEGER + + Definition: The number of packet buffers currently available. + Subtracting pktBuffersFree from pktBuffers should give the + number of buffers in use. + + Object Status: Required if there is a limit on the number of + buffers. + + + OBJECT: pktOctetsFree + + Type: INTEGER + + Definition: The number of octets currently available including those + not used in allocated buffers. Subtracting this value from + pktOctets should give the number of octets in use. + + This object can be used to track how well the entity buffers its + data. + + Object Status: Required if there is a limit on the number of + octets that can be buffered. + + + OBJECT: systemID + + Type: IA5STRING + + Definition: The text identification of the entity. This value + should include the full name of the vendor, the type of system, + + + +Partridge & Trewitt [Page 16] + +RFC 1024 HEMS Definitions October 1987 + + + and the version number of the hardware and software running on + the entity. + + +The EventControls Dictionary + + The EventControls dictionary contains objects to control and + monitor the delivery of event messages to operations centers. + The format of this dictionary is shown below. + + + EventControls ::= [APPLICATION 34] IMPLICIT SET OPTIONAL { + lastEvent [0] IMPLICIT OCTETSTRING OPTIONAL, + eventMessageID [1] IMPLICIT Counter, + eventCenters [2] IMPLICIT SET of IpAddress, + eventList [3] IMPLICIT SET of eventEntry, + } + + + OBJECT: eventControls + + Type: SET + + Definition: See above. + + Object Status: This object will be required in entities which + support events, after the event definitions have been + properly specified. See discussion of the event formats + at the end of this memo. + + A description of the fields in this dictionary are given below. + + + OBJECT: lastEvent + + Type: OCTETSTRING + + Definition: The last event message sent. + + Object Status: Implementation of this object is encouraged if the + transport protocol used for events is unreliable (e.g., UDP). + + + OBJECT: eventMessageID + + + Type: Counter + + + + +Partridge & Trewitt [Page 17] + +RFC 1024 HEMS Definitions October 1987 + + + Definition: The HEMP MessageId to be used in the next event + message. Equals the number of events sent. + + OBJECT: eventCenters + + Type: SET of IpAddress + + Definition: The list of IP addresses to which events are sent. + This list receives all events. For more selective event + monitoring, centers should list themselves under the + particular events of interest. + + Note: If the SET operator is defined then use of some form of + access control is recommended. + + Operations on Object: The defaults except as listed below. + + CREATE: Adds an address to the list. The new address may + not be a broadcast address (it may be a multicast + address). + + DELETE: Deletes an address from the list. + + SET-MATCH: Defined on the IP address. Replaces the + address with a new value. + + EMIT-MATCH: Defined on the IP address. + + + OBJECT: eventList + + Type: SET of eventEntry + + Definition: An array of entries which contain objects which allow + management centers to control how and when events are sent. + (The contents of the eventEntry structure are explained below.) + +The eventControls Dictionary: eventList/eventEntry + + The eventEntry provides the necessary control objects to manage how + a particular event is sent. The format of the eventEntry is shown + below. + + eventEntry ::= [0] IMPLICIT SET { + eventID [0] IMPLICIT INTEGER, + eventMode [1] IMPLICIT INTEGER, + eventCount [2] IMPLICIT Counter, + threshold [3] IMPLICIT Counter, + + + +Partridge & Trewitt [Page 18] + +RFC 1024 HEMS Definitions October 1987 + + + thresholdIncr [4] IMPLICIT INTEGER, + eventExecution [5] IMPLICIT InstructionGroup OPTIONAL, + eventCenters [6] IMPLICIT SET of IpAddress + } + + OBJECT: eventEntry + + Type: SET + + Definition: See Above. + + + OBJECT: eventID + + Type: INTEGER + + Definition: The particular event ID. + + + OBJECT: eventMode + + Type: INTEGER + + Definition: A control object which determines how and whether this + event is sent. The three modes are: + + 0 -- unused. + + 1 -- off. The event is not sent. + + 2 -- on. The event is sent every time it occurs. + + 3 -- threshold. The event is sent every time the + event count reaches the threshold. + + + OBJECT: eventCount + + Type: Counter + + Definition: The number of times this event has occurred. + + + OBJECT: threshold + + Type: Counter + + + + + +Partridge & Trewitt [Page 19] + +RFC 1024 HEMS Definitions October 1987 + + + Definition: The event threshold. If the eventMode is "threshold" + then a event is sent every time the eventCount equals this + value. + + Operations on Object: The defaults except as noted below. + + SET: Changes the threshold. + + OBJECT: thresholdIncr + + Type: INTEGER + + Definition: The threshold increment. Every time a event threshold + is reached, the threshold value is incremented by this value + (modulo the precision of the Counter) to find the new + threshold. + + Operations on Object: The defaults except as noted below. + + SET: Changes the increment. + + + OBJECT: eventExecution + + Type: InstructionGroup + + Definition: A query to be executed whenever the event is actually + sent. Any data retrieved by this query is appended to the + event message. + + Object Status: Encouraged. + + Operations on Object: The defaults except as noted below. + + SET: Changes the buffer. + + + OBJECT: eventCenters + + Type: SET + + Definition: The IP addresses of the monitoring centers which wish + to listen to this particular event. Note that events should be + sent to both these centers and the global list of event centers. + + Operations on Object: The defaults except as noted below. + + CREATE: Adds an address to the list of centers. + + + +Partridge & Trewitt [Page 20] + +RFC 1024 HEMS Definitions October 1987 + + + DELETE: Deletes an address from the list. + + SET-MATCH: Defined on the IP address. Replaces the + entry with a new value. + + EMIT-MATCH: Defined on the IP address. + + +The Interfaces Dictionary + + The Interfaces dictionary a list of per-interface objects. Since + one of the fundamental goals of HEMS is to use generic interfaces + across differing hardwares, all hardware interfaces are described by + the same data structure, the InterfaceData. + + Interfaces ::= [APPLICATION 35] IMPLICIT SET OF InterfaceData + + OBJECT: Interfaces + + Type: SET + + Definition: see above. + + +The Interfaces Dictionary: The InterfaceData structure. + + The InterfaceData structure contains all information on a particular + interface. The form of the structure is shown below. + + InterfaceData ::= [0] IMPLICIT SET { + addresses [0] IMPLICIT SET of IpAddress, + mtu [1] IMPLICIT INTEGER, + netMask [2] IMPLICIT IpAddress, + pktsIn [3] IMPLICIT Counter, + pktsOut [4] IMPLICIT Counter, + inputPktsDropped [5] IMPLICIT Counter, + outputPktsDropped [6] IMPLICIT Counter, + bcastPktsIn [7] IMPLICIT Counter OPTIONAL, + bcastPktsOut [8] IMPLICIT Counter OPTIONAL, + mcastPktsIn [9] IMPLICIT Counter OPTIONAL, + mcastPktsOut [10] IMPLICIT Counter OPTIONAL, + inputErrors [11] IMPLICIT Counter, + outputErrors [12] IMPLICIT Counter, + outputQLen [13] IMPLICIT INTEGER, + name [14] IMPLICIT IA5String, + status [15] IMPLICIT INTEGER, + ifType [16] IMPLICIT INTEGER, + mediaErrors [17] IMPLICIT Counter OPTIONAL, + + + +Partridge & Trewitt [Page 21] + +RFC 1024 HEMS Definitions October 1987 + + + upTime [18] IMPLICIT TimeStamp, + broadcast [19] IMPLICIT BITSTRING + multicast [20] IMPLICIT SET of BITSTRING, + addressList [21] IMPLICIT SET OPTIONAL, + } + + OBJECT: InterfaceData + + Type: SET + + Definition: see above. + + Operations on Object: The defaults except as noted below. + + SET-MATCH: This operation is optionally defined on the + address field of the structure. Only certain fields + in this structure may be changed. The fields which + may be SET are indicated in the descriptions below. + + GET-MATCH: Defined to emit information on the interface + which matches the address given. + + The fields in the structure are defined below. + + + OBJECT: addresses + + Type: SET of IpAddress + + Definition: The IP addresses that the interface accepts. Note that + additional information on multicast addresses may be found in + the IgmpValues dictionary. + + + OBJECT: mtu + + Type: INTEGER + + Definition: The maximum transmission unit of the device. + + + OBJECT: netMask + + Type: IpAddress + + Definition: The subnet mask, which is an address with all the + network bits set to 1 and all the hosts bits set to 0. Used to + identify subnets. + + + +Partridge & Trewitt [Page 22] + +RFC 1024 HEMS Definitions October 1987 + + + OBJECT: pktsIn + + Type: Counter + + Definition: The total number of packets received on this interface + including those in error. + + + OBJECT: pktsOut + + Type: Counter + + Definition: The total number of packets that higher levels have + attempted to send, including those that were not sent. + + + OBJECT: inputPktsDropped + + Type: Counter + + Definition: The number of good inbound packets dropped (presumably + to free up buffer space). + + OBJECT: outputPktsDropped + + Type: Counter + + Definition: The number of good outbound packets dropped (presumably + to free up buffer space). + + OBJECT: bcastPktsIn + + Type: Counter + + Definition: The number of broadcast packets received including + those in error. + + Object Status: Encouraged on interfaces that support broadcast. + + + OBJECT: bcastPktsOut + + Type: Counter + + Definition: The number of broadcast packets that higher levels + attempted to send, including those that were not sent. + + Object Status: Encouraged on interfaces that support broadcast. + + + +Partridge & Trewitt [Page 23] + +RFC 1024 HEMS Definitions October 1987 + + + OBJECT: mcastPktsIn + + Type: Counter + + Definition: The number of multicast packets received including + those in error. + + Object Status: Encouraged on interfaces that support multicast. + + + + OBJECT: mcastPktsOut + + Type: Counter + + Definition: The number of multicast packets sent, including those + that were not sent. + + Object Status: Encouraged on interfaces that support multicast. + + + OBJECT: inputErrors + + Type: Counter + + Definition: The number of inbound packets that could not be + delivered. The number of inbound packets delivered + should equal inputPkts less this value and inputPktsDropped. + + OBJECT: outputErrors + + Type: Counter + + Definition: The number of outbound packets that could not be + transmitted because of errors. The number of outbound + packets placed on the network should equal outputPkts + less this value and outputPktsDropped. + + OBJECT: outputQLen + + Type: INTEGER + + Definition: The length of the output packet queue (in packets). + + + OBJECT: name + + Type: IA5String + + + +Partridge & Trewitt [Page 24] + +RFC 1024 HEMS Definitions October 1987 + + + Definition: A text string completely identifying the interface. + This string should include the name of the manufacturer, the + product name and the version of the hardware. + + OBJECT: status + + Type: INTEGER + + Definition: The status of the object. The status values are: + + 0 -- reserved + 1 -- testing (the interface is in some test mode) + 2 -- down (the interface is down) + 3 -- up (the interface is up ready to pass packets) + + Note: If set operations are defined, access control is required. + + Operations on Object: The defaults except as noted below. + + SET: Optionally defined to change the state of the interface. + + OBJECT: ifType + + Type: INTEGER + + Definition: A flag which indicates the type of interface in use. The + currently defined types are: + + 0 -- reserved + 1 -- 1822 HDH + 2 -- 1822 + 3 -- FDDI + 4 -- DDN X.25 + 5 -- RFC-877 X.25 + 6 -- StarLan + 7 -- Proteon 10Mbit + 8 -- Proteon 80Mbit + 9 -- Ethernet + 10 -- 802.3 Ethernet + 11 -- 802.4 Token Bus + 12 -- 802.5 Token Ring + 13 -- Point-to-Point Serial + + OBJECT: mediaErrors + + Type: Counter + + + + + +Partridge & Trewitt [Page 25] + +RFC 1024 HEMS Definitions October 1987 + + + Definition: A counter of media errors, such as collisions on + Ethernets, token regeneration on token passing rings, or lost + RFNMs on PSNs. + + Object Status: Encouraged for interfaces to media which have such + errors. + + + OBJECT: upTime + + Type: TimeStamp + + Definition: When the interface was put in its current state. + + + OBJECT: broadcast + + Type: BITSTRING + + Definition: Whether this interface has a physical broadcast + address. + + Object Status: Required if the interface has a broadcast adddress. + + + OBJECT: multicast + + Type: SET of BITSTRING + + Definition: The set of hardware multicast addresses currently + enabled on the device. + + Object Status: Encouraged in interfaces which support multicast. + + + + OBJECT: addressList + + Definition: SET of addressMap + + addressMap ::= [0] IMPLICIT SET { + ipAddr [0] IMPLICIT IpAddress + physAddr [1] IMPLICIT BITSTRING + } + + Definition: Most interfaces maintain tables mapping physical + network address to IP address. An example is an ARP table. + This table stores that map as a series of entries which map + + + +Partridge & Trewitt [Page 26] + +RFC 1024 HEMS Definitions October 1987 + + + IP addresses to the physical address. + + Object Status: Required if the interface has to map IP addresses to + physical addresses. + +The IpNetworkLayer Dictionary + + The IpNetworkLayer dictionary contains all information about the IP + Layer. The format of the dictionary is shown below. + + IpNetworkLayer ::= [APPLICATION 36] IMPLICIT SET { + gateway [0] IMPLICIT BOOLEAN, + inputPkts [1] IMPLICIT Counter, + inputErrors [2] IMPLICIT Counter, + inputPktsDropped [3] IMPLICIT Counter, + inputQLen [4] IMPLICIT INTEGER OPTIONAL, + outputPkts [5] IMPLICIT Counter, + outputErrors [6] IMPLICIT Counter, + outputPktsDropped [7] IMPLICIT Counter, + outputQLen [8] IMPLICIT INTEGER OPTIONAL, + ipID [9] IMPLICIT Counter, + fragCreated [10] IMPLICIT Counter OPTIONAL, + fragRcvd [11] IMPLICIT Counter OPTIONAL, + fragDropped [12] IMPLICIT Counter OPTIONAL, + pktsReassembled [13] IMPLICIT Counter OPTIONAL, + pktsFragmented [14] IMPLICIT Counter OPTIONAL, + htm [15] IMPLICIT TrafficMatrix OPTIONAL, + itm [16] IMPLICIT TrafficMatrix OPTIONAL + } + + OBJECT: IpNetworkLayer + + Type: SET + + Definition: See above. + + + The fields of the dictionary are defined below. + + + OBJECT: gateway + + Type: BOOLEAN + + Definition: A boolean value which is true if the entity gateways + packets. + + + + + +Partridge & Trewitt [Page 27] + +RFC 1024 HEMS Definitions October 1987 + + + OBJECT: inputPkts + + Type: Counter + + Definition: The total number of input packets received including + those in error. + + + OBJECT: inputErrors + + Type: Counter + + Definition: The number of input packets discarded due to errors + (unknown protocols, format errors, etc). + + + OBJECT: inputPktsDropped + + Type: Counter + + Definition: The number of input packets dropped for lack of buffer + space. + + + OBJECT: inputQLen + + Type: INTEGER + + Definition: The number of inbound packets currently waiting to be + processed by the IP layer. + + Object Status: Encouraged. + + + OBJECT: outputPkts + + Type: Counter + + Definition: The total number of outbound packets including both + those packets presented to the IP layer by higher layers and + packets which are gatewayed. + + + OBJECT: outputErrors + + Type: Counter + + Definition: The number of output packets discarded because of + + + +Partridge & Trewitt [Page 28] + +RFC 1024 HEMS Definitions October 1987 + + + errors (unable to route, format errors, etc). + + + OBJECT: outputPktsDropped + + Type: Counter + + Definition: The number of output packets dropped for lack of + buffer space. + + + OBJECT: outputQLen + + Type: INTEGER + + Definition: The number of outbound packets waiting to be processed + by the IP layer. + + Object Status: Encouraged. + + + OBJECT: ipID + + Type: Counter + + Definition: The next IP packet ID identifier to be used. Note + that in some implementations the transport layer may set the + IP identifier, in which case this value is used if the IP + identifier has not been set by the transport layer. + + OBJECT: fragCreated + + Type: Counter + + Definition: The number of IP fragments created at this entity. + (e.g., if an IP is split into three fragments at this entity, + then this counter is incremented by three). + + Object Status: Encouraged. + + + OBJECT: fragRcvd + + Type: Counter + + Definition: The number of IP fragments received at this entity. + + Object Status: Encouraged. + + + +Partridge & Trewitt [Page 29] + +RFC 1024 HEMS Definitions October 1987 + + + OBJECT: fragDropped + + Type: Counter + + Definition: The number of IP fragments discarded at this entity + for whatever reason (timed out, errors, etc). + + Object Status: Encouraged. + + + OBJECT: pktsReassembled + + Type: Counter + + Definition: The number of IP datagrams that have been reassembled + at this entity. + + Object Status: Encouraged + + + OBJECT: pktsFragmented + + Type: Counter + + Definition: The number of IP datagrams that have been fragmented + at this entity. + + Object Status: Encouraged. + + + OBJECT: htm + + Type: TrafficMatrix + + Definition: A host traffic matrix, mapping all traffic switched any + pair of sources and destinations. The count in each trafficEntry + routeDst is expressed in packets. Source routed IP packets + should be logged as being between their source and the + destination (i.e., they should not be treated as destined for + this entity). + + Notes: This information may be considered sensitive. + + Object Status: Encouraged in gateways. + + + + OBJECT: itm + + + +Partridge & Trewitt [Page 30] + +RFC 1024 HEMS Definitions October 1987 + + + Type: TrafficMatrix + + Definition: An interface traffic matrix showing traffic switched + between interfaces in an entity. The source and destinations + fields are the IP addresses of the interfaces between which + the packet was switched. The count in each trafficEntry is + expressed in packets. + + Object Status: Useful. + + +The IpRoutingTable Dictionary + + The IpRoutingTable dictionary contains all routing information. + Note that information about any routing protocols used to maintain + the routing table is found under the entry for the routing protocol. + The format of the routing dictionary is shown below. + + IpRoutingTable ::= [APPLICATION 37] IMPLICIT SET { + routingProtocols [0] IMPLICIT OCTETSTRING, + coreRouter [1] IMPLICIT BOOLEAN, + autoSys [2] IMPLICIT INTEGER, + metricUsed [3] IMPLICIT OCTET, + [4] RoutingEntries, + } + + OBJECT: IpRoutingTable + + Type: SET + + Definition: See above. + + + The objects contained in the dictionary are described below. + + OBJECT: routingProtocols + + Type: OCTETSTRING + + Definition: A sparse list of the routing protocols used to update + the routing table (e.g., EGP and ICMP). Each octet contains one + of the following values: + + 0 -- anything not specified below. + + 1 -- local (non-protocol) information. (E.g. + routing tables can be changed by hand). + + + + +Partridge & Trewitt [Page 31] + +RFC 1024 HEMS Definitions October 1987 + + + 2 -- HEMS (was changed/set by a HEMS operation) + + 3 -- Internet Control Message Protocols, (i.e. + ICMP redirects). + + 4 -- Exterior Gateway Protocol (EGP). + + 5 -- Gateway-to-Gateway Protocol (GGP). + + 6 -- Dissimilar Gateway Protocol (DGP). + + 7 -- HELO + + 8 -- RIP + + 9 -- Proprietary IGP + + OBJECT: coreRouter + + Type: BOOLEAN + + Definition: This value is set to true if this entity is a reference + router for any other router (i.e., if it distributes any of its + routes to other machines). + + + OBJECT: autoSys + + Type: INTEGER + + Definition: The autonomous system number of the autonomous system in + which this entity resides. + + + OBJECT: metricUsed + + Type: OCTET + + Definition: Classifies the routing metric used in the routing table + entries. The value should be chosen from the list of values for + routingProtocols above, and indicates the metric definition used + (e.g., this entity uses an EGP metric internally). + + + OBJECT: RoutingEntries + + Type: SET of RoutingEntry + + + + +Partridge & Trewitt [Page 32] + +RFC 1024 HEMS Definitions October 1987 + + + Definition: The set of all routing entries. The RoutingEntry is + defined below. + + +The IpRoutingTable Dictionary: The RoutingEntry + + The RoutingEntry contains all information on a particular route. + The format of the structure is shown below. + + RoutingEntry ::= [0] IMPLICIT SET { + routeMetric [0] IMPLICIT INTEGER, + routeDst [1] IMPLICIT IpAddress, + nextHop [2] IMPLICIT IpAddress, + routeAuthor [3] IMPLICIT IpAddress OPTIONAL, + routeproto [4] IMPLICIT Octet OPTIONAL, + routeTime [5] TimeStamp, + routeTOS [6] IMPLICIT INTEGER OPTIONAL, + valid [7] IMPLICIT BOOLEAN + } + + OBJECT: RoutingEntry + + Type: SET + + Definition: See above. + + Operations on Object: Defaults except as specified below. + + CREATE: Adds a new routing entry. It should be confirmed + that the entry is new. + + DELETE: Deletes a routing entry. + + GET-MATCH: The match operator is defined on the routeDst + field. A match on an IpAddress is defined to be a + search to find the route or routes which would be + used to reach the IpAddress. More than one route + may be applicable, in which case all possible routes + should be returned. + + SET-MATCH: Is optionally defined on the object. A SET + on an entire RoutingEntry replaces the entire entry + with a new value. Certain fields (indicated below) + can also be changed using a SET-MATCH. + + The match operator is defined on the routeDst and + routeTOS fields. To SET a value, the match must be + exact on the IP address (this is different from the + + + +Partridge & Trewitt [Page 33] + +RFC 1024 HEMS Definitions October 1987 + + + search definition for GET-MATCH). + + Note that support of the operator on an entity + which uses a dynamic routing protocol such as + GGP or EGP will require close coordination with + the routing protocol to ensure consistent data. + (Arguably, this facility should not be supported + on such machines). + + The definitions of the fields in the RoutingEntry are given below. + + + OBJECT: routeMetric + + Type: INTEGER + + Definition: The routing metric on this route. Note that the type of + metric is defined in the metricUsed field of the IpRoutingTable + dictionary. + + OBJECT: routeDst + + Type: IpAddress + + Definition: The final destination that can be reached via this + route. + + + OBJECT: nextHop + + Type: IpAddress + + Definition: The next hop to the final destination. + + + OBJECT: routeAuthor + + Type: IpAddress + + Definition: The IP address of the entity from which this route was + *first* received. That is, the first entity which stated that + was reached via nextHop. The default IpAddress should be used + to indicate routes which originated on the entity. + + Object Status: Encouraged. + + + OBJECT: routeProto + + + +Partridge & Trewitt [Page 34] + +RFC 1024 HEMS Definitions October 1987 + + + Type: Octet + + Definition: The routing protocol from which this route was learned. + The value is taken from the list of values for routingProtocols + above. + + Object Status: Encouraged. + + + OBJECT: routeTime + + Type: TimeStamp + + Definition: When this route was first received. + + Object Status: Encouraged. + + + OBJECT: routeTOS + + Type: INTEGER + + Definition: The IP Type of Service which this routing entry serves. + + Object Status: Required if type of service routing is supported. + + + OBJECT: valid + + Type: BOOLEAN + + Definition: Whether the route is active. (Some machines retain + routes which are no longer valid for various reasons.) + +The IpTransportLayer Dictionary + + The IpTransportLayer Dictionary contains any information which + pertains to transport protocols which use the IP protocol as the + network protocol. For ease of reference, the ASN.1 tag of each + transport protocol's dictionary is the same as the assigned IP + Protocol number. The definition of the IpTransportLayer + dictionary is shown below. Note that dictionaries for many + protocols are not yet defined. + + IpTransportLayer ::= [APPLICATION 38] IMPLICIT SET { + [0] IMPLICIT ProtocolsSupported, + [1] IMPLICIT IcmpValues, + [2] IMPLICIT IgmpValues OPTIONAL, + + + +Partridge & Trewitt [Page 35] + +RFC 1024 HEMS Definitions October 1987 + + + [3] IMPLICIT GgpValues OPTIONAL, + [7] IMPLICIT TcpValues OPTIONAL, + [8] IMPLICIT EgpValues OPTIONAL, + [17] IMPLICIT UdpValues OPTIONAL, + [20] IMPLICIT HmpValues OPTIONAL, + [27] IMPLICIT RdpValues OPTIONAL, + [30] IMPLICIT NetbltValues OPTIONAL, + } + + OBJECT: IpTransportLayer + + Type: SET + + Definition: see above. + + The objects in the dictionary are defined below. + +The IpTransportLayer Dictionary: ProtocolsSupported + + OBJECT: protocolsSupported + + Type: OCTETSTRING + + Definition: Sparse list of transport protocols supported. Each + octet in the OCTETSTRING contains the IP protocol number of a + supported protocol. For the purposes of this definition, an + entity supports a protocol if it both contains software to + makes it possible for the protocol to be used in + communications with the entity, AND the entity keeps the + required values (if any) defined in this memo for that protocol. + + +The IpTransportLayer Dictionary: IcmpValues + + The IcmpValues dictionary is a subdictionary of the IpTransportLayer + dictionary which tracks the workings of the Internet Control Message + Protocol, defined in RFC-792. The form of the dictionary is shown + below. + IcmpValues ::= SET { + inputPktCount [0] IMPLICIT Counter, + inputPktErrors [1] IMPLICIT Counter, + inputPktDeliver [2] IMPLICIT Counter, + inputPktTypes [3] IMPLICIT Histogram OPTIONAL, + outputPktCount [4] IMPLICIT Counter, + outputPktErrors [5] IMPLICIT Counter, + outputPktTypes [6] IMPLICIT Histogram OPTIONAL, + icmpTraffic [7] IMPLICIT TrafficMatrix OPTIONAL, + ipID [8] IMPLICIT Counter OPTIONAL + + + +Partridge & Trewitt [Page 36] + +RFC 1024 HEMS Definitions October 1987 + + + } + + OBJECT: IcmpValues + + Type: SET + + Definition: see above. + + The objects in the dictionary are defined below. + + + OBJECT: inputPktCount + + Type: Counter + + Definition: The total number of ICMP packets received (including + those in error). + + + + OBJECT: inputPktErrors + + Type: Counter + + Definition: The number of ICMP packets received which proved to + have errors (bad checksums, bad length etc). Subtracting this + value from the inputPktCount field should give the number of + valid ICMP packets received. + + + OBJECT: inputPktDeliver + + Type: Counter + + Definition: The number of valid ICMP packets which were + successfully processed (e.g., delivered to the higher + protocol). + + + OBJECT: inputPktTypes + + Type: Histogram + + Definition: A histogram of ICMP messages types and codes received, + not including those messages that proved to contain errors. + The histogram histValue field contains a 16-bit value which is + the the (ICMP type * 256) + ICMP code, and the histCount field + contains the number of valid messages containing this + + + +Partridge & Trewitt [Page 37] + +RFC 1024 HEMS Definitions October 1987 + + + type/code pair which have been received. + + The message type and code values are those defined in RFC-792 + (e.g., the Time Exceeded Message with a code of "fragment + reassembly time exceeded" is (11 * 256) + 1 = 2817). + + Object Status: Useful. + + Operations on Object: The defaults except as listed below: + + GET-MATCH: Match is defined on the value of the histValue + field. + + OBJECT: outputPktCount + + Type: Counter + + Definition: The total number of ICMP packets that the entity + attempted to send (including those that failed due to lack of + buffers, a missing route or other transient transmission + problems). + + + OBJECT: outputPktErrors + + Type: Counter + + Definition: The number of ICMP packets which the entity could not + send due to transmission problems such as the lack of buffers, a + missing route or other transient transmission problems. This + value is not required to include errors which the ICMP layer + could not reasonably be expected to detect such as damage to the + packet in transit. Subtracting this value from the PktCount + field should give the number of ICMP packets the entity believes + it successfully sent. + + + + OBJECT: outputPktTypes + + Type: Histogram + + Definition: A histogram of ICMP messages types and codes sent, + including those messages that later failed to be transmitted. + The histogram histValue field contains a 16-bit value which is + the the (ICMP type * 256) + ICMP code, and the histCount field + contains the number of valid messages containing this type/code + pair which have been sent. + + + +Partridge & Trewitt [Page 38] + +RFC 1024 HEMS Definitions October 1987 + + + The message type and code values are those defined in RFC-792 + (e.g., the Time Exceeded Message with a code of "fragment + reassembly time exceeded" is (11 * 256) + 1 = 2817). + + + Object Status: Useful. + + Operations on Object: The defaults except as listed below: + + GET-MATCH: Match is defined on the value of the histValue + field. + + OBJECT: icmpTraffic + + Type: TrafficMatrix + + Definition: All ICMP traffic which has originated on this machine. + The source address in the traffic matrix should be the interface + from which the packet was sent. The destination is the address + to which the packet is to finally be delivered (not an + intermediate hop). + + Object Status: Useful. + + + OBJECT: ipID + + Type: Counter + + Definition: The next IP packet ID identifier to be used by the ICMP + code. + + Object Status: Required if the ICMP code generates its own IP + identifiers. + + + +The IpTransportLayer Dictionary: IgmpValues + + IgmpValues ::= SET { + conformance [0] IMPLICIT INTEGER, + inputPktCount [1] IMPLICIT Counter, + inputPktErrors [2] IMPLICIT Counter, + inputPktTypes [3] IMPLICIT Histogram OPTIONAL, + outputPktCount [4] IMPLICIT Counter, + outputPktErrors [5] IMPLICIT Counter, + outputPktTypes [6] IMPLICIT Histogram OPTIONAL, + igmpTraffic [7] IMPLICIT TrafficMatrix OPTIONAL + + + +Partridge & Trewitt [Page 39] + +RFC 1024 HEMS Definitions October 1987 + + + igmpGroups [8] IMPLICIT SET of IgmpGroupEntry, + ipID [9] IMPLICIT Counter OPTIONAL, + } + + OBJECT: IgmpValues + + Type: SET + + Definition: The dictionary of information on the Internet Group + Management Protocol (RFC-988). + + Object Status: Required in hosts which support IGMP. + + The objects stored in this dictionary are defined below. + + + OBJECT: conformance + + Type: INTEGER + + Definition: The level of conformance with RFC-988. The conformance + levels are: + + 0 -- Level 0. No support for IP multicasting + + 1 -- Level 1. Support for sending but not receiving + multicast datagrams. + + 2 -- Level 2. Full support for IP multicasting. + + These values are taken directly from RFC-988. + + + OBJECT: inputPktCount + + Type: Counter + + Definition: The number of IGMP packets received including those + that proved to be in error. + + OBJECT: inputPktErrors + + Type: Counter + + Definition: The number of IGMP packets received which proved to + be in error. This value subtracted from inputPktCount should + give the number of valid IGMP packets received. + + + + +Partridge & Trewitt [Page 40] + +RFC 1024 HEMS Definitions October 1987 + + + OBJECT: inputPktTypes + + Type: Histogram + + Definition: A histogram of IGMP messages types and codes sent, + including those messages that later failed to be transmitted. + The histogram histValue field contains a 16-bit value which + is the the (IGMP type * 256) + IGMP code, and the histCount + field contains the number of valid messages containing this + type/code pair which have been sent. + + The type and code values are taken from RFC-988. + + + OBJECT: outputPktCount + + Type: Counter + + Definition: The total number of IGMP packets that the entity + attempted to send (including those that failed due to lack + of buffers, a missing route or other transient transmission + problems). + + OBJECT: outputPktErrors + + Type: Counter + + Definition: The number of IGMP packets which the entity could not + send due to transmission problems such as the lack of buffers, + a missing route or other transient transmission problems. + This value is not required to include errors which the IGMP + layer could not reasonably be expected to detect such as damage + to the packet in transit. Subtracting this value from the + outputPktCount field should give the number of IGMP packets + the entity believes it successfully sent. + + OBJECT: outputPktTypes + + Type: Histogram + + Definition: A histogram of IGMP messages types and codes sent, + including those messages that later failed to be transmitted. + The histogram histValue field contains a 16-bit value which is + the the (IGMP type * 256) + IGMP code, and the histCount field + contains the number of valid messages containing this type/code + pair which have been sent. + + The type and code values are taken from RFC-988. + + + +Partridge & Trewitt [Page 41] + +RFC 1024 HEMS Definitions October 1987 + + + OBJECT: igmpTraffic + + Type: TrafficMatrix + + Definition: All IGMP traffic which has originated on this machine. + The source address in the traffic matrix should be the interface + from which the packet was sent. The destination is the address + to which the packet is to finally be delivered (not an + intermediate hop). + + Object Status: Useful. + + + + OBJECT: igmpGroups + + Type: SET + + Definition: The various igmpGroups of which this host is aware. + This is stored as a set of IgmpGroupEntry. The format of an + IgmpGroupEntry is shown below. + + IgmpGroupEntry ::= [0] SET { + groupAddress [0] IMPLICIT IpAddress, + groupAccessKey [1] IMPLICIT OCTETSTRING, + groupAgent [2] IMPLICIT BOOLEAN, + } + + The groupAddress is the multicast IP address. The + groupAccessKey is the 8 octet key -- this key may be + confidential and should only be available to authorized querying + entities. The groupAgent field is true if this entity is an + agent for the multicast group. + + OBJECT: ipID + + Type: Counter + + Definition: The next IP packet ID identifier to be used by the IGMP + code. + + Object Status: Required if the IGMP code generates its own IP + identifiers. + + + + + + + + +Partridge & Trewitt [Page 42] + +RFC 1024 HEMS Definitions October 1987 + + +The IpTransportLayer Dictionary: GgpValues + + The definition of the GgpValues dictionary is left for further + study. + +The IpTransportLayer Dictionary: TcpValues + + The TcpValues dictionary is a subdictionary of the IpTransportLayer + dictionary which tracks the workings of the Transmission Control + Protocol, defined in RFC-793. The definitions of several objects in + this dictionary refer to definitions in RFC-793. The form of the + dictionary is shown below. + + + TcpValues ::= SET { + [0] IMPLICIT TcpParam + [1] IMPLICIT TcpStats OPTIONAL, + tcpConnData [2] IMPLICIT SET of TcpConn, + } + + OBJECT: TcpValues + + Type: IMPLICIT SET + + Definition: see above. + + Object Status: Required if the entity supports TCP. + + The objects in the dictionary are defined in the next few sections. + + +The IpTransportLayer Dictionary: TcpValues/TcpParam + + The TcpParam dictionary contains information about certain + parameters such as round-trip timer estimation constants which are + managed on a per-machine basis. The form of the dictionary is shown + below. + + TcpParam ::= SET { + tcpRtoA [0] IMPLICIT IA5String, + tcpRtoParam [1] IMPLICIT SET of RtoParam, + ipID [2] IMPLICIT Counter, + tcpRtoMin [3] IMPLICIT INTEGER OPTIONAL, + tcpRtoMax [4] IMPLICIT INTEGER OPTIONAL, + tcpMaxSegSiz [5] IMPLICIT INTEGER, + tcpMaxConn [6] IMPLICIT INTEGER OPTIONAL, + tcpMaxWindow [7] IMPLICIT INTEGER OPTIONAL, + } + + + +Partridge & Trewitt [Page 43] + +RFC 1024 HEMS Definitions October 1987 + + + OBJECT: tcpParam + + Type: SET + + Definition: see above. + + + The definition of the objects in the tcpParam dictionary are given + below. + + OBJECT: tcpRtoA + + Type: IA5String + + Definition: The TCP retransmission timeout algorithm used. The + algorithm is expressed as one or more equations to generate + a target value, "RTO[N]", which is the retransmission timeout + for packet "N". Expressions should use well understood + symbols such as * for multiplication and / for division, and + parentheses to indicate precedence. Variables should begin + with an upper case character. Multiple equations should be + separated by semi-colons. Comments should be in braces (i.e., + {}). Constants should begin with a lower case character. In + addition to "RTO[N]" the symbol "S[N]" is defined to mean the + round-trip sample for packet N. Using this syntax, the + algorithm in RFC-793 would be expressed as: + + RTO[N] = SRTT[N] * beta ; + SRTT[N] = ( S[N-1] * alpha) + (SRTT[N-1] * (1 - alpha)) + + Note: The syntax probably needs to be refined so that it can be + parsed and interpreted by a program. This is left for future + study. + + + OBJECT: tcpRtoParam + + Type: SET of RtoParam + + Definition: The list of the values of the constants used by the + retransmission timeout algorithm. The format of the RtoParam + structure is shown below. + + RtoParam ::= SEQUENCE { + name IA5String, + value Fraction + } + + + + +Partridge & Trewitt [Page 44] + +RFC 1024 HEMS Definitions October 1987 + + + The name is the name of the constant as expressed in the + tcpRtoA (e.g., "beta"). + + OBJECT: ipID + + Type: Counter + + Definition: The next IP packet ID identifier to be used by the TCP + code. + + Object Status: Required if the TCP code generates its own IP + identifiers. + + OBJECT: tcpRtoMin + + Type: INTEGER + + Definition: The minimum value the TCP implementation permits for + the retransmission timeout (RTO), measured in milliseconds. + + Note: If the SET operation is optionally defined, access control + must be exercised. + + Object Status: Required if the implementation uses the suggested + algorithm in RFC-793 or if the implementation sets any limits + on the minimum RTO. + + Operations on Object: The defaults except as listed below: + + SET: Optionally defined to change the value. Implementations + should confirm that the new value is less than tcpRtoMax. + + + OBJECT: tcpRtoMax + + Type: INTEGER + + Definition: The maximum value the TCP implementation permits for + the retransmission timeout (RTO), measured in milliseconds. + + Note: If the SET operation is optionally defined, access control + must be exercised. + + Object Status: Required if the implementation uses the suggested + algorithm in RFC-793 or if the implementation sets any limits + on the maximum RTO. + + Operations on Object: The defaults except as listed below: + + + +Partridge & Trewitt [Page 45] + +RFC 1024 HEMS Definitions October 1987 + + + SET: Optionally defined to change the value. Implementations + should confirm that the new value is greater than tcpRtoMax, + and that the value is large (i.e., several seconds). + + + OBJECT: tcpMaxSegSiz + + Type: INTEGER + + Definition: The maximum segment size used by this implementation. + + Object Status: Required if the entity sets an upper limit on the + MTU. (Some implementations have no constraints, but chose an + MTU from external constraints such as the maximum MTU of the + network interface in use.) + + + OBJECT: tcpMaxConn + + Type: INTEGER + + Definition: An optional value, which must be present if the entity + has a limit on the total number of TCP connections it can support. + + Object Status: Required if the entity sets limits. + + Note: If the SET operation is defined, access control must be + exercised. + + Operations on Object: The defaults except as listed below: + + SET: Optionally defined to change the value. If the + new value is less than the number of currently + open connections, implementations are *not* required + to close existing connections, but may not open + any additional ones. + + + OBJECT: tcpMaxWindow + + Type: INTEGER + + Definition: An optional value, which must be present if the entity + places a fixed upper limit on the size of any connection's TCP + window (i.e., if the maximum window size is not per connection + configurable). + + Object Status: Required if the entity sets limits. + + + +Partridge & Trewitt [Page 46] + +RFC 1024 HEMS Definitions October 1987 + + + Note: If the SET operation is defined, access control must be + exercised. + + Operations on Object: The defaults except as listed below: + + SET: Optionally defined to change the value. The new + value must be at least the size of one maximum + TCP segment. + +The IpTransportLayer Dictionary: TcpValues/TcpStats + + The TcpStats dictionary stores general information about the + workings of the TCP layer. The form of the dictionary is shown + below. + + TcpStats ::= SET { + connAttempts [0] IMPLICIT Counter OPTIONAL, + connOpened [1] IMPLICIT Counter OPTIONAL, + connAccepted [2] IMPLICIT Counter OPTIONAL, + connClosed [3] IMPLICIT Counter OPTIONAL, + connAborted [4] IMPLICIT Counter OPTIONAL, + connAbortedInfo [5] IMPLICIT Histogram OPTIONAL, + octetsIn [6] IMPLICIT Counter OPTIONAL, + octetsOut [7] IMPLICIT Counter OPTIONAL, + octetsInDup [8] IMPLICIT Counter OPTIONAL, + octetsRetrans [9] IMPLICIT Counter OPTIONAL, + inputPkts [10] IMPLICIT Counter OPTIONAL, + retransPkts [11] IMPLICIT Counter OPTIONAL, + outputPkts [12] IMPLICIT Counter OPTIONAL, + dupPkts [13] IMPLICIT Counter OPTIONAL, + + } + + OBJECT: TcpStats + + Type: SET + + Definition: See above. + + Object Status: Encouraged. + + The definition of the fields in the dictionary are given below. + + + OBJECT: connAttempts + + Type: Counter + + + + +Partridge & Trewitt [Page 47] + +RFC 1024 HEMS Definitions October 1987 + + + Definition: The number of connection attempts that have been made + from this host. This includes pending attempts. + + Object Status: Encouraged. + + + OBJECT: connOpened + + Type: Counter + + Definition: The number of connection attempts from this host which + successfully generated an open connection. This includes + currently open connections. + + Object Status: Encouraged. + + + OBJECT: connAccepted + + Type: Counter + + Definition: The number of connections accepted by listening peers + on this entity. This includes currently open connections. + + Object Status: Encouraged. + + + OBJECT: connClosed + + Type: Counter + + Definition: The number of connections which were properly closed. + + Object Status: Encouraged. + + + OBJECT: connAborted + + Type: Counter + + Definition: The number of connections which were aborted. Note + that if implementations trace how the connection was aborted, + they are encouraged to use the connAbortedInfo histogram. + + Object Status: Encouraged. + + + OBJECT: connAbortedInfo + + + +Partridge & Trewitt [Page 48] + +RFC 1024 HEMS Definitions October 1987 + + + Type: Histogram + + Definition: The number of connections which were aborted by type of + abort. The histValue is one of the codes listed below. The + histCount is the number of connections aborted for this reason. + The histValues codes are: + + 0 -- an abort condition not specified below + 1 -- remote abort + 2 -- local application abort + 3 -- local protocol level abort + + Object Status: Useful + + + OBJECT: octetsIn + + Type: Counter + + Definition: The total number of TCP octets (not including + duplicates) received at this entity. + + Object Status: Required if TcpStats is implemented. + + + OBJECT: octetsOut + + Type: Counter + + Definition: The total number of TCP octets (not including + retransmissions) sent from this entity. + + Object Status: Required if TcpStats is implemented. + + + OBJECT: octetsInDup + + Type: Counter + + Definition: The total number of TCP octets received which were + duplicates. + + Object Status: Required if TcpStats is implemented. + + + OBJECT: octetsReTrans + + Type: Counter + + + +Partridge & Trewitt [Page 49] + +RFC 1024 HEMS Definitions October 1987 + + + Definition: The total number of TCP octets which have been + retransmitted. + + Object Status: Required if TcpStats is implemented. + + + OBJECT: inputPkts + + Type: Counter + + Definition: The total number of valid packets received, including + those on current connections. + + Object Status: Useful. + + + OBJECT: retransPkts + + Type: Counter + + Definition: The total number of packets retransmitted. + + Object Status: Useful. + + + OBJECT: outputPkts + + Type: Counter + + Definition: The total number of packets sent. + + Object Status: Useful. + + + OBJECT: dupPkts + + Type: Counter + + Definition: The number of packets received which contained only + data already received. + + Object Status: Useful. + + + + + + + + + +Partridge & Trewitt [Page 50] + +RFC 1024 HEMS Definitions October 1987 + + +The IpTransportLayer Dictionary: TcpValues/TcpConn + + The tcpConnData field in the TcpValues dictionary is a set of + TcpConn, where each TcpConn contains information on a particular TCP + connection. The definition of TcpConn is shown below. + + TcpConn ::= SET { + localPort [0] IMPLICIT INTEGER, + localAddress [1] IMPLICIT IpAddress, + foreignPort [2] IMPLICIT INTEGER, + foreignAddress [3] IMPLICIT IpAddress, + state [4] IMPLICIT INTEGER, + snduna [5] IMPLICIT INTEGER, + sndnxt [6] IMPLICIT INTEGER, + sndwnd [7] IMPLICIT INTEGER, + congwnd [8] IMPLICIT INTEGER, + rcvnxt [9] IMPLICIT INTEGER, + rcvwnd [10] IMPLICIT INTEGER, + srtt [11] IMPLICIT INTEGER OPTIONAL, + lastrtt [12] IMPLICIT INTEGER OPTIONAL, + maxSegSize [13] IMPLICIT INTEGER, + octetsSent [14] IMPLICIT Counter OPTIONAL, + octetsRXmit [15] IMPLICIT Counter OPTIONAL, + octetsRcvd [16] IMPLICIT Counter OPTIONAL, + octetDups [17] IMPLICIT Counter OPTIONAL, + octetPastWin [18] IMPLICIT Counter OPTIONAL, + segSizes [19] IMPLICIT Histogram OPTIONAL, + } + + The set of TCP connections can be searched in a number of ways based + on the local and foreign addresses (including the port number). + Individual values of a connection cannot be retrieved without a + search. + + OBJECT: TcpConn + + Type: SET + + Definition: The per TCP connection data. + + Operations on Object: The defaults except as listed below: + + GET-MATCH: Defined on any combination of values of + localAddress, localPort, foreignAddress and + foreignPort. Returns all connections which match + the template. (For example, GET-MATCH on a + particular foreignAddress returns all connections + to that address.) + + + +Partridge & Trewitt [Page 51] + +RFC 1024 HEMS Definitions October 1987 + + + The definitions of the fields of the tcpConn structure are given + below. + + OBJECT: localPort + + Type: INTEGER + + Definition: The local port number of this connection. + + Operations on Object: Defaults. Note that MATCH operators may be + applied to this object to locate information on a particular TCP + connection. + + + OBJECT: localAddress + + Type: IpAddress + + Definition: The local IP address of this connection. May be the + default IP address defined above. This value may not be valid + in certain states. + + Operations on Object: Defaults. Note that MATCH operators may be + applied to this object to locate information on a particular + TCP connection. + + OBJECT: foreignPort + + Type: INTEGER + + Definition: The foreign port number of this connection. This value + may be meaningless if the local peer is in certain states (e.g., + LISTEN). + + Operations on Object: Defaults. Note that MATCH operators may be + applied to this object to locate information on a particular TCP + connection. + + + OBJECT: foreignAddress + + Type: IpAddress + + Definition: The foreign IP address of this connection. This value + may be meaningless if the local peer is in certain states (e.g., + LISTEN). + + Operations on Object: Defaults. Note that MATCH operators may be + + + +Partridge & Trewitt [Page 52] + +RFC 1024 HEMS Definitions October 1987 + + + applied to this object to locate information on a particular + TCP connection. + + OBJECT: state + + Type: INTEGER + + Definition: The current state of the local peer. The values + corresponding to the different states are: close(0), listen(1), + syn-sent(2), syn-received(3), established(4), close-wait(5), + fin-wait-1(6), closing(7), last-ack(8), fin-wait-2(9), + time-wait(10). Implementations must map internal + representations of the state into these values. + + + OBJECT: snduna + + Type: INTEGER + + Definition: The SND.UNA value as defined in RFC-793. + + + OBJECT: sndnxt + + Type: INTEGER + + Definition: The SND.NXT value as defined in RFC-793. + + + OBJECT: sndwnd + + Type: INTEGER + + Definition: The SND.WND value as defined in RFC-793. + + + OBJECT: congwnd + + Type: INTEGER + + Definition: The congestion window. This value is less than or + equal to sndwnd. If less than sndwnd, then congestion + control is in effect and congwnd is the reduced send window + size in use. + + OBJECT: rcvnxt + + Type: INTEGER + + + +Partridge & Trewitt [Page 53] + +RFC 1024 HEMS Definitions October 1987 + + + Definition: The RCV.NXT value as defined in RFC-793. + + + OBJECT: rcvwnd + + Type: INTEGER + + Definition: The RCV.WND value as defined in RFC-793. + + + OBJECT: srtt + + Type: INTEGER + + Definition: The smoothed round-trip time in milliseconds. + + Object Status: Required if the implementation maintains a smoothed + round-trip time. + + + OBJECT: lastrtt + + Type: INTEGER + + Definition: The last round-trip time sample taken in milliseconds. + + Object Status: Encouraged. + + + OBJECT: maxSegSize + + Type: INTEGER + + Definition: The maximum segment size that can be used on this + connection. + + + OBJECT: octetsSent + + Type: Counter + + Definition: The total number of octets transmitted since the + connection was opened, not including retransmissions. Can + alternatively be thought of as the current length of the + stream. + + Object Status: Encouraged. + + + + +Partridge & Trewitt [Page 54] + +RFC 1024 HEMS Definitions October 1987 + + + OBJECT: octetsRXmit + + Type: Counter + + Definition: The total number of octets retransmitted since the + connection was opened. This plus octetsSent should give the + total number of octets sent. + + Object Status: Encouraged. + + + OBJECT: octetsRcvd + + Type: Counter + + Definition: The number of octets received since the connection was + opened, not including duplicates received. The receiver's + version of octetsSent. + + Object Status: Encouraged. + + + OBJECT: octetDups + + Type: Counter + + Definition: The total number of octets received since the + connection was opened which were redundant (i.e., they had been + previously received). + + Object Status: Encouraged. + + + OBJECT: octetPastWin + + Type: Counter + + Definition: The number of segments which contained data beyond + the upper edge of the receive window. + + Object Status: Encouraged + + + OBJECT: segSizes + + Type: Histogram + + Definition: A histogram of the sizes of the packets sent on the + + + +Partridge & Trewitt [Page 55] + +RFC 1024 HEMS Definitions October 1987 + + + connection (useful for catching cases of silly-window syndrome). + This histogram is an range histogram, measuring the number of + segments whose size fell into a give range. The histogram + histValue field contains a segment size, and the histCount + field contains the number of segments between this size and + the next largest size. + + Object Status: Useful. + +The IpTransportLayer Dictionary: EgpValues + + The EgpValues dictionary stores information about the workings of + the Exterior Gateway Protocol, defined in RFC-904. The format of + the dictionary is shown below. + + EgpValues ::= SET { + egpState [0] IMPLICIT INTEGER, + [1] IMPLICIT EgpParam, + [2] IMPLICIT EgpStats OPTIONAL, + egpPeerData [3] IMPLICIT SET of EgpPeer + } + + + OBJECT: EgpValues + + Type: SET + + Definition: See above. + + Object Status: Required in entities which support EGP. + + The definitions of the subdictionaries of this dictionary are given + below. + + + OBJECT: egpState + + Type: INTEGER + + Definition: The state of the EGP system. The state values are: + + 0 -- Idle + 1 -- Acquisition + 2 -- Down + 3 -- Up + 4 -- Cease + + These values are taken directly from RFC-904. + + + +Partridge & Trewitt [Page 56] + +RFC 1024 HEMS Definitions October 1987 + + +The IpTransportLayer Dictionary: EgpValues/EgpParam + + The EgpParam dictionary stores the various EGP parameters. The + format of the dictionary is shown below. + + EgpParam ::= SET { + p1 [0] IMPLICIT INTEGER, + p2 [1] IMPLICIT INTEGER, + p3 [2] IMPLICIT INTEGER, + p4 [3] IMPLICIT INTEGER, + p5 [4] IMPLICIT INTEGER, + ipID [5] IMPLICIT Counter OPTIONAL + } + + OBJECT: EgpParam + + Type: SET + + Definition: See above. + + The definition of the fields of the dictionary are given below. All + the definitions are taken from RFC-904. + + + OBJECT: p1 + + Type: INTEGER + + Definition: Minimum interval acceptable between successive Hello + commands received. + + Operations on Object: The defaults except as noted below. + + SET: The set command is optionally defined on this object. + + OBJECT: p2 + + Type: INTEGER + + Definition: Minimum interval acceptable between successive Poll + commands received. + + Operations on Object: The defaults except as noted below. + + SET: The set command is optionally defined on this object. + + + OBJECT: p3 + + + +Partridge & Trewitt [Page 57] + +RFC 1024 HEMS Definitions October 1987 + + + Type: INTEGER + + Definition: Interval between Request or Cease command + retransmissions. + + Operations on Object: The defaults except as noted below. + + SET: The set command is optionally defined on this object. + + + OBJECT: p4 + + Type: INTEGER + + Definition: Interval during which state variables are maintained in + the absence of commands or response in the Down and Up states. + + Operations on Object: The defaults except as noted below. + + SET: The set command is optionally defined on this object. + + + OBJECT: p5 + + Type: INTEGER + + Definition: Interval during which state variables are maintained in + the absence of commands or response in the Acquisition and Cease + states. + + Operations on Object: The defaults except as noted below. + + SET: The set command is optionally defined on this object. + + + OBJECT: ipID + + Type: Counter + + Definition: The next IP packet ID identifier to be used by the EGP + code. + + Object Status: Required if the EGP code generates its own IP + identifiers. + + +The IpTransportLayer Dictionary: EgpValues/EgpStats + + + + +Partridge & Trewitt [Page 58] + +RFC 1024 HEMS Definitions October 1987 + + + The EgpStats dictionary keeps statistics about the use of EGP on + this entity. The form of the dictionary is shown below. + + EgpStats ::= SET { + inputPktCount [1] IMPLICIT Counter, + inputPktErrors [2] IMPLICIT Counter, + inputPktTypes [3] IMPLICIT Histogram OPTIONAL, + outputPktCount [4] IMPLICIT Counter, + outputPktErrors [5] IMPLICIT Counter, + outputPktTypes [6] IMPLICIT Histogram OPTIONAL, + egpTraffic [7] IMPLICIT TrafficMatrix OPTIONAL + } + + + OBJECT: EgpStats + + Type: SET + + Definition: See above. + + + The definitions of the objects in this dictionary are given below. + + + OBJECT: inputPktCount + + Type: Counter + + Definition: The number of EGP packets received including those that + proved to be in error. + + + OBJECT: inputPktErrors + + Type: Counter + + Definition: The number of EGP packets received which proved to be + in error. This value subtracted from inputPktCount should give + the number of valid EGP packets received. + + + OBJECT: inputPktTypes + + Type: Histogram + + Definition: A histogram of types of valid EGP messages received. + The histogram histValue field contains the message type number, + and the histCount field contains the number of messages of + + + +Partridge & Trewitt [Page 59] + +RFC 1024 HEMS Definitions October 1987 + + + this type which have been received. + + Object Status: Useful. + + + OBJECT: outputPktCount + + Type: Counter + + Definition: The total number of EGP packets that the entity + attempted to send (including those that failed due to lack of + buffers, a missing route or other transient transmission + problems). + + OBJECT: outputPktErrors + + Type: Counter + + Definition: The number of EGP packets which the entity could not + send due to transmission problems such as the lack of buffers, + a missing route or other transient transmission problems. + This value is not required to include errors which the EGP + layer could not reasonably be expected to detect such as + damage to the packet in transit. Subtracting this value from + the outputPktCount field should give the number of EGP packets + the entity believes it successfully sent. + + + OBJECT: outputPktTypes + + Type: Histogram + + Definition: A histogram of EGP messages types sent, including those + that later failed to be transmitted. The histogram histValue + field contains the message type number, and the histCount field + contains the number of messages of this type which have been sent. + + Object Status: Useful. + + + + OBJECT: egpTraffic + + Type: TrafficMatrix + + Definition: All EGP traffic which has originated on this machine. + The source address in the traffic matrix should be the interface + from which the packet was sent. The destination is the address + + + +Partridge & Trewitt [Page 60] + +RFC 1024 HEMS Definitions October 1987 + + + to which the packet is to finally be delivered (not an + intermediate hop). + + Object Status: Useful. + + +The IpTransportLayer Dictionary: EgpValues/EgpPeer + + The egpPeerData field of the EgpValues dictionary is a set of + EgpPeer structures which contain the state variables for a + particular EGP neighbor. The form of the EgpPeer structure is shown + below. + + EgpPeer ::= SET { + r [0] IMPLICIT Counter, + s [1] IMPLICIT Counter, + t1 [2] IMPLICIT INTEGER, + t2 [3] IMPLICIT INTEGER, + t3 [4] IMPLICIT INTEGER, + m [5] IMPLICIT BOOLEAN, + timer1 [6] IMPLICIT INTEGER, + timer2 [7] IMPLICIT INTEGER, + timer3 [8] IMPLICIT INTEGER, + addr [9] IMPLICIT IpAddress + } + + + OBJECT: EgpPeer + + Type: SET + + Definition: The state information for a given EGP neighbor. + + The definition of each field is given below. + + + OBJECT: r + + Type: Counter + + Definition: The receive sequence number as defined in RFC-904. + + + OBJECT: s + + Type: Counter + + Definition: The send sequence number as defined in RFC-904. + + + +Partridge & Trewitt [Page 61] + +RFC 1024 HEMS Definitions October 1987 + + + OBJECT: t1 + + Type: INTEGER + + Definition: The interval between Hello command retransmissions as + defined in RFC-904. + + OBJECT: t2 + + Type: INTEGER + + Definition: The interval between Poll command retransmissions as + defined in RFC-904. + + OBJECT: t3 + + Type: INTEGER + + Definition: The interval during which neighbor-reachability + indications are counted, as defined in RFC-904. + + OBJECT: m + + Type: BOOLEAN + + Definition: The Hello Polling mode. True if in active mode, false + if in passive mode. + + Operations on Object: The defaults except as noted below. + + SET: Optionally defined to change the Hello Polling mode. + + OBJECT: timer1 + + Type: INTEGER + + Definition: The value of timer 1 as defined in RFC-904. + + + OBJECT: timer2 + + Type: INTEGER + + Definition: The value of timer 2 as defined in RFC-904. + + + OBJECT: timer3 + + + + +Partridge & Trewitt [Page 62] + +RFC 1024 HEMS Definitions October 1987 + + + Type: INTEGER + + Definition: The value of timer 3 as defined in RFC-904. + + + OBJECT: addr + + Type: IpAddress + + Definition: The IP address of the neighbor. + +The IpTransportLayer Dictionary: UdpValues + + The UdpValues dictionary stores all information on the User Datagram + Protocol, defined in RFC-768. The format of the dictionary is shown + below. + + UdpValues ::= [17] IMPLICIT SET OPTIONAL { + ipID [0] IMPLICIT Counter OPTIONAL, + [1] IMPLICIT UdpStats, + udpPortData [2] IMPLICIT SET of udpPort + } + + OBJECT: UdpValues + + Type: SET + + Definition: See above. + + Object Status: Implementation of this dictionary is required if + the entity supports UDP. + + The fields of this dictionary are given below. + + OBJECT: ipID + + Type: Counter + + Definition: The next IP packet ID identifier to be used by the UDP + code. + + Object Status: Required if the UDP code generates its own IP + identifiers. + + +The IpTransportLayer Dictionary: UdpValues/UdpStats + + The UdpStats dictionary stores general information about the + + + +Partridge & Trewitt [Page 63] + +RFC 1024 HEMS Definitions October 1987 + + + behavior of the UDP protocol on the entity. The format of the + dictionary is shown below. + + UdpStats ::= SET { + inputPkts [0] IMPLICIT Counter, + inputPktErrors [1] IMPLICIT Counter, + outputPkts [2] IMPLICIT Counter, + } + + OBJECT: UdpStats + + Type: SET + + Definition: See above. + + Object Status: Encouraged. + + The fields in this dictionary are defined below. + + + OBJECT: inputPkts + + Type: Counter + + Definition: The total number of UDP packets received at this entity + including any errors. + + Object Status: Required if the UdpStats dictionary is implemented. + + + OBJECT: inputPktsErrors + + Type: Counter + + Definition: The number of UDP packets which could not be delivered + because of format errors, data corruption or because there was no + application at the destination port. + + Object Status: Required if the UdpStats dictionary is implemented. + + + OBJECT: outputPkts + + Type: Counter + + Definition: The total number of UDP segments sent from this entity. + + Object Status: Required if the UdpStats dictionary is implemented. + + + +Partridge & Trewitt [Page 64] + +RFC 1024 HEMS Definitions October 1987 + + +The IpTransportLayer Dictionary: UdpValues/udpPortData + + The udpPortData structure stores information about individual UDP + applications. The udpPortData is represented as a set of records, + udpPorts, which track the behavior of individual ports. The format + of both structures are shown below. + + udpPortData [1] IMPLICIT SET of UdpPort + + UdpPort ::= [0] IMPLICIT SET { + localAddress [0] IMPLICIT IpAddress, + localPort [1] IMPLICIT INTEGER, + foreignAddress [2] IMPLICIT IpAddress OPTIONAL, + foreignPort [3] IMPLICIT INTEGER OPTIONAL, + maxPktSize [4] IMPLICIT INTEGER, + pktsRcvd [5] IMPLICIT Counter, + octetRcvd [6] IMPLICIT Counter OPTIONAL, + pktsSent [7] IMPLICIT Counter, + octetSent [8] IMPLICIT Counter OPTIONAL, + } + + OBJECT: udpPortData + + Type: SET of udpPort + + Definition: See above. + + + OBJECT: UdpPort + + Type: SET + + Definition: See above. + + Operations on Object: The defaults except as noted below. + + GET-MATCH. Defined on any combination of the values of + localAddress, localPort, foreignAddress and foreignPort. + Returns all ports which match the template. + + The meaning of the individual fields of the udpPort record are given + below. + + + OBJECT: localAddress + + Type: IpAddress + + + + +Partridge & Trewitt [Page 65] + +RFC 1024 HEMS Definitions October 1987 + + + Definition: The local IP address of the port. May be the default + IP address if records are accepted from any interface. + + + OBJECT: localPort + + Type: INTEGER + + Definition: The local port number. + + + OBJECT: foreignAddress + + Type: IpAddress + + Definition: Some UDP implementations permit applications to specify + the remote address from which packets will be accepted. In such + implementations, this field may be used to return the remote IP + address. If this value is set to the default IP address, then + packets from any host are accepted. The default IP address + indicates that the application has not specified the remote + address (but could if it chose). + + Object Status: Required in entities which permit applications to + specify the remote address. + + + OBJECT: foreignPort + + Type: INTEGER + + Definition: Some UDP implementations permit applications to specify + the remote address from which packets will be accepted. In such + implementations, this field may be used to return the remote + port. If this value is set to 0, packets from any remote port + are accepted. + + Object Status: Required in entities which permit applications to + specify the remote port. + + OBJECT: maxPktSize + + Type: INTEGER + + Definition: The maximum UDP packet size, if any, supported by this + host. + + Object Status: Required if there is a limit on the UDP packet size. + + + +Partridge & Trewitt [Page 66] + +RFC 1024 HEMS Definitions October 1987 + + + OBJECT: pktsRcvd + + Type: Counter + + Definition: The total number of packets received on this port during + the lifetime of this application (i.e., application which opened + this port). + + + OBJECT: octetsRcvd + + Type: Counter + + Definition: The total number of octets received at this port. + + + OBJECT: pktsSent + + Type: Counter + + Definition: The total number of packets sent on this port during the + lifetime of this application (i.e., the application which opened + this port). + + + OBJECT: octetsSent + + Type: Counter + + Definition: The total number of octets sent on this port during the + lifetime of this application (i.e., the application which opened + this port). + + +The IpTransportLayer Dictionary: HmpValues + + The HmpValues dictionary stores all information on the Host + Monitoring Protocol, defined in RFC-869. Since HEMS is designed to + replace HMP, the definition of this dictionary has been deferred + until a clear need for it is demonstrated. + + +The IpTransportLayer Dictionary: RdpValues + + The RdpValues dictionary stores all information on the Reliable + Data Protocol (RDP). Since RDP is currently being tested and + revised, the definition of this dictionary is left for further + study. + + + +Partridge & Trewitt [Page 67] + +RFC 1024 HEMS Definitions October 1987 + + +The IpTransportLayer Dictionary: NetbltValues + + The NetbltValues dictionary stores all information on the Network + Block Transfer protocol. Since Netblt is currently being tested + and revised, the definition of this dictionary is left for further + study. + + +The IpApplications Dictionary + + The IpApplications dictionary stores information about networking + applications whose operations may affect the proper operation of + the network. Examples of such applications might be domain + nameservers or distributed routing agents (such as gated or + routed). The definition of this dictionary is left for further + study. + + +NOTES ON RETRIEVAL OF OBJECTS + + It is assumed in this system that the query processor is only one + of many concurrently running processes on an entity, and that the + operations of the other processes may affect the values of the + objects managed by the query processor. To permit this + concurrency, the query processor is not required to keep the values + frozen during the execution of a query. As a result, related + values may change during the course of the query's execution. + Applications should be prepared for this possibility. + + In several places, specific mathematical relations between objects + have been specified, for example, that object X minus object Y + should yield some well-defined value. Note that in many cases, + objects X and Y are roll-over counters, in which case these + relations are only valid modulo the precision of the counter. This + is acceptable. The relationships are only intended to clarify the + association between objects. + + +EVENTS + + In the remainder of this memo we present the format and definition + of event messages which are unsolicited updates sent from entities + to management centers. + + This section needs much further work. The authors provide this + section to illustrate how the trap mechanism works. However, much + more research must be done into the questions of what events need + to be reported, and what information they must carry with them + + + +Partridge & Trewitt [Page 68] + +RFC 1024 HEMS Definitions October 1987 + + + before this section can be completed. The authors welcome any + advice from the community on this subject. + + +Format of Event Messages + + Event messages have the same format as replies; they are a sequence + of objects. The only difference between a event message and a + regular reply to a query is that the event message is labelled as a + event in the HEMP message header and the first object in the event + message is a special event leader describing the event. All + objects after the event message are standard objects stored by the + entity which might be useful to a monitoring center in + understanding the machine state which caused the event. Each event + has a certain number of objects that it must return. Additional + objects may be returned by loading instructions into the + eventExecution buffer of the relevant eventEntry. + + The format of the event leader is shown below: + + EventLeader ::= [APPLICATION 1024] IMPLICIT SEQUENCE { + eventCode INTEGER, + eventIndex INTEGER, + eventThreshold INTEGER, + eventTime TimeStamp, + eventDescr IA5STRING + } + + + The eventCode is a number which indicates the type of event. The + eventCodes are defined below. + + The eventIndex is an implementation specific value. It is + considered good practice to make sure that a particular event is + only generated in one place. It may be the case that certain HEMS + generic events (for example, "no buffer space") may be generated by + more than one place in an entity's code. To allow implementors and + network managers to determine where the event is actually being + generated, implementors should make sure that a distinct eventIndex + is assigned to each location in the code that generates a + particular event. + + The eventThreshold is the value of the event threshold when the + event was sent. + + The eventTime indicates when the trap was generated. + + The eventDescr is a text string which describes the event. This + + + +Partridge & Trewitt [Page 69] + +RFC 1024 HEMS Definitions October 1987 + + + description should explain the general problem (e.g., "no buffer + space") and may also, optionally, include additional information + about why this particular event was generated (e.g., "could not + send ICMP redirect"). + + +Event Definitions + + The remainder of this memo presents a few generic events, which are + presented for illustration only. Implementors interested in + supporting events should contact the authors to help work out a + more comprehensive set of definitions. + + The format of the event definitions is: + + EVENT CODE: The event code number. + + Definition: Defines the event. + + Related Objects: The list of related objects which *must* be + returned following the event header. All objects should be + returned as fully qualified objects (with ASN.1 codes tracing + a complete path from the root object dictionary). If no + objects are specified, then no related objects are required. + + Event Status: Events are either required of all conforming + implementations, required if the entity supports a + particular feature (e.g., TCP events) or optional. + + Notes: Any additional notes about the event. + + +List of Events + + + The next few event codes are for system (as opposed to more + network oriented) events. + + EVENT CODE: 0 + + Definition: Unused + + + EVENT CODE: 1 + + Definition: The entity has rebooted. + + Related Objects: An INTEGER which is the highest HEMP + + + +Partridge & Trewitt [Page 70] + +RFC 1024 HEMS Definitions October 1987 + + + messageID reached by the trap system before the system + crashed. + + EVENT CODE: 2 + + Definition: The entity is about to go into test mode. + + + EVENT CODE: 3 + + Definition: The entity is about to reset. + + + EVENT CODE: 4 + + Definition: The entity is about to reboot. + + + EVENT CODE: 5 + + Definition: The entity is about to halt. + + + EVENT CODE: 6 + + Definition: The system is close to depleting its packet buffer + space. + + Event Status: optional + + + EVENT CODE: 7 + + Definition: The system has depleted its packet buffer space. + + + EVENT CODE: 8 + + Definition: The system has depleted a non-packet buffer space. + + Note: The two trap codes above do not deal neatly with + systems which have multiple buffer pools, each of which + may be depleted separately, with very different effects + on the entity. + + + The next set of event codes apply to events related to network + interfaces. + + + +Partridge & Trewitt [Page 71] + +RFC 1024 HEMS Definitions October 1987 + + + EVENT CODE: 1024 + + Definition: The given interface has just come up. + + Related Objects: The InterfaceData structure for the + interface. + + EVENT CODE: 1025 + + Definition: The given interface has just been taken down. + + Related Objects: The InterfaceData structure for the + interface. + + EVENT CODE: 1026 + + Definition: The given interface has just gone into test mode. + + Related Objects: The InterfaceData structure for the + interface. + + The next set of event codes are used to report IP-level errors. + + + EVENT CODE: 2048 + + Definition: Unable to route IP packet. + + + EVENT CODE: 2049 + + Definition: Bad IP checksum. + + + EVENT CODE: 2050 + + Definition: An IP packet with a bad header was received (for + example, with a broadcast or multicast IP address as the + source, or the wrong IP version number, or a header length + which is too short). + + Related Objects: Should return the IP header of the packet. + Note that an IP header type has not yet been defined. + + + EVENT CODE: 2051 + + Definition: Packet for unsupported IP transport protocol. + + + +Partridge & Trewitt [Page 72] + +RFC 1024 HEMS Definitions October 1987 + + + Related Objects: Should return the IP header of the packet. + Note that an IP header type has not yet been defined. + + + EVENT CODE: 2052 + + Definition: A stunted IP packet was received (smaller than + the IP length says it should be). + + Related Objects: Should return the IP header of the packet. + Note that an IP header type has not yet been defined. + + + EVENT CODE: 2053 + + Definition: An oversize IP packet was received (larger than + the IP length says it should be). + + Related Objects: Should return the IP header of the packet. + Note that an IP header type has not yet been defined. + + + EVENT CODE: 2054 + + Definition: A good IP packet was discarded (usually to free + up buffer space). + + Related Objects: Should return the IP header of the packet. + Note that an IP header type has not yet been defined. + + + EVENT CODE: 2055 + + Definition: An IP packet's time-to-live as expired. + + Related Objects: Should return the IP header of the packet. + Note that an IP header type has not yet been defined. + + + EVENT CODE: 2056 + + Definition: This IP fragment has timed out. + + Related Objects: Should return the header of the fragment. + Note that an IP header type has not yet been defined. + + + + + + +Partridge & Trewitt [Page 73] + +RFC 1024 HEMS Definitions October 1987 + + +AREAS FOR FURTHER STUDY + + There are several parts of this document that could use additional + study. Comments from readers are welcome. + + The whole event system needs thorough examination. It is not clear + that the event control mechanism strikes the proper balance between + sufficient flexibility to allow monitoring centers to customize + their event stream, and keeping the basic mechanism simple. + Further, the problem of defining generic events for all entities is + an immense task. Finally, the system of appending required values + after traps, followed by optional values read from the data tree + feels a bit cumbersome. It would be nice if all values were in the + same data space. + + Several readers have suggested it might make more sense to keep TCP + connection parameters on a per-connection basis rather than + globally. + + The method for specifying the TCP round-trip time algorithm needs + to be refined. The expression syntax should be sufficiently + general that all round-trip-time-related algorithms (e.g., those + for time or routing protocols) can be expressed in it. + + Much more research could be done into what information needs to be + gathered to effectively monitor a network. + + + + + + + + + + + + + + + + + + + + + + + + + +Partridge & Trewitt [Page 74] + -- cgit v1.2.3