RFC 1066
Management Information Base for network management of TCP/IP-based internets
Management Information Base for Network Management of TCP/IP-based internets โจ
- RFC number: 1066 ๐ฆ
- Series: Network Working Group ๐ธ
- Authors: K. McCloghrie and M. Rose, both from TWG ๐
- Date: August 1988 ๐
- Category: The title block doesn't list one. Section 1 says this memo "specifies a draft standard for the Internet community" ๐ฅ
- Obsoletes / Updates: The title block doesn't list any RFCs that this one obsoletes or updates ๐ง
Table of Contents
1. Status of this Memo ................................... 1
2. IAB POLICY STATEMENT .................................. 2
3. Introduction .......................................... 2
4. Objects ............................................... 5
4.1 Object Groups ........................................ 5
4.2 Format of Definitions ................................ 6
5. Object Definitions .................................... 7
5.1 The System Group ..................................... 8
5.2 The Interfaces Group ................................. 10
5.2.1 The Interfaces Table ............................... 10
5.3 The Address Translation Group ........................ 22
5.4 The IP Group ......................................... 25
5.4.1 The IP Address Table ............................... 33
5.4.2 The IP Routing Table ............................... 35
5.5 The ICMP Group ....................................... 42
5.6 The TCP Group ........................................ 52
5.7 The UDP Group ........................................ 61
5.8 The EGP Group ........................................ 63
5.8.1 The EGP Neighbor Table ............................. 64
6. Definitions ........................................... 67
7. Acknowledgements ...................................... 88
8. References ............................................ 89
1. Status of this Memo โจ
okay so this memo gives us the first version of the Management Information Base (MIB) for network management protocols in TCP/IP-based internets ๐ it's a short-term thing. Together with its companion memos (one describing how management info is structured, one describing the first network management protocol), it gives us a simple, workable architecture and system for managing TCP/IP-based internets, and especially the Internet ๐
This memo specifies a draft standard for the Internet community. TCP/IP implementations in the Internet that are network manageable are expected to adopt and implement this spec ๐
Distribution of this memo is unlimited ๐ซถ
2. IAB POLICY STATEMENT ๐
this MIB spec is the first edition of a document that's going to keep evolving ๐ฑ it defines the variables we need to monitor and control the different parts of the Internet. Not every group of variables is mandatory for every Internet component, though ๐
For example, the EGP group is mandatory for gateways that use EGP, but not for hosts, which shouldn't be running EGP anyway. Same energy with the TCP group: it's mandatory for hosts running TCP, but not for gateways that aren't running it ๐ What is mandatory, though, is that if you support any element of a group, you support all the variables of that group ๐ฅ
More MIB groups and variables are expected to be defined over time, so we can keep up with the monitoring and control needs of new or changing parts of the Internet ๐ The MIB working group will keep refining this spec, and they're planning a revision with new requirements in early 1989 ๐ฆ
3. Introduction ๐ธ
so, as RFC 1052, IAB Recommendations for the Development of Internet Network Management Standards [1], reported, the Internet Activities Board told the Internet Engineering Task Force (IETF) to create two new working groups for network management ๐ One group is in charge of further specifying and defining the elements that go into the Management Information Base. The other is in charge of changing the Simple Network Management Protocol (SNMP) to meet the short-term needs of network vendors and operators ๐ง The long-term needs of the Internet community are to be met using the ISO CMIS/CMIP [2,3] framework as a base. An existing IETF working group, the "NETMAN" group, is already working on using CMIS/CMIP in a TCP/IP network, and it's going to keep handling the longer-term requirements ๐ซถ
The output of the MIB working group goes to both the SNMP working group and the NETMAN group, so the monitored items stay compatible across both network management frameworks ๐
The MIB working group made this memo and a companion. The companion memo [4] defines a Structure for Management Information (SMI) for the managed objects in the MIB. This memo defines the list of managed objects itself โจ
The IAB also urged the working groups to be "extremely sensitive to the need to keep SNMP simple," and it recommends that the MIB working group use the MIB definitions in the High-Level Entity Management Systems (HEMS) RFC 1024 [5], the initial SNMP specification [6], and the CMIS/CMIP memos [7,8] as starting inputs ๐
So the list of managed objects here was built by taking only the elements that are considered essential. Because they're essential, there's no need to make individual objects optional. Instead, all compliant implementations will contain all applicable objects (see below) defined in this memo ๐
Taking only the essential objects is not restrictive, though, because the SMI in the companion memo gives us three extensibility mechanisms ๐ฆ One: adding new standard objects by defining new versions of the MIB. Two: adding widely-available but non-standard objects through the multilateral subtree. Three: adding private objects through the enterprises subtree. These extra objects can be used for vendor-specific elements, and also for experiments that help us figure out which other objects are essential ๐ฅ
The main criterion for being considered essential was that an object appears in all of the MIB definitions referenced above. A few other objects got included, but only if the MIB working group truly believed they were essential ๐ The detailed list of criteria used to consider potential inclusions in this (initial) MIB was:
- An object needed to be essential for either fault or configuration management.
- Only weak control objects were permitted (by weak, it is meant that tampering with them can do only limited damage). This criterion reflects the fact that the current management protocols are not sufficiently secure to do more powerful control operations.
- Evidence of current use and utility was required.
- An attempt was made to limit the number of objects to about 100 to make it easier for vendors to fully instrument their software.
- To avoid redundant variables, it was required that no object be included that can be derived from others in the MIB.
- Implementation specific objects (e.g., for BSD UNIX) were excluded.
- It was agreed to avoid heavily instrumenting critical sections of code. The general guideline was one counter per critical section per layer.
4. Objects ๐ง
Managed objects are accessed via a virtual information store, called the Management Information Base or MIB ๐ Objects in the MIB are defined using Abstract Syntax Notation One (ASN.1) [9] ๐ธ
The mechanisms for describing these objects are specified in the companion memo. In particular, each object has a name, a syntax, and an encoding โจ The name is an object identifier, an administratively assigned name that specifies an object type. The object type together with an object instance uniquely identifies one specific instantiation of the object. For human convenience, we often use a text string, called the OBJECT DESCRIPTOR, to refer to the object type too ๐ฆ
The syntax of an object type defines the abstract data structure that corresponds to that object type. The ASN.1 language is used for this. However, the companion memo purposely restricts which ASN.1 constructs may be used. These restrictions are made explicitly for simplicity ๐
The encoding of an object type is simply how that object type is represented using the object type's syntax. Tied implicitly to an object type's syntax and encoding is how the object type is represented when it's transmitted on the network. This memo specifies the use of the basic encoding rules of ASN.1 [10] ๐
4.1. Object Groups ๐ซถ
Since this list of managed objects contains only the essential elements, there's no need to let individual objects be optional. Instead, the objects are arranged into the following groups ๐
- System
- Interfaces
- Address Translation
- IP
- ICMP
- TCP
- UDP
- EGP
There are two reasons for defining these groups: one, to provide a way of assigning object identifiers; two, to provide a method for implementations of managed agents to know which objects they must implement ๐ฅ The method works like this: if the semantics of a group apply to an implementation, then it must implement all objects in that group. For example, an implementation must implement the EGP group if and only if it implements the EGP protocol ๐
4.2. Format of Definitions ๐
The next section contains the specification of all object types contained in the MIB ๐ธ Following the conventions of the companion memo, the object types are defined using the following fields ๐ฆ
OBJECT: A textual name, called the OBJECT DESCRIPTOR, for the object type, along with its corresponding OBJECT IDENTIFIER โจ
Syntax: The abstract syntax for the object type, presented using ASN.1. This must resolve to an instance of the ASN.1 type ObjectSyntax defined in the SMI ๐
Definition: A textual description of the semantics of the object type. Implementations should ensure that their interpretation of the object type fulfills this definition, since this MIB is intended for use in multi-vendor environments. As such, it is vital that object types have consistent meaning across all machines ๐
Access: One of read-only, read-write, write-only, or not-accessible ๐ฅ
Status: One of mandatory, optional, or obsolete ๐ง
๐ง part 1 of 11 done, bestie! section 5 (Object Definitions) is up next ๐
5. Object Definitions โจ
okay bestie, this is where the MIB actually gets its hands dirty ๐ง first up is the module wrapper. It names the module, imports the building blocks from RFC1065-SMI, and hangs every group off the mgmt tree like little ornaments ๐
RFC1066-MIB { iso org(3) dod(6) internet(1) mgmt(2) 1 }
DEFINITIONS ::= BEGIN
IMPORTS
mgmt, OBJECT-TYPE, NetworkAddress, IpAddress,
Counter, Gauge, TimeTicks
FROM RFC1065-SMI;
mib OBJECT IDENTIFIER ::= { mgmt 1 }
system OBJECT IDENTIFIER ::= { mib 1 }
interfaces OBJECT IDENTIFIER ::= { mib 2 }
at OBJECT IDENTIFIER ::= { mib 3 }
ip OBJECT IDENTIFIER ::= { mib 4 }
icmp OBJECT IDENTIFIER ::= { mib 5 }
tcp OBJECT IDENTIFIER ::= { mib 6 }
udp OBJECT IDENTIFIER ::= { mib 7 }
egp OBJECT IDENTIFIER ::= { mib 8 }
END
5.1. The System Group
Implementing the System group is mandatory for every system ๐ฅ no exceptions, no cap.
sysDescr { system 1 } ๐
Syntax: OCTET STRING
Definition: a textual description of the entity. It should include the full name and version of the system's hardware type, its software operating system, and its networking software. It is mandatory that this only contains printable ASCII characters ๐ซถ
Access: read-only.
Status: mandatory.
sysObjectID { system 2 } ๐ฆ
Syntax: OBJECT IDENTIFIER
Definition: this is the vendor's official ID for the network management subsystem inside the entity. It's allocated under the SMI enterprises subtree (1.3.6.1.4.1) and it's basically how you figure out "what kind of box" you're looking at, no guessing needed ๐ The example is giving Flintstones, Inc. the subtree 1.3.6.1.4.1.42, so they could name their "Fred Router" 1.3.6.1.4.1.42.1.1 ๐ชจ๐ญ
Access: read-only.
Status: mandatory.
sysUpTime { system 3 } โฐ
Syntax: TimeTicks
Definition: the time, in hundredths of a second, since the network management portion of the system was last re-initialized.
Access: read-only.
Status: mandatory.
5.2. The Interfaces Group
Implementing the Interfaces group is mandatory for every system too ๐ bestie is not optional here.
ifNumber { interfaces 1 } ๐ธ
Syntax: INTEGER
Definition: the number of network interfaces (no matter their current state) that this system can use to send or receive IP datagrams.
Access: read-only.
Status: mandatory.
5.2.1. The Interfaces Table
ifTable { interfaces 2 } ๐
Syntax: SEQUENCE OF IfEntry
Definition: a list of interface entries. The number of entries is given by the value of ifNumber.
Access: read-write.
Status: mandatory.
ifEntry { ifTable 1 } ๐ง
Syntax:
IfEntry ::= SEQUENCE {
ifIndex
INTEGER,
ifDescr
OCTET STRING,
ifType
INTEGER,
ifMtu
INTEGER,
ifSpeed
Gauge,
ifPhysAddress
OCTET STRING,
ifAdminStatus
INTEGER,
ifOperStatus
INTEGER,
ifLastChange
TimeTicks,
ifInOctets
Counter,
ifInUcastPkts
Counter,
ifInNUcastPkts
Counter,
ifInDiscards
Counter,
ifInErrors
Counter,
ifInUnknownProtos
Counter,
ifOutOctets
Counter,
ifOutUcastPkts
Counter,
ifOutNUcastPkts
Counter,
ifOutDiscards
Counter,
ifOutErrors
Counter,
ifOutQLen
Gauge
}
Definition: an interface entry holding the subnetwork-layer-and-below objects for one particular interface ๐
Access: read-write.
Status: mandatory.
We now consider the individual components of each interface entry, one slay at a time ๐
ifIndex { ifEntry 1 } ๐ฅ
Syntax: INTEGER
Definition: a unique value for each interface, ranging from 1 up to the value of ifNumber. Each interface's value must stay constant, at least from one re-initialization of the entity's network management system to the next one โจ
Access: read-only.
Status: mandatory.
ifDescr { ifEntry 2 } ๐
Syntax: OCTET STRING
Definition: a text string describing the interface. It should name the manufacturer, the product, and the version of the hardware interface. It's meant for humans to read, so it must not contain anything except printable ASCII characters ๐
Access: read-only.
Status: mandatory.
ifType { ifEntry 3 } ๐
Syntax:
INTEGER {
other(1), -- none of the following
regular1822(2),
hdh1822(3),
ddn-x25(4),
rfc877-x25(5),
ethernet-csmacd(6),
iso88023-csmacd(7),
iso88024-tokenBus(8),
iso88025-tokenRing(9),
iso88026-man(10),
starLan(11),
proteon-10MBit(12),
proteon-80MBit(13),
hyperchannel(14),
fddi(15),
lapb(16),
sdlc(17),
t1-carrier(18),
cept(19), -- european equivalent of T-1
basicIsdn(20),
primaryIsdn(21),
-- proprietary serial
propPointToPointSerial(22)
}
Definition: the type of interface, sorted by the physical, link, or network protocol(s) sitting immediately "below" IP in the protocol stack ๐
Access: read-only.
Status: mandatory.
ifMtu { ifEntry 4 } ๐ฆ
Syntax: INTEGER
Definition: the size of the largest IP datagram that can be sent or received on the interface, measured in octets.
Access: read-only.
Status: mandatory.
ifSpeed { ifEntry 5 } ๐จ
Syntax: Gauge
Definition: an estimate of the interface's current bandwidth, in bits per second. For interfaces whose bandwidth doesn't change, or where no accurate estimate is possible, this should hold the nominal bandwidth ๐
Access: read-only.
Status: mandatory.
ifPhysAddress { ifEntry 6 } ๐
Syntax: OCTET STRING
Definition: the interface's address at the protocol layer immediately "below" IP. Interfaces without an address like that (a serial line, for example) should contain an octet string of zero length ๐ง
Access: read-only.
Status: mandatory.
ifAdminStatus { ifEntry 7 } ๐๏ธ
Syntax:
INTEGER {
up(1), -- ready to pass packets
down(2),
testing(3) -- in some test mode
}
Definition: the state you want the interface to be in. The testing(3) state means no operational packets can get through ๐ซ
Access: read-write.
Status: mandatory.
ifOperStatus { ifEntry 8 } ๐
Syntax:
INTEGER {
up(1), -- ready to pass packets
down(2),
testing(3) -- in some test mode
}
Definition: the state the interface is actually in right now. Same deal: testing(3) means no operational packets can be passed ๐ฅน
Access: read-only.
Status: mandatory.
ifLastChange { ifEntry 9 } ๐ฐ๏ธ
Syntax: TimeTicks
Definition: the value of sysUpTime at the moment the interface entered its current operational state. If that state was entered before the last re-initialization of the local network management subsystem, this object holds a zero value ๐ญ
Access: read-only.
Status: mandatory.
ifInOctets { ifEntry 10 } ๐ฅ
Syntax: Counter
Definition: the total number of octets received on the interface, framing characters included ๐
Access: read-only.
Status: mandatory.
ifInUcastPkts { ifEntry 11 } ๐ฆ
Syntax: Counter
Definition: the number of (subnet) unicast packets handed up to a higher-layer protocol ๐ง
Access: read-only.
Status: mandatory.
ifInNUcastPkts { ifEntry 12 } ๐ฌ
Syntax:
Counter
Okay so this one counts the non-unicast packets (subnet broadcast or subnet multicast) that actually get handed up to a higher-layer protocol ๐ฆโจ. It's read-only and mandatory, obviously ๐ .
OBJECT:
-------
ifInDiscards { ifEntry 13 }
Syntax:
Counter
Inbound packets that got discarded on purpose even though nothing was wrong with them ๐. They never made it up to a higher-layer protocol, and no error caused it. One possible reason is freeing up buffer space ๐งน. Access is read-only and the status is mandatory ๐.
OBJECT:
-------
ifInErrors { ifEntry 14 }
Syntax:
Counter
Inbound packets that came in with errors, so they couldn't be delivered to a higher-layer protocol ๐. Read-only, mandatory ๐ซถ.
OBJECT:
-------
ifInUnknownProtos { ifEntry 15 }
Syntax:
Counter
Packets received on the interface that got tossed because the protocol was unknown or not supported ๐ฆ. Read-only, mandatory ๐.
OBJECT:
-------
ifOutOctets { ifEntry 16 }
Syntax:
Counter
The total number of octets sent out of the interface, framing characters included ๐ธ. Read-only, mandatory โจ.
OBJECT:
-------
ifOutUcastPkts { ifEntry 17 }
Syntax:
Counter
This is every packet the higher-level protocols asked to send to a subnet-unicast address ๐ฏ. That includes the ones that got discarded or never sent at all ๐ญ. Read-only, mandatory ๐ .
OBJECT:
-------
ifOutNUcastPkts { ifEntry 18 }
Syntax:
Counter
Same vibe as the unicast one, but for non-unicast addresses (subnet broadcast or subnet multicast) ๐ฃ. Again, discarded and unsent packets count too ๐. Read-only, mandatory ๐.
OBJECT:
-------
ifOutDiscards { ifEntry 19 }
Syntax:
Counter
Outbound packets that got chosen to be discarded even though no errors were detected that would stop them from being transmitted ๐๏ธ. Same as the inbound one, one possible reason is freeing up buffer space ๐ซง. Read-only, mandatory ๐.
OBJECT:
-------
ifOutErrors { ifEntry 20 }
Syntax:
Counter
Outbound packets that couldn't go out because of errors ๐ต. Read-only, mandatory โญ.
OBJECT:
-------
ifOutQLen { ifEntry 21 }
Syntax:
Gauge
This one measures how long the output packet queue is, in packets ๐. It's a Gauge, so it goes up and down, which is very relatable ๐ข. Read-only, mandatory ๐ง.
5.3. The Address Translation Group โจ
5.3.
Implementation of the Address Translation group is mandatory for every system, no exceptions ๐ซก.
Okay so this group has one table, and it's the union across all interfaces of the translation tables that turn a NetworkAddress (like an IP address) into a subnetwork-specific address ๐บ๏ธ. Since there isn't a better word for it, this document calls that subnetwork-specific address a "physical" address ๐ฆ.
Some examples of these translation tables: on broadcast media where ARP is in use, the table is basically the ARP cache ๐ง . Or on an X.25 network where you need non-algorithmic translation to X.121 addresses, the table holds the NetworkAddress to X.121 address equivalences ๐ซ.
OBJECT:
-------
atTable { at 1 }
Syntax:
SEQUENCE OF AtEntry
The Address Translation tables hold the NetworkAddress to "physical" address equivalences ๐. Some interfaces don't use translation tables at all, because they have an algorithmic method (DDN-X.25 is one of these) ๐งฎ. If all the interfaces are that type, then the Address Translation table is empty, meaning it has zero entries ๐ซฅ. Access is read-write, and it's mandatory ๐ .
OBJECT:
-------
atEntry { atTable 1 }
Syntax:
AtEntry ::= SEQUENCE {
atIfIndex
INTEGER,
atPhysAddress
OCTET STRING,
atNetAddress
NetworkAddress
}
Each entry is one NetworkAddress to "physical" address equivalence ๐ท. Read-write, mandatory ๐.
We now look at each piece of an Address Translation table entry, one by one ๐.
OBJECT:
-------
atIfIndex { atEntry 1 }
Syntax:
INTEGER
This is the interface where the equivalence is effective ๐. The interface with a given value of this index is the same interface you'd get with that same value of ifIndex ๐ช. Read-write, mandatory ๐.
OBJECT:
-------
atPhysAddress { atEntry 2 }
Syntax:
OCTET STRING
This is the media-dependent "physical" address ๐งฒ. Read-write, mandatory โจ.
OBJECT:
-------
atNetAddress { atEntry 3 }
Syntax:
NetworkAddress
This is the NetworkAddress (like the IP address) that matches up with the media-dependent "physical" address ๐. Read-write, mandatory ๐.
5.4. The IP Group โจ
okay so the IP group is mandatory for all systems ๐ no exceptions, no cap. every box that speaks IP needs these counters, bestie ๐ซถ
ipForwarding { ip 1 }
OBJECT:
-------
ipForwarding { ip 1 }
Syntax:
INTEGER {
gateway(1), -- entity forwards datagrams
host(2) -- entity does NOT forward datagrams
}
this one tells you whether the entity is acting as an IP gateway when it comes to forwarding datagrams it got but wasn't the final destination for ๐ง gateways forward, hosts don't, except hosts that get Source-Routed through them. it's giving "are you the middle person or the endpoint" energy ๐
- Access:
read-only - Status:
mandatory
ipDefaultTTL { ip 2 }
OBJECT:
-------
ipDefaultTTL { ip 2 }
Syntax:
INTEGER
this is the default value that goes into the Time-To-Live field of the IP header for datagrams this entity starts itself, but only when the transport layer protocol didn't hand over a TTL ๐ธ the fallback, basically
- Access:
read-write - Status:
mandatory
ipInReceives { ip 3 }
OBJECT:
-------
ipInReceives { ip 3 }
Syntax:
Counter
the total number of input datagrams received from interfaces, and yes that includes the ones that came in with errors ๐ every single one counts, no skipping
- Access:
read-only - Status:
mandatory
ipInHdrErrors { ip 4 }
OBJECT:
-------
ipInHdrErrors { ip 4 }
Syntax:
Counter
this counts input datagrams that got tossed because of problems in their IP headers ๐ we're talking bad checksums, a version number mismatch, other format errors, time-to-live exceeded, and errors found while processing their IP options, etc. the whole chaotic list ๐ญ
- Access:
read-only - Status:
mandatory
ipInAddrErrors { ip 5 }
OBJECT:
-------
ipInAddrErrors { ip 5 }
Syntax:
Counter
counts input datagrams that got discarded because the destination address in their IP header wasn't a valid address for this entity to receive ๐ฆ this includes invalid addresses like 0.0.0.0 and addresses from unsupported Classes like Class E. and for entities that aren't IP Gateways (so they don't forward), this also counts datagrams dropped because the destination wasn't a local address. main character energy for the counter that catches the weird ones โจ
- Access:
read-only - Status:
mandatory
ipForwDatagrams { ip 6 }
OBJECT:
-------
ipForwDatagrams { ip 6 }
Syntax:
Counter
this counts input datagrams where this entity wasn't the final IP destination, so it went looking for a route to forward them onward ๐ in entities that aren't IP Gateways, this only includes packets that were Source-Routed through this entity, and where the Source-Route option processing worked out
- Access:
read-only - Status:
mandatory
ipInUnknownProtos { ip 7 }
OBJECT:
-------
ipInUnknownProtos { ip 7 }
Syntax:
Counter
the number of locally-addressed datagrams that arrived fine but got discarded because the protocol was unknown or unsupported ๐ they got here, they just didn't know what to do with them lol
- Access:
read-only - Status:
mandatory
ipInDiscards { ip 8 }
OBJECT:
-------
ipInDiscards { ip 8 }
Syntax:
Counter
this one counts input IP datagrams where nothing went wrong that would stop them from being processed, but they got dropped anyway, like for lack of buffer space ๐ซง quick note: this counter does NOT include datagrams discarded while waiting for re-assembly
- Access:
read-only - Status:
mandatory
ipInDelivers { ip 9 }
OBJECT:
-------
ipInDelivers { ip 9 }
Syntax:
Counter
the total number of input datagrams that were successfully delivered to IP user-protocols, ICMP included ๐ the wins, the W's
- Access:
read-only - Status:
mandatory
ipOutRequests { ip 10 }
OBJECT:
-------
ipOutRequests { ip 10 }
Syntax:
Counter
the total number of IP datagrams that local IP user-protocols (ICMP included) handed to IP asking for transmission ๐ but this one does not include anything already counted in ipForwDatagrams. no double counting, periodt
- Access:
read-only - Status:
mandatory
ipOutDiscards { ip 11 }
OBJECT:
-------
ipOutDiscards { ip 11 }
Syntax:
Counter
output IP datagrams where no problem stopped them from being sent to their destination, but they got discarded anyway, like for lack of buffer space ๐ง this one would also include datagrams already counted in ipForwDatagrams, if any of those hit this (discretionary) discard criterion
- Access:
read-only - Status:
mandatory
ipOutNoRoutes { ip 12 }
OBJECT:
-------
ipOutNoRoutes { ip 12 }
Syntax:
Counter
datagrams that got discarded because no route could be found to get them to their destination ๐บ๏ธ and yes, this includes any packets counted in ipForwDatagrams that meet this "no-route" criterion
- Access:
read-only - Status:
mandatory
ipReasmTimeout { ip 13 }
OBJECT:
-------
ipReasmTimeout { ip 13 }
Syntax:
INTEGER
the maximum number of seconds that received fragments get held while they wait to be reassembled at this entity โณ patience, bestie
- Access:
read-only - Status:
mandatory
ipReasmReqds { ip 14 }
OBJECT:
-------
ipReasmReqds { ip 14 }
Syntax:
Counter
the number of IP fragments received that needed to be reassembled at this entity ๐งฉ the puzzle pieces that showed up
- Access:
read-only - Status:
mandatory
ipReasmOKs { ip 15 }
OBJECT:
-------
ipReasmOKs { ip 15 }
Syntax:
Counter
the number of IP datagrams that were successfully re-assembled โ the puzzle got finished, iconic
- Access:
read-only - Status:
mandatory
ipReasmFails { ip 16 }
OBJECT:
-------
ipReasmFails { ip 16 }
Syntax:
Counter
the number of failures the IP re-assembly algorithm detected, for whatever reason (timed out, errors, etc) ๐ฌ but heads up, this isn't always a count of discarded fragments, because some algorithms (notably RFC 815's) can lose track of how many fragments there are by combining them as they come in. it's a little messy, not gonna lie
- Access:
read-only - Status:
mandatory
ipFragOKs { ip 17 }
OBJECT:
-------
ipFragOKs { ip 17 }
Syntax:
Counter
the number of IP datagrams that got successfully fragmented at this entity ๐ช chopped up and it went perfectly
- Access:
read-only - Status:
mandatory
ipFragFails { ip 18 }
OBJECT:
-------
ipFragFails { ip 18 }
Syntax:
Counter
datagrams that got discarded because they needed to be fragmented at this entity but couldn't be, like when their "Don't Fragment" flag was set ๐ซ the rejected ones
- Access:
read-only - Status:
mandatory
ipFragCreates { ip 19 }
OBJECT:
-------
ipFragCreates { ip 19 }
Syntax:
Counter
the number of IP datagram fragments generated as a result of fragmentation at this entity ๐ all those little pieces, counted up
- Access:
read-only - Status:
mandatory
5.4.1. The IP Address Table ๐
okay bestie, this is the IP Address Table, and it's where this entity keeps its own IP addressing info all in one place โจ it's giving organized closet energy ๐
OBJECT:
-------
ipAddrTable { ip 20 }
Syntax:
SEQUENCE OF IpAddrEntry
Definition:
The table of addressing information relevant to this
entity's IP addresses.
Access:
read-only.
Status:
mandatory.
each row of the table is an ipAddrEntry, and it's the one holding all the juicy details ๐ง
OBJECT:
-------
ipAddrEntry { ipAddrTable 1 }
Syntax:
IpAddrEntry ::= SEQUENCE {
ipAdEntAddr
IpAddress,
ipAdEntIfIndex
INTEGER,
ipAdEntNetMask
IpAddress,
ipAdEntBcastAddr
INTEGER
}
Definition:
The addressing information for one of this entity's IP
addresses.
Access:
read-only.
Status:
mandatory.
so the columns of each entry are:
OBJECT:
-------
ipAdEntAddr { ipAddrEntry 1 }
Syntax:
IpAddress
Definition:
The IP address to which this entry's addressing
information pertains.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
ipAdEntIfIndex { ipAddrEntry 2 }
Syntax:
INTEGER
Definition:
The index value which uniquely identifies the interface
to which this entry is applicable. The interface
identified by a particular value of this index is the
same interface as identified by the same value of
ifIndex.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
ipAdEntNetMask { ipAddrEntry 3 }
Syntax:
IpAddress
Definition:
The subnet mask associated with the IP address of this
entry. The value of the mask is an IP address with all
the network bits set to 1 and all the hosts bits set to
0.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
ipAdEntBcastAddr { ipAddrEntry 4 }
Syntax:
INTEGER
Definition:
The value of the least-significant bit in the IP
broadcast address used for sending datagrams on the
(logical) interface associated with the IP address of
this entry. For example, when the Internet standard
all-ones broadcast address is used, the value will be 1.
Access:
read-only.
Status:
mandatory.
5.4.2. The IP Routing Table ๐ฆ
the IP Routing Table is the entity's little black book of routes ๐ it has an entry for every route it currently knows about ๐ ngl, there's one bit that's totally up to the network management protocol you're using: what happens when someone asks to read an entry that doesn't exist ๐
OBJECT:
-------
ipRoutingTable { ip 21 }
Syntax:
SEQUENCE OF IpRouteEntry
Definition:
This entity's IP Routing table.
Access:
read-write.
Status:
mandatory.
each route is an ipRouteEntry, and this is the entry shape ๐ธ
OBJECT:
-------
ipRouteEntry { ipRoutingTable 1 }
Syntax:
IpRouteEntry ::= SEQUENCE {
ipRouteDest
IpAddress,
ipRouteIfIndex
INTEGER,
ipRouteMetric1
INTEGER,
ipRouteMetric2
INTEGER,
ipRouteMetric3
INTEGER,
ipRouteMetric4
INTEGER,
ipRouteNextHop
IpAddress,
ipRouteType
INTEGER,
ipRouteProto
INTEGER,
ipRouteAge
INTEGER
}
Definition:
A route to a particular destination.
Access:
read-write.
Status:
mandatory.
okay so now let's look at each piece of a route, one by one ๐
OBJECT:
-------
ipRouteDest { ipRouteEntry 1 }
Syntax:
IpAddress
Definition:
The destination IP address of this route. An entry with
a value of 0.0.0.0 is considered a default route.
Multiple such default routes can appear in the table, but
access to such multiple entries is dependent on the
table-access mechanisms defined by the network management
protocol in use.
Access:
read-write.
Status:
mandatory.
OBJECT:
-------
ipRouteIfIndex { ipRouteEntry 2 }
Syntax:
INTEGER
Definition:
The index value which uniquely identifies the local
interface through which the next hop of this route should
be reached. The interface identified by a particular
value of this index is the same interface as identified
by the same value of ifIndex.
Access:
read-write.
Status:
mandatory.
OBJECT:
-------
ipRouteMetric1 { ipRouteEntry 3 }
Syntax:
INTEGER
Definition:
The primary routing metric for this route. The semantics
of this metric are determined by the routing-protocol
specified in the route's ipRouteProto value. If this
metric is not used, its value should be set to -1.
Access:
read-write.
Status:
mandatory.
OBJECT:
-------
ipRouteMetric2 { ipRouteEntry 4 }
Syntax:
INTEGER
Definition:
An alternate routing metric for this route. The
semantics of this metric are determined by the routing-
protocol specified in the route's ipRouteProto value. If
this metric is not used, its value should be set to -1.
Access:
read-write.
Status:
mandatory.
OBJECT:
-------
ipRouteMetric3 { ipRouteEntry 5 }
Syntax:
INTEGER
Definition:
An alternate routing metric for this route. The
semantics of this metric are determined by the routing-
protocol specified in the route's ipRouteProto value. If
this metric is not used, its value should be set to -1.
Access:
read-write.
Status:
mandatory.
OBJECT:
-------
ipRouteMetric4 { ipRouteEntry 6 }
Syntax:
INTEGER
Definition:
An alternate routing metric for this route. The
semantics of this metric are determined by the routing-
protocol specified in the route's ipRouteProto value. If
this metric is not used, its value should be set to -1.
Access:
read-write.
Status:
mandatory.
OBJECT:
-------
ipRouteNextHop { ipRouteEntry 7 }
Syntax:
IpAddress
Definition:
The IP address of the next hop of this route.
Access:
read-write.
Status:
mandatory.
OBJECT:
-------
ipRouteType { ipRouteEntry 8 }
Syntax:
INTEGER {
other(1), -- none of the following
invalid(2), -- an invalidated route
-- route to directly
direct(3), -- connected (sub-)network
-- route to a non-local
remote(4), -- host/network/sub-network
}
Definition:
The type of route.
Access:
read-write.
Status:
mandatory.
OBJECT:
-------
ipRouteProto { ipRouteEntry 9 }
Syntax:
INTEGER {
other(1), -- none of the following
-- non-protocol information,
-- e.g., manually configured
local(2), -- entries
-- set via a network management
netmgmt(3), -- protocol
-- obtained via ICMP,
icmp(4), -- e.g., Redirect
-- the remaining values are
-- all gateway routing protocols
egp(5),
ggp(6),
hello(7),
rip(8),
is-is(9),
es-is(10),
ciscoIgrp(11),
bbnSpfIgp(12),
oigp(13)
}
Definition:
The routing mechanism via which this route was learned.
Inclusion of values for gateway routing protocols is not
intended to imply that hosts should support those
protocols.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
ipRouteAge { ipRouteEntry 10 }
Syntax:
INTEGER
Definition:
The number of seconds since this route was last updated
or otherwise determined to be correct. Note that no
semantics of "too old" can be implied except through
knowledge of the routing protocol by which the route was
learned.
Access:
read-write.
Status:
mandatory.
5.5. The ICMP Group ๐ฆ
okay bestie, implementing the ICMP group is mandatory for all systems, no cap ๐ it's not optional. ๐ซถ
This group holds the ICMP input and output statistics ๐ so you can see every ICMP message coming in and going out.
ngl, the individual counters for ICMP message (sub-)codes got left out of this version of the MIB, just for simplicity ๐
Let's start with the incoming ones, the icmpIn objects ๐ฅโจ
OBJECT:
-------
icmpInMsgs { icmp 1 }
Syntax:
Counter
Definition:
The total number of ICMP messages which the entity
received. Note that this counter includes all those
counted by icmpInErrors.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpInErrors { icmp 2 }
Syntax:
Counter
Definition:
The number of ICMP messages which the entity received but
determined as having errors (bad ICMP checksums, bad
length, etc.).
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpInDestUnreachs { icmp 3 }
Syntax:
Counter
Definition:
The number of ICMP Destination Unreachable messages
received.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpInTimeExcds { icmp 4 }
Syntax:
Counter
Definition:
The number of ICMP Time Exceeded messages received.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpInParmProbs { icmp 5 }
Syntax:
Counter
Definition:
The number of ICMP Parameter Problem messages received.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpInSrcQuenchs { icmp 6 }
Syntax:
Counter
Definition:
The number of ICMP Source Quench messages received.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpInRedirects { icmp 7 }
Syntax:
Counter
Definition:
The number of ICMP Redirect messages received.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpInEchos { icmp 8 }
Syntax:
Counter
Definition:
The number of ICMP Echo (request) messages received.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpInEchoReps { icmp 9 }
Syntax:
Counter
Definition:
The number of ICMP Echo Reply messages received.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpInTimestamps { icmp 10 }
Syntax:
Counter
Definition:
The number of ICMP Timestamp (request) messages received.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpInTimestampReps { icmp 11 }
Syntax:
Counter
Definition:
The number of ICMP Timestamp Reply messages received.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpInAddrMasks { icmp 12 }
Syntax:
Counter
Definition:
The number of ICMP Address Mask Request messages
received.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpInAddrMaskReps { icmp 13 }
Syntax:
Counter
Definition:
The number of ICMP Address Mask Reply messages received.
Access:
read-only.
Status:
mandatory.
Now the outgoing ones, the icmpOut objects ๐ค๐
OBJECT:
-------
icmpOutMsgs { icmp 14 }
Syntax:
Counter
Definition:
The total number of ICMP messages which this entity
attempted to send. Note that this counter includes all
those counted by icmpOutErrors.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpOutErrors { icmp 15 }
Syntax:
Counter
Definition:
The number of ICMP messages which this entity did not
send due to problems discovered within ICMP such as a
lack of buffers. This value should not include errors
discovered outside the ICMP layer such as the inability
of IP to route the resultant datagram. In some
implementations there may be no types of error which
contribute to this counter's value.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpOutDestUnreachs { icmp 16 }
Syntax:
Counter
Definition:
The number of ICMP Destination Unreachable messages sent.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpOutTimeExcds { icmp 17 }
Syntax:
Counter
Definition:
The number of ICMP Time Exceeded messages sent.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpOutParmProbs { icmp 18 }
Syntax:
Counter
Definition:
The number of ICMP Parameter Problem messages sent.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpOutSrcQuenchs { icmp 19 }
Syntax:
Counter
Definition:
The number of ICMP Source Quench messages sent.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpOutRedirects { icmp 20 }
Syntax:
Counter
Definition:
The number of ICMP Redirect messages sent.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpOutEchos { icmp 21 }
Syntax:
Counter
Definition:
The number of ICMP Echo (request) messages sent.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpOutEchoReps { icmp 22 }
Syntax:
Counter
Definition:
The number of ICMP Echo Reply messages sent.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpOutTimestamps { icmp 23 }
Syntax:
Counter
Definition:
The number of ICMP Timestamp (request) messages sent.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpOutTimestampReps { icmp 24 }
Syntax:
Counter
Definition:
The number of ICMP Timestamp Reply messages sent.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpOutAddrMasks { icmp 25 }
Syntax:
Counter
Definition:
The number of ICMP Address Mask Request messages sent.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
icmpOutAddrMaskReps { icmp 26 }
Syntax:
Counter
Definition:
The number of ICMP Address Mask Reply messages sent.
Access:
read-only.
Status:
mandatory.
5.6. The TCP Group ๐ธ
okay bestie, the TCP group is mandatory for every system that implements TCP ๐ซถ no exceptions, no cap!
heads up: the objects in here that describe a specific TCP connection are transient ๐ฆ they only exist for as long as that connection does, so don't expect them to stick around after it's gone ๐
OBJECT:
-------
tcpRtoAlgorithm { tcp 1 }
Syntax:
INTEGER {
other(1), -- none of the following
constant(2), -- a constant rto
rsre(3), -- MIL-STD-1778, Appendix B
vanj(4) -- Van Jacobson's algorithm [11]
}
Definition:
The algorithm used to determine the timeout value used
for retransmitting unacknowledged octets.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpRtoMin { tcp 2 }
Syntax:
INTEGER
Definition:
The minimum value permitted by a TCP implementation
for the retransmission timeout, measured in
milliseconds. More refined semantics for objects
of this type depend upon the algorithm used to
determine the retransmission timeout. In particular,
when the timeout algorithm is rsre(3), an object
of this type has the semantics of the LBOUND
quantity described in RFC 793.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpRtoMax { tcp 3 }
Syntax:
INTEGER
Definition:
The maximum value permitted by a TCP implementation
for the retransmission timeout, measured
in milliseconds. More refined semantics for objects
of this type depend upon the algorithm used to
determine the retransmission timeout. In particular,
when the timeout algorithm is rsre(3), an object of
this type has the semantics of the UBOUND quantity
described in RFC 793.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpMaxConn { tcp 4 }
Syntax:
INTEGER
Definition:
The limit on the total number of TCP connections the
entity can support. In entities where the maximum
number of connections is dynamic, this object should
contain the value "-1".
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpActiveOpens { tcp 5 }
Syntax:
Counter
Definition:
The number of times TCP connections have made a direct
transition to the SYN-SENT state from the CLOSED
state.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpPassiveOpens { tcp 6 }
Syntax:
Counter
Definition:
The number of times TCP connections have made a direct
transition to the SYN-RCVD state from the LISTEN
state.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpAttemptFails { tcp 7 }
Syntax:
Counter
Definition:
The number of times TCP connections have made a direct
transition to the CLOSED state from either the
SYN-SENT state or the SYN-RCVD state, plus the number
of times TCP connections have made a direct transition
to the LISTEN state from the SYN-RCVD state.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpEstabResets { tcp 8 }
Syntax:
Counter
Definition:
The number of times TCP connections have made a direct
transition to the CLOSED state from either the
ESTABLISHED state or the CLOSE-WAIT state.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpCurrEstab { tcp 9 }
Syntax:
Gauge
Definition:
The number of TCP connections for which the current
state is either ESTABLISHED or CLOSE-WAIT.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpInSegs { tcp 10 }
Syntax:
Counter
Definition:
The total number of segments received, including those
received in error. This count includes segments
received on currently established connections.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpOutSegs { tcp 11 }
Syntax:
Counter
Definition:
The total number of segments sent, including those on
current connections but excluding those containing
only retransmitted octets.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpRetransSegs { tcp 12 }
Syntax:
Counter
Definition:
The total number of segments retransmitted - that is,
the number of TCP segments transmitted containing one
or more previously transmitted octets.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpConnTable { tcp 13 }
Syntax:
SEQUENCE OF TcpConnEntry
Definition:
A table containing TCP connection-specific
information.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpConnEntry { tcpConnTable 1 }
Syntax:
TcpConnEntry ::= SEQUENCE {
tcpConnState
INTEGER,
tcpConnLocalAddress
IpAddress,
tcpConnLocalPort
INTEGER (0..65535),
tcpConnRemAddress
IpAddress,
tcpConnRemPort
INTEGER (0..65535)
}
Definition:
Information about a particular current TCP connection.
An object of this type is transient, in that it ceases
to exist when (or soon after) the connection makes the
transition to the CLOSED state.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpConnState { tcpConnEntry 1 }
Syntax:
INTEGER {
closed(1),
listen(2),
synSent(3),
synReceived(4),
established(5),
finWait1(6),
finWait2(7),
closeWait(8),
lastAck(9),
closing(10),
timeWait(11)
}
Definition:
The state of this TCP connection.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpConnLocalAddress { tcpConnEntry 2 }
Syntax:
IpAddress
Definition:
The local IP address for this TCP connection.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpConnLocalPort { tcpConnEntry 3 }
Syntax:
INTEGER (0..65535)
Definition:
The local port number for this TCP connection.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpConnRemAddress { tcpConnEntry 4 }
Syntax:
IpAddress
Definition:
The remote IP address for this TCP connection.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
tcpConnRemPort { tcpConnEntry 5 }
Syntax:
INTEGER (0..65535)
Definition:
The remote port number for this TCP connection.
Access:
read-only.
Status:
mandatory.
5.7. The UDP Group ๐ฆ
implementing the UDP group is mandatory for all systems that implement UDP ๐ same energy as TCP, no notes!
OBJECT:
-------
udpInDatagrams { udp 1 }
Syntax:
Counter
Definition:
The total number of UDP datagrams delivered to UDP
users.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
udpNoPorts { udp 2 }
Syntax:
Counter
Definition:
The total number of received UDP datagrams for which
there was no application at the destination port.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
udpInErrors { udp 3 }
Syntax:
Counter
Definition:
The number of received UDP datagrams that could not be
delivered for reasons other than the lack of an
application at the destination port.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
udpOutDatagrams { udp 4 }
Syntax:
Counter
Definition:
The total number of UDP datagrams sent from this
entity.
Access:
read-only.
Status:
mandatory.
5.8. The EGP Group ๐
Okay bestie, if your system speaks the EGP protocol, the EGP group is mandatory for you, no cap ๐ It's giving "you have to do this" energy ๐ซถ
OBJECT:
-------
egpInMsgs { egp 1 }
Syntax:
Counter
Definition:
The number of EGP messages received without error.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
egpInErrors { egp 2 }
Syntax:
Counter
Definition:
The number of EGP messages received that proved to be
in error.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
egpOutMsgs { egp 3 }
Syntax:
Counter
Definition:
The total number of locally generated EGP messages.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
egpOutErrors { egp 4 }
Syntax:
Counter
Definition:
The number of locally generated EGP messages not sent
due to resource limitations within an EGP entity.
Access:
read-only.
Status:
mandatory.
5.8.1. The EGP Neighbor Table ๐ฆ
The Egp Neighbor table is where you keep track of this entity's EGP neighbors, so it's basically the group chat roster for your EGP friends ๐
OBJECT:
-------
egpNeighTable { egp 5 }
Syntax:
SEQUENCE OF EgpNeighEntry
Definition:
The EGP neighbor table.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
egpNeighEntry { egpNeighTable 1 }
Syntax:
EgpNeighEntry ::= SEQUENCE {
egpNeighState
INTEGER,
egpNeighAddr
IpAddress
}
Definition:
Information about this entity's relationship with a
particular EGP neighbor.
Access:
read-only.
Status:
mandatory.
Now let's look at the pieces of each EGP neighbor entry, one at a time ๐
OBJECT:
-------
egpNeighState { egpNeighEntry 1 }
Syntax:
INTEGER {
idle(1),
acquisition(2),
down(3),
up(4),
cease(5)
}
Definition:
The EGP state of the local system with respect to this
entry's EGP neighbor. Each EGP state is represented
by a value that is one greater than the numerical
value associated with said state in RFC 904.
Access:
read-only.
Status:
mandatory.
OBJECT:
-------
egpNeighAddr { egpNeighEntry 2 }
Syntax:
IpAddress
Definition:
The IP address of this entry's EGP neighbor.
Access:
read-only.
Status:
mandatory.
6. Definitions ๐ง
Here's the whole MIB module, the actual code that holds everything together. It opens with the module name and imports, then sets up the object identifier tree (system, interfaces, at, ip, icmp, tcp, udp, egp) and defines the object types, starting with the System group and then the Interfaces group and table โจ
RFC1066-MIB { iso org(3) dod(6) internet(1) mgmt(2) 1 }
DEFINITIONS ::= BEGIN
IMPORTS
mgmt, OBJECT-TYPE, NetworkAddress, IpAddress,
Counter, Gauge, TimeTicks
FROM RFC1065-SMI;
mib OBJECT IDENTIFIER ::= { mgmt 1 }
system OBJECT IDENTIFIER ::= { mib 1 }
interfaces OBJECT IDENTIFIER ::= { mib 2 }
at OBJECT IDENTIFIER ::= { mib 3 }
ip OBJECT IDENTIFIER ::= { mib 4 }
icmp OBJECT IDENTIFIER ::= { mib 5 }
tcp OBJECT IDENTIFIER ::= { mib 6 }
udp OBJECT IDENTIFIER ::= { mib 7 }
egp OBJECT IDENTIFIER ::= { mib 8 }
-- object types
-- the System group
sysDescr OBJECT-TYPE
SYNTAX OCTET STRING
ACCESS read-only
STATUS mandatory
::= { system 1 }
sysObjectID OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
ACCESS read-only
STATUS mandatory
::= { system 2 }
sysUpTime OBJECT-TYPE
SYNTAX TimeTicks
ACCESS read-only
STATUS mandatory
::= { system 3 }
-- the Interfaces group
ifNumber OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
::= { interfaces 1 }
-- the Interfaces table
ifTable OBJECT-TYPE
SYNTAX SEQUENCE OF IfEntry
ACCESS read-write
STATUS mandatory
::= { interfaces 2 }
ifEntry OBJECT-TYPE
SYNTAX IfEntry
ACCESS read-write
STATUS mandatory
::= { ifTable 1 }
IfEntry ::= SEQUENCE {
ifIndex
INTEGER,
ifDescr
OCTET STRING,
ifType
INTEGER,
ifMtu
INTEGER,
ifSpeed
Gauge,
ifPhysAddress
OCTET STRING,
ifAdminStatus
INTEGER,
ifOperStatus
INTEGER,
ifLastChange
TimeTicks,
ifInOctets
Counter,
ifInUcastPkts
Counter,
ifInNUcastPkts
Counter,
ifInDiscards
Counter,
ifInErrors
Counter,
ifInUnknownProtos
Counter,
ifOutOctets
Counter,
ifOutUcastPkts
Counter,
ifOutNUcastPkts
Counter,
ifOutDiscards
Counter,
ifOutErrors
Counter,
ifOutQLen
Gauge
}
ifIndex OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
::= { ifEntry 1 }
ifDescr OBJECT-TYPE
SYNTAX OCTET STRING
ACCESS read-only
STATUS mandatory
::= { ifEntry 2 }
ifType OBJECT-TYPE
SYNTAX INTEGER {
other(1), -- none of the following
regular1822(2),
hdh1822(3),
ddn-x25(4),
rfc877-x25(5),
ethernet-csmacd(6),
iso88023-csmacd(7),
iso88024-tokenBus(8),
iso88025-tokenRing(9),
iso88026-man(10),
starLan(11),
proteon-10MBit(12),
proteon-80MBit(13),
hyperchannel(14),
fddi(15),
lapb(16),
sdlc(17),
t1-carrier(18),
cept(19),
basicIsdn(20),
primaryIsdn(21),
-- proprietary serial
propPointToPointSerial(22)
}
ACCESS read-only
STATUS mandatory
::= { ifEntry 3 }
ifMtu OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
::= { ifEntry 4 }
ifSpeed OBJECT-TYPE
SYNTAX Gauge
ACCESS read-only
STATUS mandatory
::= { ifEntry 5 }
ifPhysAddress OBJECT-TYPE
SYNTAX OCTET STRING
ACCESS read-only
STATUS mandatory
::= { ifEntry 6 }
ifAdminStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1), -- ready to pass packets
down(2),
testing(3) -- in some test mode
}
ACCESS read-write
STATUS mandatory
::= { ifEntry 7 }
ifOperStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1), -- ready to pass packets
down(2),
testing(3) -- in some test mode
}
ACCESS read-only
STATUS mandatory
::= { ifEntry 8 }
ifLastChange OBJECT-TYPE
SYNTAX TimeTicks
ACCESS read-only
STATUS mandatory
::= { ifEntry 9 }
ifInOctets OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ifEntry 10 }
ifInUcastPkts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ifEntry 11 }
ifInNUcastPkts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ifEntry 12 }
Picking up right where the last part left off, we're still in the interfaces counters, so let's keep the counters rolling ๐โจ
ifInDiscards OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ifEntry 13 }
ifInErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ifEntry 14 }
ifInUnknownProtos OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ifEntry 15 }
ifOutOctets OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ifEntry 16 }
ifOutUcastPkts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ifEntry 17 }
ifOutNUcastPkts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ifEntry 18 }
ifOutDiscards OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ifEntry 19 }
ifOutErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ifEntry 20 }
ifOutQLen OBJECT-TYPE
SYNTAX Gauge
ACCESS read-only
STATUS mandatory
::= { ifEntry 21 }
Next up is the Address Translation group ๐ฆ Think of it as the little lookup table that maps physical addresses to network addresses, and every object in it is read-write, so you can poke at it.
-- the Address Translation group
atTable OBJECT-TYPE
SYNTAX SEQUENCE OF AtEntry
ACCESS read-write
STATUS mandatory
::= { at 1 }
atEntry OBJECT-TYPE
SYNTAX AtEntry
ACCESS read-write
STATUS mandatory
::= { atTable 1 }
AtEntry ::= SEQUENCE {
atIfIndex
INTEGER,
atPhysAddress
OCTET STRING,
atNetAddress
NetworkAddress
}
atIfIndex OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-write
STATUS mandatory
::= { atEntry 1 }
atPhysAddress OBJECT-TYPE
SYNTAX OCTET STRING
ACCESS read-write
STATUS mandatory
::= { atEntry 2 }
atNetAddress OBJECT-TYPE
SYNTAX NetworkAddress
ACCESS read-write
STATUS mandatory
::= { atEntry 3 }
Then comes the IP group ๐
This is where the IP-level objects live, including the forwarding switch, which has two named values: gateway(1) and host(2).
-- the IP group
ipForwarding OBJECT-TYPE
SYNTAX INTEGER {
gateway(1), -- entity forwards datagrams
host(2) -- entity does NOT forward datagrams
}
ACCESS read-only
STATUS mandatory
::= { ip 1 }
ipDefaultTTL OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-write
STATUS mandatory
::= { ip 2 }
ipInReceives OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 3 }
ipInHdrErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 4 }
ipInAddrErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 5 }
ipForwDatagrams OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 6 }
ipInUnknownProtos OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 7 }
ipInDiscards OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 8 }
ipInDelivers OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 9 }
ipOutRequests OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 10 }
ipOutDiscards OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 11 }
ipOutNoRoutes OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 12 }
ipReasmTimeout OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
::= { ip 13 }
ipReasmReqds OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 14 }
ipReasmOKs OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 15 }
ipReasmFails OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 16 }
ipFragOKs OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 17 }
ipFragFails OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 18 }
ipFragCreates OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { ip 19 }
Now we're at the IP Interface table ๐ธ Each entry lists an address, its interface index, a netmask, and a broadcast address field, all read-only.
-- the IP Interface table
ipAddrTable OBJECT-TYPE
SYNTAX SEQUENCE OF IpAddrEntry
ACCESS read-only
STATUS mandatory
::= { ip 20 }
ipAddrEntry OBJECT-TYPE
SYNTAX IpAddrEntry
ACCESS read-only
STATUS mandatory
::= { ipAddrTable 1 }
IpAddrEntry ::= SEQUENCE {
ipAdEntAddr
IpAddress,
ipAdEntIfIndex
INTEGER,
ipAdEntNetMask
IpAddress,
ipAdEntBcastAddr
INTEGER
}
ipAdEntAddr OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-only
STATUS mandatory
::= { ipAddrEntry 1 }
ipAdEntIfIndex OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
::= { ipAddrEntry 2 }
ipAdEntNetMask OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-only
STATUS mandatory
::= { ipAddrEntry 3 }
ipAdEntBcastAddr OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
::= { ipAddrEntry 4 }
And last but not least for this stretch, the IP Routing table ๐ง This one is read-write, and every route entry carries a destination, an interface index, four metrics, a next hop, a type, a protocol, and an age.
-- the IP Routing table
ipRoutingTable OBJECT-TYPE
SYNTAX SEQUENCE OF IpRouteEntry
ACCESS read-write
STATUS mandatory
::= { ip 21 }
ipRouteEntry OBJECT-TYPE
SYNTAX IpRouteEntry
ACCESS read-write
STATUS mandatory
::= { ipRoutingTable 1 }
IpRouteEntry ::= SEQUENCE {
ipRouteDest
IpAddress,
ipRouteIfIndex
INTEGER,
ipRouteMetric1
INTEGER,
ipRouteMetric2
INTEGER,
ipRouteMetric3
INTEGER,
ipRouteMetric4
INTEGER,
ipRouteNextHop
IpAddress,
ipRouteType
INTEGER,
ipRouteProto
INTEGER,
ipRouteAge
INTEGER
}
ipRouteDest OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-write
STATUS mandatory
::= { ipRouteEntry 1 }
ipRouteIfIndex OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-write
STATUS mandatory
::= { ipRouteEntry 2 }
ipRouteMetric1 OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-write
STATUS mandatory
::= { ipRouteEntry 3 }
ipRouteMetric2 OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-write
STATUS mandatory
::= { ipRouteEntry 4 }
ipRouteMetric3 OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-write
STATUS mandatory
::= { ipRouteEntry 5 }
okay so the IP routing table wraps up here, then we get the ICMP counters, the TCP stats, and the start of the TCP connections table ๐งโจ
ipRouteMetric4 OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-write
STATUS mandatory
::= { ipRouteEntry 6 }
ipRouteNextHop OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-write
STATUS mandatory
::= { ipRouteEntry 7 }
ipRouteType OBJECT-TYPE
SYNTAX INTEGER {
other(1), -- none of the following
invalid(2), -- an invalidated route
-- route to directly
direct(3), -- connected (sub-)network
-- route to a non-local
remote(4), -- host/network/sub-network
}
ACCESS read-write
STATUS mandatory
::= { ipRouteEntry 8 }
ipRouteProto OBJECT-TYPE
SYNTAX INTEGER {
other(1), -- none of the following
-- non-protocol information
-- e.g., manually
local(2), -- configured entries
-- set via a network
netmgmt(3), -- management protocol
-- obtained via ICMP,
icmp(4), -- e.g., Redirect
-- the following are
-- gateway routing protocols
egp(5),
ggp(6),
hello(7),
rip(8),
is-is(9),
es-is(10),
ciscoIgrp(11),
bbnSpfIgp(12),
oigp(13)
}
ACCESS read-only
STATUS mandatory
::= { ipRouteEntry 9 }
ipRouteAge OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-write
STATUS mandatory
::= { ipRouteEntry 10 }
-- the ICMP group
icmpInMsgs OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 1 }
icmpInErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 2 }
icmpInDestUnreachs OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 3 }
icmpInTimeExcds OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 4 }
icmpInParmProbs OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 5 }
icmpInSrcQuenchs OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 6 }
icmpInRedirects OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 7 }
icmpInEchos OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 8 }
icmpInEchoReps OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 9 }
icmpInTimestamps OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 10 }
icmpInTimestampReps OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 11 }
icmpInAddrMasks OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 12 }
icmpInAddrMaskReps OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 13 }
icmpOutMsgs OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 14 }
icmpOutErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 15 }
icmpOutDestUnreachs OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 16 }
icmpOutTimeExcds OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 17 }
icmpOutParmProbs OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 18 }
icmpOutSrcQuenchs OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 19 }
icmpOutRedirects OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 20 }
icmpOutEchos OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 21 }
icmpOutEchoReps OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 22 }
icmpOutTimestamps OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 23 }
icmpOutTimestampReps OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 24 }
icmpOutAddrMasks OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 25 }
icmpOutAddrMaskReps OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { icmp 26 }
-- the TCP group
tcpRtoAlgorithm OBJECT-TYPE
SYNTAX INTEGER {
other(1), -- none of the following
constant(2), -- a constant rto
rsre(3), -- MIL-STD-1778, Appendix B
vanj(4) -- Van Jacobson's algorithm [11]
}
ACCESS read-only
STATUS mandatory
::= { tcp 1 }
tcpRtoMin OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
::= { tcp 2 }
tcpRtoMax OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
::= { tcp 3 }
tcpMaxConn OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
::= { tcp 4 }
tcpActiveOpens OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { tcp 5 }
tcpPassiveOpens OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { tcp 6 }
tcpAttemptFails OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { tcp 7 }
tcpEstabResets OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { tcp 8 }
tcpCurrEstab OBJECT-TYPE
SYNTAX Gauge
ACCESS read-only
STATUS mandatory
::= { tcp 9 }
tcpInSegs OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { tcp 10 }
tcpOutSegs OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { tcp 11 }
tcpRetransSegs OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { tcp 12 }
-- the TCP connections table
tcpConnTable OBJECT-TYPE
SYNTAX SEQUENCE OF TcpConnEntry
ACCESS read-only
STATUS mandatory
::= { tcp 13 }
tcpConnEntry OBJECT-TYPE
SYNTAX TcpConnEntry
ACCESS read-only
STATUS mandatory
::= { tcpConnTable 1 }
TcpConnEntry ::= SEQUENCE {
tcpConnState
INTEGER,
tcpConnLocalAddress
IpAddress,
tcpConnLocalPort
INTEGER (0..65535),
tcpConnRemAddress
IpAddress,
tcpConnRemPort
INTEGER (0..65535)
}
tcpConnState OBJECT-TYPE
SYNTAX INTEGER {
closed(1),
listen(2),
synSent(3),
synReceived(4),
established(5),
finWait1(6),
finWait2(7),
closeWait(8),
lastAck(9),
closing(10),
timeWait(11)
}
ACCESS read-only
STATUS mandatory
::= { tcpConnEntry 1 }
tcpConnLocalAddress OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-only
STATUS mandatory
::= { tcpConnEntry 2 }
tcpConnLocalPort OBJECT-TYPE
SYNTAX INTEGER (0..65535)
ACCESS read-only
STATUS mandatory
::= { tcpConnEntry 3 }
tcpConnRemAddress OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-only
STATUS mandatory
::= { tcpConnEntry 4 }
tcpConnRemPort OBJECT-TYPE
SYNTAX INTEGER (0..65535)
ACCESS read-only
STATUS mandatory
::= { tcpConnEntry 5 }
-- the UDP group
udpInDatagrams OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { udp 1 }
udpNoPorts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { udp 2 }
udpInErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { udp 3 }
udpOutDatagrams OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { udp 4 }
-- the EGP group
egpInMsgs OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { egp 1 }
egpInErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { egp 2 }
egpOutMsgs OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { egp 3 }
egpOutErrors OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
::= { egp 4 }
-- the EGP Neighbor table
egpNeighTable OBJECT-TYPE
SYNTAX SEQUENCE OF EgpNeighEntry
ACCESS read-only
STATUS mandatory
::= { egp 5 }
egpNeighEntry OBJECT-TYPE
SYNTAX EgpNeighEntry
ACCESS read-only
STATUS mandatory
::= { egpNeighTable 1 }
EgpNeighEntry ::= SEQUENCE {
egpNeighState
INTEGER,
egpNeighAddr
IpAddress
}
egpNeighState OBJECT-TYPE
SYNTAX INTEGER {
idle(1),
acquisition(2),
down(3),
up(4),
cease(5)
}
ACCESS read-only
STATUS mandatory
::= { egpNeighEntry 1 }
egpNeighAddr OBJECT-TYPE
SYNTAX IpAddress
ACCESS read-only
STATUS mandatory
::= { egpNeighEntry 2 }
END
7. Acknowledgements ๐ธ
Okay, bestie, a huge thank-you to everyone who made this happen! โจ The first draft of this memo was heavily influenced by the HEMS [5] and SNMP [6] MIBs. ๐
The final version is the result of everyone's suggestions, discussions, and compromises from the members of the IETF MIB working group, and honestly they were all so good at this ๐ซถ:
- Karl Auerbach, Epilogue Technology
- K. Ramesh Babu, Excelan
- Lawrence Besaw, Hewlett-Packard
- Jeffrey D. Case, University of Tennessee at Knoxville
- James R. Davin, Proteon
- Mark S. Fedor, NYSERNet
- Robb Foster, BBN
- Phill Gross, The MITRE Corporation
- Bent Torp Jensen, Convergent Technology
- Lee Labarre, The MITRE Corporation
- Dan Lynch, Advanced Computing Environments
- Keith McCloghrie, The Wollongong Group
- Dave Mackie, 3Com/Bridge
- Craig Partridge, BBN (chair)
- Jim Robertson, 3Com/Bridge
- Marshall T. Rose, The Wollongong Group
- Greg Satz, cisco
- Martin Lee Schoffstall, Rensselaer Polytechnic Institute
- Lou Steinberg, IBM
- Dean Throop, Data General
- Unni Warrier, Unisys
8. References ๐
- [1] Cerf, V., "IAB Recommendations for the Development of Internet Network Management Standards", RFC 1052, IAB, April 1988.
- [2] Information processing systems - Open Systems Interconnection, "Management Information Services Definition", International Organization for Standardization, Draft Proposal 9595/2, December 1987.
- [3] Information processing systems - Open Systems Interconnection, "Management Information Protocol Specification", International Organization for Standardization, Draft Proposal 9596/2, December 1987.
- [4] Rose M., and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based internets", RFC 1065, TWG, August 1988.
- [5] Partridge C., and G. Trewitt, "The High-Level Entity Management System (HEMS)", RFCs 1021-1024, BBN and Stanford, October 1987.
- [6] Case, J., M. Fedor, M. Schoffstall, and J. Davin, "A Simple Network Management Protocol", RFC 1067, University of Tennessee At Knoxville, NYSERNet, Rensselaer Polytechnic, Proteon, August 1988.
- [7] LaBarre, L., "Structure and Identification of Management Information for the Internet", Internet Engineering Task Force working note, Network Information Center, SRI International, Menlo Park, California, April 1988.
- [8] LaBarre, L., "Transport Layer Management Information: TCP", Internet Engineering Task Force working note in preparation. Network Information Center, SRI International, Menlo Park, California, (unpublished).
- [9] Information processing systems - Open Systems Interconnection, "Specification of Abstract Syntax Notation One (ASN.1)", International Organization for Standardization, International Standard 8824, December 1987.
- [10] Information processing systems - Open Systems Interconnection, "Specification of Basic Encoding Rules for Abstract Notation One (ASN.1)", International Organization for Standardization, International Standard 8825, December 1987.
- [11] Jacobson, V., "Congestion Avoidance and Control", SIGCOMM, 1988, Stanford, California.
๐ฆ where this page comes from
- ietf: rfc1066 1988-08
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms