As per Relevance of the word required, we have this rfc below:
Network Working Group C.
Request For Comment: 1024 BBN/
G.
October 1987
HEMS VARIABLE
STATUS OF THIS
This memo assigns instruction codes, defines object formats
object semantics for use with the High-Level Monitoring and
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
memo
The authors assume a working knowledge of the ISO data
standard, ASN.1, and a general understanding of the IP
suite
Distribution of this memo is unlimited
In other memos [RFC-1021, RFC-1022] the authors have described
general system for monitoring and controlling network entities;
system is called the High-Level Entity Management System (HEMS).
This system permits applications to read and write values in
entities which support a simple query processor
In this memo we standardize the language instruction codes,
objects which can be read or written, and the meanings of
constants stored in the objects. There are three parts to
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
packet counter actually tracks).
This definition is provisional, and the authors hope that it will
expanded and improved as the community becomes more experienced
HEMS. Readers with suggestions for additional object definitions,
improved definitions are encouraged to contact the authors
Partridge & Trewitt [Page 1]
RFC 1024 HEMS Definitions October 1987
MESSAGE
All HEMS values are conveyed between applications and entities
the High-Level Entity Management Protocol (HEMP) specified in RFC
1022. All values specified in this memo are passed in the
sections of HEMP messages. For all message types, the data
is a SEQUENCE of objects. For requests, these objects are
and their operands. Replies contain a sequence of objects
by a request. Events contain an initial event object followed by
optional number of objects related to the event
Messages conforming to this memo should set the link field in
HEMP CommonHeader to 1, to indicate version 1 of HEMS.
resourceId field should be set to NULL
CONTROL LANGUAGE
The HEMS Monitoring and Control Language defines a suite
operations which the query processor must be able to perform.
operations and their operands are ASN.1 objects which are passed
the query processor over a network connection. The operations
operands are sent in postfix form (the operation follows
operands). Operands are pushed onto a stack and are processed
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.
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
the value to determine which operation is to be done (e.g., GET).
GENERAL COMMENTS ON OBJECTS STORED IN
The High-Level Monitoring and Control Language requires the
space to have a tree-shaped type space. Locating a particular
requires identifying that section of the tree in which the
resides. (A more detailed explanation of the scheme is given
RFC-1023).
Partridge & Trewitt [Page 2]
RFC 1024 HEMS Definitions October 1987
This memo defines a universal type space. A subset of this
space is expected to be an appropriate type space for any
(e.g., a gateway or a multi-user host). The type space is
into required and optional portions. Implementors should
the required portion of the type space plus that part of the
type space which is appropriate for their particular entity
One problem with defining a universal type space is that
interesting objects are not universal, but are instead very
specific (for example, status registers on specialized hardware).
allow implementors to retrieve such implementation-specific
using the HEMS system, a special APPLICATION type is reserved
non-standard values
Putting objects in ASN.1 form implies an ability to map to and
ASN.1 format. One of the design goals of this system has been
minimize the amount of ASN.1 compilation required by the
processor to reduce the expense of processing queries at entities
(This implies a certain willingness to force the
querying entities to be more powerful). We expect that most of
complex mapping will be done when objects are read; most
objects have a simple format (e.g., an INTEGER, or OCTETSTRING).
a result, we have made a heavy use of the ASN.1 SET type,
allows values to be presented in any order. Applications
require particular fields in an object may use the template
to specify particular fields to be retrieved, but this still
the query processor to return the fields in whatever order
convenient
In addition to ease the problems of ASN.1 compilation,
processors are not required to reduce an INTEGER to the
number of octets as specified in ASN.1. Applications should
prepared to receive INTEGERs which have leading octets with all
or ones
More generally, a design goal of HEMS was to try to limit the
processing done at the entity, and to place the burden of
reduction on the querying application. As a result, the
presented here are typically counters, or values which the entity
to compute already. Object definitions which require the entity
do data reduction are not supported, although consideration might
given to making them optionally available
Finally, HEMS is required to support access by multiple
management centers or applications. This constraint has
important consequences. First, the SET operation cannot be
to any Counter, since changing the value of a Counter may impair
acquisition by other centers. More generally, there are
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
such requests. If such facilities become necessary, the
envision the enhancement of the object definitions to incorporate
idea of "owned" objects
READING THE OBJECT
Most of the rest of this memo is devoted to ennumerating the
managed by the query processor. Many of these objects
dictionaries, objects which reference other objects.
dictionaries requires that we specify the class of objects
reference
Most significant objects, such as packet counts, reside at the
of the object data tree. They need to be carefully defined to
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
the object fulfills this definition since an
feature of HEMS is that objects have consistent
across all machines. It is better not to
an object than to abuse its definition
Notes: An optional section of the definition which is
to discuss issues not covered in other sections
this specification
Object Status: An optional section of the definition
is used to indicate whether the object is required of
HEMS implementations, encouraged of HEMS
or simply considered useful. Currently, there are
levels of status
Required: The object is felt to provide
information and must be included in a
conforming HEMS implementation
Required On Condition: The object is felt
provide critical information about an
Partridge & Trewitt [Page 4]
RFC 1024 HEMS Definitions October 1987
feature of an IP entity (for example, support
the Transmission Control Protocol). The
is required if the feature is implemented in
entity
Encouraged: The object is felt to provide
useful management information and
are encouraged to implement it
Defined: The object may be useful and has
defined so that all implementations of the
are consistent
If the object status is not specified, the object
be considered required. If the parent dictionary is optional
then the object should be considered required if the
dictionary is supported
Operations on Object: The definition of how each
and control operation acts on the object. Many
have the same effect on almost all values, so
default definitions are presented here. In the
of an operation specification, implementors should
the default operations defined here
BEGIN: The default is for BEGIN to be defined
dictionaries, and an error if performed on
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
stack
GET-ATTRIBUTES: The default is that GET-ATTRIBUTES
defined on the contents of all dictionaries
in this memo. The text description
are optional for values defined in this memo,
are required for implementation-specific objects
Any descriptions of object listed in this memo
cite this memo. GET-ATTRIBUTES must be supported
all entity-specific values. GET-
returns a Attributes object, which is defined
the well-known types section below
Partridge & Trewitt [Page 5]
RFC 1024 HEMS Definitions October 1987
GET-ATTRIBUTES-MATCH: The default is
GET-ATTRIBUTES-MATCH is optionally defined on
object which supports GET-MATCH, and is an
otherwise. The rules for attributes returned
GET-ATTRIBUTES-MATCH are the same as those
GET-ATTRIBUTES
GET: The default definition of GET is to emit the
specified is a leaf object, and if the operand is
dictionary, to recursively GET the entire dictionary
its subdictionaries
GET-MATCH: Unless otherwise specified, GET-MATCH is
supported on an object
GET-RANGE: Unless otherwise specified, GET-RANGE is
supported on an object
SET: Unless otherwise specified, SET is not supported on
object
SET-MATCH: Unless otherwise specified, SET-MATCH is
supported on an object
HEMS requires that remote applications be able to discover
meaning of an object by querying the entity in which the object
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
(e.g., SEQUENCE, or OCTETSTRING). This
is required
longDesc: A potentially lengthy text description
fully defines the object. This attribute is
for objects defined in this memo and required
entity-specific objects
shortDesc: A short mnemonic string of less than 15
which is suitable for labelling the value on a display
This attribute is optional
unitsDesc: A short string used for integer values
indicate the units in which the value is
(e.g. "ms", "sec", "packets", etc). This
is optional
precision: For Counter objects, the value at which
Counter will roll-over. Required for all
objects
properties: A bitstring of boolean properties of
object. If the bit is on, it has the given property
This attribute is optional. The bits
defined are
0 -- If true, the difference between two
of this object is significant. For example
the changes in a packet count is
significant, it always conveys information
In this case, the 0 bit would be set. On
other hand, the difference between two
of a queue length may be meaningless
IMPLEMENTATION SPECIFIC
Each vendor or implementation specific value must be contained
an VendorSpecific object. The format of the VendorSpecific object
shown below
Type:
VendorSpecific ::= [APPLICATION 3] IMPLICIT SET of
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
There are some generally useful types which are defined across
system and are considered well-known. These types support
notions that are frequently used in other definitions
TYPE:
Error ::= [APPLICATION 0] IMPLICIT SEQUENCE {
errorCode INTEGER
errorOffset
errorDescription IA5String
}
The Error type is returned within reply messages when an error
countered. The errorCode is a number specifying a general class
error. The errorOffset is the octet in the query where the error
discovered. Note that the query starts at the first octet (octet 0)
of the HEMP data section. The errorDescription is a text
explaining the error. Note that the definition of this section
the same (except for the start of the offset) as that of the
protocol error structure and the error codes have been selected
keep the code spaces distinct. This is intended to ease
processing of error messages. The defined errorCodes are
100 -- Any error not listed below
101 -- System error. The query processor has
in some way
102 -- Format error. An error has been detected
the input stream
103 -- Stack error. A stack overflow or underflow
occurred
104 -- Instruction error. The instruction is
unknown, or not supported on the object to
it has been applied
105 -- Operand error. The wrong number of operands
inappropriate operands have been given to
instruction
Partridge & Trewitt [Page 8]
RFC 1024 HEMS Definitions October 1987
TYPE:
Counter ::= [APPLICATION 4] IMPLICIT
The Counter type is an unsigned integer which is defined to roll-
to 0 when incremented past a certain value. (The roll-over point
be found by examining the attributes for the particular counter.)
Counter sizes should be chosen such that the counters will not
over more than once every 24 hours
TYPE:
InstructionGroup ::= [APPLICATION 5] IMPLICIT
of
An InstructionGroup is an encapsulated sequence of operands
operations. It allows applications to encode queries as objects
TYPE:
Histogram ::= SET of
HistEntry ::= SEQUENCE {
histValue INTEGER
histCount
}
A Histogram associates a count, histCount, with a numeric value
histValue. No meaning is placed on the count or value by
definition. Each HistEntry may represent a simple map (e.g.,
histCount instances of histValue), or a more complex
(e.g., a count of all values between this histValue and the
lowest histValue in the Histogram). The meaning of the
Histogram is given in the object definition
TYPE:
TrafficMatrix ::= SET of
TrafficEntry ::= SEQUENCE {
src IpAddress
dst IpAddress
count
}
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 ::=
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
default address (e.g., for indicating default routes).
TYPE:
Fraction ::=
A Fraction is an integer representation of a fractional value.
contains the numerator of a value as expressed over 256. (
example dividing the Fraction by 256 gives the fractional value.)
TYPE:
BootClock ::=
The time in milliseconds since the machine was last booted or reset
This value is always defined
TYPE:
LocalClock ::=
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,
uninitialized time-of-day chip.)
TYPE:
NetClock ::=
A network synchronized clock, which is assumed to be
across some part of a network. The clock value is measured
milliseconds since 00:00 1 January 1900 UTC. Specific
about the synchronization protocol is found in the system
dictionary. The value 0 is used to indicate an uninitialized clock
TYPE:
TimeStamp ::= CHOICE {
[0]
Partridge & Trewitt [Page 10]
RFC 1024 HEMS Definitions October 1987
[1]
[2]
}
A TimeStamp, which was taken from the boot clock, system clock or
synchronized clock. In general, a time of day is preferred to
time since boot, and a synchronized clock is preferred to
unsynchronized clock. It is more useful to know that an
occurred at a particular time, than that it happened so
milliseconds after the machine booted
OBJECT
The Root
In HEMS, all data is stored in dictionaries, where a dictionary
thought to represent a conceptual grouping of values. The top-
dictionary is the root dictionary. The form of the root
for is shown below
RootDictionary ::= [APPLICATION 32] IMPLICIT SET {
SystemVariables
EventControls OPTIONAL
Interfaces
IpNetworkLayer
IpRoutingTable
IpTransportLayer
IpApplications
}
The root dictionary is split into seven general dictionaries
- SystemVariables, which stores general system values
as the system clock, machine memory and system up/
status
- EventControls, which stores all objects necessary
observe and control the event generating mechanism
entities which support events
- interfaces, which contains all information on
the network interfaces and IP to physical
maps (ARP tables, X.25 Standard mappings, etc).
- IpNetworkLayer, which contains information about
workings of the IP layer. This includes information
as routing tables, general packet counts, and host-
Partridge & Trewitt [Page 11]
RFC 1024 HEMS Definitions October 1987
matrices
- IpRoutingTable, which contains information on how
machine routes packets. It proved more useful to
routing information than to keep it stored with the
layer data
- IpTransportLayer, which stores information on the
protocols that the entity supports
- IpApplications, which may store information about
internet applications such as the domain system.
section is not required of HEMS entities
The next several sections define the values stored in the
dictionaries
The SystemVariables
The SystemVariables dictionary stores objects which are not
protocol, network, or application specific. Such objects
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
systemID [9] IMPLICIT IA5STRING
}
OBJECT:
Type:
Definition: see
The objects in the dictionary are defined below
OBJECT:
Partridge & Trewitt [Page 12]
RFC 1024 HEMS Definitions October 1987
Type:
Definition: The system clock used for placing timestamps
information. Use of a NetClock is encouraged
Operations on Object: Defaults
Notes: Cross-network clock adjustment is best handled by a
time synchronization protocol, not through the use of SET
OBJECT:
Type:
Definition: Detailed information on the referenceClock if
referenceClock is a NetClock. The format of
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.
refClockType is a value indicating the type of
clock consulted for network time (the values are
directly from the Network Time Protocol specification
RFC-958).
Object Status: Required if the referenceClock is a NetClock
OBJECT:
Type:
Definition: A value, expressed as a Fraction, which
the current processing load on the entity. A value
256 (= 1.0) is defined to be running at capacity.
is recognized that this is an imprecise definition
capacity can be measured in several ways. For example
a multiprocessor may still have plenty of
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
master processor and handles all context switching
The idea is for remote applications to be able to get
sense of the current workload on the entity. Also
that the time scale of the measurement should be small
A load measure that averages over the past 10
is acceptable but a load measure that averages over
past 10 minutes is not. Implementors should chose
mapping between system load and this scale such that 256
represents a machine under severe strain. (Note that
suggests that values greater than 256 may be returned
rare cases.)
OBJECT:
Type:
Definition: An object which indicates the system state. There
several defined object values. Some values are read-only
can only be read from the object. Over values are write-
and will never be read from the object. Over values
write-only and will never be read from the object.The
are
The read-only values are
(0) -- reserved
(1) -- running. The entity is up and running
(2) -- testing. The entity is running some sort
diagnostics which may affect its
operation
The write-only values are
(0) -- reserved
(1) -- reset the entity
(2) -- reboot the entity. This value is assumed
cause a more aggressive recycling of the
than reset, though this need not be the case
(3) -- halt the entity. This value stops
entity. It assumed to prevent the entity
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
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
if the current value is matched
OBJECT:
Type:
Definition: A sequence of octets which represents the image of
kernel software running on the entity. This facility
provided to allow remote network debugging
By kernel software, we mean that software which controls
operations and access to the hardware. In particular, the
is expected to contain all network software up through the
layer
Implementations which use lightweight processes or
images should consider providing some way to map their
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
dictionary should *not* emit this object
OBJECT:
Type:
Definition: The total number of packet buffers in the entity
Object Status: Required if the entity has a maximum number
buffers. Note that most entities do have a limit (even if
Partridge & Trewitt [Page 15]
RFC 1024 HEMS Definitions October 1987
is for practical purposes, near infinite) and should
that limit
OBJECT:
Type:
Definition: The maximum number of octets that can be buffered in
entity at any one time
Object Status: Required if the entity has a maximum number of
it can buffer. Note that most entities do have a limit
should return that limit
OBJECT:
Type:
Definition: The number of packet buffers currently available
Subtracting pktBuffersFree from pktBuffers should give
number of buffers in use
Object Status: Required if there is a limit on the number
buffers
OBJECT:
Type:
Definition: The number of octets currently available including
not used in allocated buffers. Subtracting this value
pktOctets should give the number of octets in use
This object can be used to track how well the entity buffers
data
Object Status: Required if there is a limit on the number
octets that can be buffered
OBJECT:
Type: IA5
Definition: The text identification of the entity. This
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
the entity
The EventControls
The EventControls dictionary contains objects to control
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:
Type:
Definition: See above
Object Status: This object will be required in entities
support events, after the event definitions have
properly specified. See discussion of the event
at the end of this memo
A description of the fields in this dictionary are given below
OBJECT:
Type:
Definition: The last event message sent
Object Status: Implementation of this object is encouraged if
transport protocol used for events is unreliable (e.g., UDP).
OBJECT:
Type:
Partridge & Trewitt [Page 17]
RFC 1024 HEMS Definitions October 1987
Definition: The HEMP MessageId to be used in the next
message. Equals the number of events sent
OBJECT:
Type: SET of
Definition: The list of IP addresses to which events are sent
This list receives all events. For more selective
monitoring, centers should list themselves under
particular events of interest
Note: If the SET operator is defined then use of some form
access control is recommended
Operations on Object: The defaults except as listed below
CREATE: Adds an address to the list. The new address
not be a broadcast address (it may be a
address).
DELETE: Deletes an address from the list
SET-MATCH: Defined on the IP address. Replaces
address with a new value
EMIT-MATCH: Defined on the IP address
OBJECT:
Type: SET of
Definition: An array of entries which contain objects which
management centers to control how and when events are sent
(The contents of the eventEntry structure are explained below.)
The eventControls Dictionary: eventList/
The eventEntry provides the necessary control objects to manage
a particular event is sent. The format of the eventEntry is
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
}
OBJECT:
Type:
Definition: See Above
OBJECT:
Type:
Definition: The particular event ID
OBJECT:
Type:
Definition: A control object which determines how and whether
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
event count reaches the threshold
OBJECT:
Type:
Definition: The number of times this event has occurred
OBJECT:
Type:
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
value
Operations on Object: The defaults except as noted below
SET: Changes the threshold
OBJECT:
Type:
Definition: The threshold increment. Every time a event
is reached, the threshold value is incremented by this
(modulo the precision of the Counter) to find the
threshold
Operations on Object: The defaults except as noted below
SET: Changes the increment
OBJECT:
Type:
Definition: A query to be executed whenever the event is
sent. Any data retrieved by this query is appended to
event message
Object Status: Encouraged
Operations on Object: The defaults except as noted below
SET: Changes the buffer
OBJECT:
Type:
Definition: The IP addresses of the monitoring centers which
to listen to this particular event. Note that events should
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
entry with a new value
EMIT-MATCH: Defined on the IP address
The Interfaces
The Interfaces dictionary a list of per-interface objects.
one of the fundamental goals of HEMS is to use generic
across differing hardwares, all hardware interfaces are described
the same data structure, the InterfaceData
Interfaces ::= [APPLICATION 35] IMPLICIT SET OF
OBJECT:
Type:
Definition: see above
The Interfaces Dictionary: The InterfaceData structure
The InterfaceData structure contains all information on a
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
multicast [20] IMPLICIT SET of BITSTRING
addressList [21] IMPLICIT SET OPTIONAL
}
OBJECT:
Type:
Definition: see above
Operations on Object: The defaults except as noted below
SET-MATCH: This operation is optionally defined on
address field of the structure. Only certain
in this structure may be changed. The fields
may be SET are indicated in the descriptions below
GET-MATCH: Defined to emit information on the
which matches the address given
The fields in the structure are defined below
OBJECT:
Type: SET of
Definition: The IP addresses that the interface accepts. Note
additional information on multicast addresses may be found
the IgmpValues dictionary
OBJECT:
Type:
Definition: The maximum transmission unit of the device
OBJECT:
Type:
Definition: The subnet mask, which is an address with all
network bits set to 1 and all the hosts bits set to 0. Used
identify subnets
Partridge & Trewitt [Page 22]
RFC 1024 HEMS Definitions October 1987
OBJECT:
Type:
Definition: The total number of packets received on this
including those in error
OBJECT:
Type:
Definition: The total number of packets that higher levels
attempted to send, including those that were not sent
OBJECT:
Type:
Definition: The number of good inbound packets dropped (
to free up buffer space).
OBJECT:
Type:
Definition: The number of good outbound packets dropped (
to free up buffer space).
OBJECT:
Type:
Definition: The number of broadcast packets received
those in error
Object Status: Encouraged on interfaces that support broadcast
OBJECT:
Type:
Definition: The number of broadcast packets that higher
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:
Type:
Definition: The number of multicast packets received
those in error
Object Status: Encouraged on interfaces that support multicast
OBJECT:
Type:
Definition: The number of multicast packets sent, including
that were not sent
Object Status: Encouraged on interfaces that support multicast
OBJECT:
Type:
Definition: The number of inbound packets that could not
delivered. The number of inbound packets
should equal inputPkts less this value and inputPktsDropped
OBJECT:
Type:
Definition: The number of outbound packets that could not
transmitted because of errors. The number of
packets placed on the network should equal
less this value and outputPktsDropped
OBJECT:
Type:
Definition: The length of the output packet queue (in packets).
OBJECT:
Type: IA5
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,
product name and the version of the hardware
OBJECT:
Type:
Definition: The status of the object. The status values are
0 --
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:
Type:
Definition: A flag which indicates the type of interface in use.
currently defined types are
0 --
1 -- 1822
2 -- 1822
3 --
4 -- DDN X.25
5 -- RFC-877 X.25
6 --
7 -- Proteon 10
8 -- Proteon 80
9 --
10 -- 802.3
11 -- 802.4 Token
12 -- 802.5 Token
13 -- Point-to-Point
OBJECT:
Type:
Partridge & Trewitt [Page 25]
RFC 1024 HEMS Definitions October 1987
Definition: A counter of media errors, such as collisions
Ethernets, token regeneration on token passing rings, or
RFNMs on PSNs
Object Status: Encouraged for interfaces to media which have
errors
OBJECT:
Type:
Definition: When the interface was put in its current state
OBJECT:
Type:
Definition: Whether this interface has a physical
address
Object Status: Required if the interface has a broadcast adddress
OBJECT:
Type: SET of
Definition: The set of hardware multicast addresses
enabled on the device
Object Status: Encouraged in interfaces which support multicast
OBJECT:
Definition: SET of
addressMap ::= [0] IMPLICIT SET {
ipAddr [0] IMPLICIT
physAddr [1] IMPLICIT
}
Definition: Most interfaces maintain tables mapping
network address to IP address. An example is an ARP table
This table stores that map as a series of entries which
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
physical addresses
The IpNetworkLayer
The IpNetworkLayer dictionary contains all information about the
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
}
OBJECT:
Type:
Definition: See above
The fields of the dictionary are defined below
OBJECT:
Type:
Definition: A boolean value which is true if the entity
packets
Partridge & Trewitt [Page 27]
RFC 1024 HEMS Definitions October 1987
OBJECT:
Type:
Definition: The total number of input packets received
those in error
OBJECT:
Type:
Definition: The number of input packets discarded due to
(unknown protocols, format errors, etc).
OBJECT:
Type:
Definition: The number of input packets dropped for lack of
space
OBJECT:
Type:
Definition: The number of inbound packets currently waiting to
processed by the IP layer
Object Status: Encouraged
OBJECT:
Type:
Definition: The total number of outbound packets including
those packets presented to the IP layer by higher layers
packets which are gatewayed
OBJECT:
Type:
Definition: The number of output packets discarded because
Partridge & Trewitt [Page 28]
RFC 1024 HEMS Definitions October 1987
errors (unable to route, format errors, etc).
OBJECT:
Type:
Definition: The number of output packets dropped for lack
buffer space
OBJECT:
Type:
Definition: The number of outbound packets waiting to be
by the IP layer
Object Status: Encouraged
OBJECT:
Type:
Definition: The next IP packet ID identifier to be used.
that in some implementations the transport layer may set
IP identifier, in which case this value is used if the
identifier has not been set by the transport layer
OBJECT:
Type:
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:
Type:
Definition: The number of IP fragments received at this entity
Object Status: Encouraged
Partridge & Trewitt [Page 29]
RFC 1024 HEMS Definitions October 1987
OBJECT:
Type:
Definition: The number of IP fragments discarded at this
for whatever reason (timed out, errors, etc).
Object Status: Encouraged
OBJECT:
Type:
Definition: The number of IP datagrams that have been
at this entity
Object Status:
OBJECT:
Type:
Definition: The number of IP datagrams that have been
at this entity
Object Status: Encouraged
OBJECT:
Type:
Definition: A host traffic matrix, mapping all traffic switched
pair of sources and destinations. The count in each
routeDst is expressed in packets. Source routed IP
should be logged as being between their source and
destination (i.e., they should not be treated as destined
this entity).
Notes: This information may be considered sensitive
Object Status: Encouraged in gateways
OBJECT:
Partridge & Trewitt [Page 30]
RFC 1024 HEMS Definitions October 1987
Type:
Definition: An interface traffic matrix showing traffic
between interfaces in an entity. The source and
fields are the IP addresses of the interfaces between
the packet was switched. The count in each trafficEntry
expressed in packets
Object Status: Useful
The IpRoutingTable
The IpRoutingTable dictionary contains all routing information
Note that information about any routing protocols used to
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:
Type:
Definition: See above
The objects contained in the dictionary are described below
OBJECT:
Type:
Definition: A sparse list of the routing protocols used to
the routing table (e.g., EGP and ICMP). Each octet contains
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 --
8 --
9 -- Proprietary
OBJECT:
Type:
Definition: This value is set to true if this entity is a
router for any other router (i.e., if it distributes any of
routes to other machines).
OBJECT:
Type:
Definition: The autonomous system number of the autonomous system
which this entity resides
OBJECT:
Type:
Definition: Classifies the routing metric used in the routing
entries. The value should be chosen from the list of values
routingProtocols above, and indicates the metric definition
(e.g., this entity uses an EGP metric internally).
OBJECT:
Type: SET of
Partridge & Trewitt [Page 32]
RFC 1024 HEMS Definitions October 1987
Definition: The set of all routing entries. The RoutingEntry
defined below
The IpRoutingTable Dictionary: The
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
}
OBJECT:
Type:
Definition: See above
Operations on Object: Defaults except as specified below
CREATE: Adds a new routing entry. It should be
that the entry is new
DELETE: Deletes a routing entry
GET-MATCH: The match operator is defined on the
field. A match on an IpAddress is defined to be
search to find the route or routes which would
used to reach the IpAddress. More than one
may be applicable, in which case all possible
should be returned
SET-MATCH: Is optionally defined on the object. A
on an entire RoutingEntry replaces the entire
with a new value. Certain fields (indicated below
can also be changed using a SET-MATCH
The match operator is defined on the routeDst
routeTOS fields. To SET a value, the match must
exact on the IP address (this is different from
Partridge & Trewitt [Page 33]
RFC 1024 HEMS Definitions October 1987
search definition for GET-MATCH).
Note that support of the operator on an
which uses a dynamic routing protocol such
GGP or EGP will require close coordination
the routing protocol to ensure consistent data
(Arguably, this facility should not be
on such machines).
The definitions of the fields in the RoutingEntry are given below
OBJECT:
Type:
Definition: The routing metric on this route. Note that the type
metric is defined in the metricUsed field of the
dictionary
OBJECT:
Type:
Definition: The final destination that can be reached via
route
OBJECT:
Type:
Definition: The next hop to the final destination
OBJECT:
Type:
Definition: The IP address of the entity from which this route
*first* received. That is, the first entity which stated
was reached via nextHop. The default IpAddress should be
to indicate routes which originated on the entity
Object Status: Encouraged
OBJECT:
Partridge & Trewitt [Page 34]
RFC 1024 HEMS Definitions October 1987
Type:
Definition: The routing protocol from which this route was learned
The value is taken from the list of values for
above
Object Status: Encouraged
OBJECT:
Type:
Definition: When this route was first received
Object Status: Encouraged
OBJECT:
Type:
Definition: The IP Type of Service which this routing entry serves
Object Status: Required if type of service routing is supported
OBJECT:
Type:
Definition: Whether the route is active. (Some machines
routes which are no longer valid for various reasons.)
The IpTransportLayer
The IpTransportLayer Dictionary contains any information
pertains to transport protocols which use the IP protocol as
network protocol. For ease of reference, the ASN.1 tag of
transport protocol's dictionary is the same as the assigned
Protocol number. The definition of the
dictionary is shown below. Note that dictionaries for
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:
Type:
Definition: see above
The objects in the dictionary are defined below
The IpTransportLayer Dictionary:
OBJECT:
Type:
Definition: Sparse list of transport protocols supported.
octet in the OCTETSTRING contains the IP protocol number of
supported protocol. For the purposes of this definition,
entity supports a protocol if it both contains software
makes it possible for the protocol to be used
communications with the entity, AND the entity keeps
required values (if any) defined in this memo for that protocol
The IpTransportLayer Dictionary:
The IcmpValues dictionary is a subdictionary of the
dictionary which tracks the workings of the Internet Control
Protocol, defined in RFC-792. The form of the dictionary is
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
Partridge & Trewitt [Page 36]
RFC 1024 HEMS Definitions October 1987
}
OBJECT:
Type:
Definition: see above
The objects in the dictionary are defined below
OBJECT:
Type:
Definition: The total number of ICMP packets received (
those in error).
OBJECT:
Type:
Definition: The number of ICMP packets received which proved
have errors (bad checksums, bad length etc). Subtracting
value from the inputPktCount field should give the number
valid ICMP packets received
OBJECT:
Type:
Definition: The number of valid ICMP packets which
successfully processed (e.g., delivered to the
protocol).
OBJECT:
Type:
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
the the (ICMP type * 256) + ICMP code, and the histCount
contains the number of valid messages containing
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 "
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
field
OBJECT:
Type:
Definition: The total number of ICMP packets that the
attempted to send (including those that failed due to lack
buffers, a missing route or other transient
problems).
OBJECT:
Type:
Definition: The number of ICMP packets which the entity could
send due to transmission problems such as the lack of buffers,
missing route or other transient transmission problems.
value is not required to include errors which the ICMP
could not reasonably be expected to detect such as damage to
packet in transit. Subtracting this value from the
field should give the number of ICMP packets the entity
it successfully sent
OBJECT:
Type:
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
the the (ICMP type * 256) + ICMP code, and the histCount
contains the number of valid messages containing this type/
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 "
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
field
OBJECT:
Type:
Definition: All ICMP traffic which has originated on this machine
The source address in the traffic matrix should be the
from which the packet was sent. The destination is the
to which the packet is to finally be delivered (not
intermediate hop).
Object Status: Useful
OBJECT:
Type:
Definition: The next IP packet ID identifier to be used by the
code
Object Status: Required if the ICMP code generates its own
identifiers
The IpTransportLayer Dictionary:
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
Partridge & Trewitt [Page 39]
RFC 1024 HEMS Definitions October 1987
igmpGroups [8] IMPLICIT SET of IgmpGroupEntry
ipID [9] IMPLICIT Counter OPTIONAL
}
OBJECT:
Type:
Definition: The dictionary of information on the Internet
Management Protocol (RFC-988).
Object Status: Required in hosts which support IGMP
The objects stored in this dictionary are defined below
OBJECT:
Type:
Definition: The level of conformance with RFC-988. The
levels are
0 -- Level 0. No support for IP
1 -- Level 1. Support for sending but not
multicast datagrams
2 -- Level 2. Full support for IP multicasting
These values are taken directly from RFC-988.
OBJECT:
Type:
Definition: The number of IGMP packets received including
that proved to be in error
OBJECT:
Type: