RFC 1156
Management Information Base for network management of TCP/IP-based internets
Bestie, RFC 1156 is literally the blueprint for how TCP/IP networks get monitored and managed, and it's giving main character energy πβ¨
Title block tea β
This one is Management Information Base for Network Management of TCP/IP-based internets π¦. It came from K. McCloghrie at Hughes LAN Systems and M. Rose at Performance Systems International, dated May 1990 πΈ. It's part of the Network Working Group, and it obsoletes RFC 1066 π , which makes sense because this is basically a re-release of that one with a glow-up π.
1. Status of this Memo ................................... 1
2. IAB Policy Statement .................................. 2
3. Introduction .......................................... 2
4. Objects ............................................... 6
4.1 Object Groups ........................................ 6
4.2 Format of Definitions ................................ 7
5. Object Definitions .................................... 8
5.1 The System Group ..................................... 9
5.2 The Interfaces Group ................................. 11
5.2.1 The Interfaces Table ............................... 11
5.3 The Address Translation Group ........................ 23
5.4 The IP Group ......................................... 26
5.4.1 The IP Address Table ............................... 34
5.4.2 The IP Routing Table ............................... 36
5.5 The ICMP Group ....................................... 43
5.6 The TCP Group ........................................ 53
5.7 The UDP Group ........................................ 62
5.8 The EGP Group ........................................ 64
5.8.1 The EGP Neighbor Table ............................. 65
6. Definitions ........................................... 68
7. Acknowledgements ...................................... 89
8. References ............................................ 90
9. Security Considerations................................ 91
10. Authors' Addresses.................................... 91
1. Status of this Memo β¨
Okay so this RFC is a re-release of RFC 1066 π. The technical content is unchanged. The only real changes are to the "Status of this Memo", "IAB Policy Statement", and "Introduction" sections, plus a few minor typo fixes π. Same brain, new outfit π .
This memo gives us the first version of the Management Information Base (MIB) for network management protocols in TCP/IP-based internets, for the short term π§. Together with its companion memos (one on how management information is structured, one on 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 Standard Protocol for the Internet community. TCP/IP implementations on the Internet that are network manageable are expected to adopt and implement this spec π«Ά.
The Internet Activities Board recommends that all IP and TCP implementations be network manageable. That implies implementing the Internet MIB (RFC-1156) and at least one of the two recommended management protocols, which are SNMP (RFC-1157) or CMOT (RFC-1095). Heads up, though: at this time SNMP is a full Internet standard and CMOT is a draft standard β. For more specific info on where this standard applies, check the Host and Gateway Requirements RFCs π.
Please refer to the latest edition of the "IAB Official Protocol Standards" RFC for current info on the state and status of standard Internet protocols π.
Distribution of this memo is unlimited π¦.
2. IAB Policy Statement π
This MIB spec is the first edition of an evolving document that defines the variables needed for monitoring and controlling different parts of the Internet. Not every group of variables is mandatory for every Internet component π.
For example, the EGP group is mandatory for gateways using EGP, but not for hosts that aren't supposed to be running EGP. Similarly, the TCP group is mandatory for hosts running TCP, but not for gateways that aren't running it. What IS mandatory, however, is that all variables of a group be supported if any element of the group is supported. π₯
More 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 Internet components πΈ. The responsible working group(s) will keep refining this spec π«Ά.
3. Introduction π
Okay, the backstory is so good. As reported in RFC 1052, IAB Recommendations for the Development of Internet Network Management Standards [1], the Internet Activities Board told the Internet Engineering Task Force (IETF) to create two new working groups for network management π. One was in charge of further specifying and defining what goes into the Management Information Base. The other was in charge of defining changes to the Simple Network Management Protocol (SNMP) so it could handle the short-term needs of vendors and operators. For the long term, the OSI network management framework was going to be examined, using the ISO CMIS/CMIP [2,3] framework as a basis π§ .
Two documents came out of this. RFC 1065 defined the Structure of Management Information (SMI) [4], and RFC 1066 defined the Management Information Base (MIB) [5]. Both were designed to be compatible with both SNMP and the OSI network management framework π¦.
This strategy was a total hit in the short term π₯. Internet-based network management tech was fielded by both the research and commercial communities within a few months, so parts of the Internet community became network manageable in a timely fashion π.
Then, as RFC 1109, Report of the Second Ad Hoc Network Management Review Group [6], reported, the requirements of the SNMP and OSI network management frameworks turned out to be more different than anyone expected π. So the requirement for compatibility between the SMI/MIB and both frameworks was suspended π.
The IAB has designated SNMP, SMI, and the initial Internet MIB as full "Standard Protocols" with "Recommended" status π. With that move, the IAB recommends that all IP and TCP implementations be network manageable, and that the ones that are network manageable are expected to adopt and implement the SMI, MIB, and SNMP π«Ά.
So the current network management framework for TCP/IP-based internets has three pieces π§:
- Structure and Identification of Management Information for TCP/IP-based Internets, which describes how managed objects in the MIB are defined, as set forth in RFC 1155 [7].
- Management Information Base for Network Management of TCP/IP-based Internets, which describes the managed objects in the MIB, as set forth in this memo.
- The Simple Network Management Protocol, which defines the protocol used to manage these objects, as set forth in RFC 1157 [8].
The IAB also urged the working groups to be "extremely sensitive to the need to keep SNMP simple" π. It also recommends that the MIB working group use the MIB definitions in the High-Level Entity Management Systems (HEMS) RFC 1024 [9], the initial SNMP specification [10], and the CMIS/CMIP memos [11,12] as its starting inputs π.
So the list of managed objects defined here was built by taking only the elements considered essential π . Since they're essential, there's no need to make individual objects optional. Instead, all compliant implementations will contain all applicable objects defined in this memo (see below) π«Ά.
This essentials-only approach is NOT restrictive β¨, since the SMI in the companion memo gives us three extensibility mechanisms π. One is adding new standard objects through new versions of the MIB. Two is adding widely-available but non-standard objects through the multilateral subtree. Three is adding private objects through the enterprises subtree. These additional objects can be used for vendor-specific elements, and also for experimentation to help figure out which other objects are essential π§ͺ.
The main criterion for being considered essential was for an object to be contained in all of the above referenced MIB definitions. A few other objects were included, but only if the MIB working group believed they were truly 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) [13] π.
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 serves to uniquely identify a specific instantiation of the object. For human convenience, we often use a textual string, called the OBJECT DESCRIPTOR, to also refer to the object type π¦.
The syntax of an object type defines the abstract data structure that corresponds to that object type, and the ASN.1 language is used for this purpose. 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. Implicitly tied to the notion of 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 [14] π .
4.1. Object Groups β¨
okay so the managed objects list is already super lean π¦ every object is essential, so nothing is optional. no "maybe you get this one" situations. instead, the objects get sorted into groups:
- System
- Interfaces
- Address Translation
- IP
- ICMP
- TCP
- UDP
- EGP
there are two reasons for these groups π first, they give object identifiers a neat place to live. second, they tell agent implementers which objects they have to build. the rule is: if a group's meaning applies to your implementation, then you must implement every object in that group. for example, an implementation must implement the EGP group if and only if it implements the EGP protocol. so basically EGP is a package deal π
4.2. Format of Definitions πΈ
the next section has every object type in the MIB π following the conventions of the companion memo, each object type gets these fields:
OBJECT:a textual name (the OBJECT DESCRIPTOR) plus its matching OBJECT IDENTIFIERSyntax:the abstract syntax, written in ASN.1. this must resolve to an instance of the ASN.1 typeObjectSyntaxdefined in the SMIDefinition:a text description of what the object type means. implementations should make sure their interpretation matches this definition, because this MIB is meant for multi-vendor environments. so consistent meaning across every machine is vital π«ΆAccess:one ofread-only,read-write,write-only, ornot-accessibleStatus:one ofmandatory,optional, orobsolete
5. Object Definitions π
here's the full MIB module, copied exactly:
RFC1156-MIB
DEFINITIONS ::= BEGIN
IMPORTS
mgmt, OBJECT-TYPE, NetworkAddress, IpAddress,
Counter, Gauge, TimeTicks
FROM RFC1155-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 bestie π
OBJECT:
-------
sysDescr { system 1 }
Syntax:
OCTET STRING
this is a text description of the entity π it should include the full name and version of the system's hardware type, operating-system software, and networking software. and it is mandatory that this only contains printable ASCII characters.
Access: read-only. Status: mandatory.
OBJECT:
-------
sysObjectID { system 2 }
Syntax:
OBJECT IDENTIFIER
this is the vendor's official ID for the network management subsystem inside the entity π§ it's allocated inside the SMI enterprises subtree (1.3.6.1.4.1), so you can tell at a glance "what kind of box" is being managed. for example, if vendor "Flintstones, Inc." got the subtree 1.3.6.1.4.1.42, it could give its "Fred Router" the identifier 1.3.6.1.4.1.42.1.1 πͺ¨
Access: read-only. Status: mandatory.
OBJECT:
-------
sysUpTime { system 3 }
Syntax:
TimeTicks
this is how long, in hundredths of a second, it has been 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 also mandatory for every system. literally everyone has to do this one π
OBJECT:
-------
ifNumber { interfaces 1 }
Syntax:
INTEGER
this is the number of network interfaces (no matter their current state) that this system can send and receive IP datagrams on π
Access: read-only. Status: mandatory.
5.2.1. The Interfaces Table π
OBJECT:
-------
ifTable { interfaces 2 }
Syntax:
SEQUENCE OF IfEntry
this is a list of interface entries. the number of entries is given by the value of ifNumber π
Access: read-write. Status: mandatory.
OBJECT:
-------
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
}
each interface entry holds objects from the subnetwork layer and below, for one particular interface π§©
Access: read-write. Status: mandatory.
okay now we break down each piece of an interface entry, bestie π
OBJECT:
-------
ifIndex { ifEntry 1 }
Syntax:
INTEGER
this is a unique value for each interface. it ranges from 1 up to the value of ifNumber. each interface's value has to stay constant at least from one re-initialization of the entity's network management system to the next one π
Access: read-only. Status: mandatory.
OBJECT:
-------
ifDescr { ifEntry 2 }
Syntax:
OCTET STRING
this is a text string with info about the interface π·οΈ it should include the manufacturer's name, the product name, and the version of the hardware interface. the string is meant to be shown to a human, so it must not contain anything but printable ASCII characters β¨
Access: read-only. Status: mandatory.
OBJECT:
-------
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)
}
this is the type of interface, sorted by the physical/link/network protocol(s) sitting "below" IP in the protocol stack π₯
Access: read-only. Status: mandatory.
OBJECT:
-------
ifMtu { ifEntry 4 }
Syntax:
INTEGER
this is the size of the biggest IP datagram that can be sent or received on the interface, measured in octets π¦
Access: read-only. Status: mandatory.
OBJECT:
-------
ifSpeed { ifEntry 5 }
Syntax:
Gauge
this is an estimate of the interface's current bandwidth, in bits per second π for interfaces whose bandwidth doesn't vary, or where no accurate estimate is possible, this object should contain the nominal bandwidth.
Access: read-only. Status: mandatory.
OBJECT:
-------
ifPhysAddress { ifEntry 6 }
Syntax:
OCTET STRING
this is the interface's address at the protocol layer sitting "below" IP in the stack π for interfaces without such an address (like a serial line), this object should contain an octet string of zero length π«§
Access: read-only. Status: mandatory.
OBJECT:
-------
ifAdminStatus { ifEntry 7 }
Syntax:
INTEGER {
up(1), -- ready to pass packets
down(2),
testing(3) -- in some test mode
}
this is the desired state of the interface ποΈ the testing(3) state means no operational packets can be passed β οΈ
Access:
read-write.
Status:
mandatory.
Okay, so the ifOperStatus object is the interface's current vibe check π
Its state can be up(1) (ready to pass packets β¨), down(2), or testing(3) (in some test mode π§ͺ). When it's testing(3), no operational packets can get through, so it's basically on a little time-out π
OBJECT:
-------
ifOperStatus { ifEntry 8 }
Syntax:
INTEGER {
up(1), -- ready to pass packets
down(2),
testing(3) -- in some test mode
}
The current operational state of the interface, bestie. Remember that testing(3) means no operational packets can be passed. π§ͺ
Access:
read-only.
Status:
mandatory.
Next up is ifLastChange π°οΈ This one is a TimeTicks value that records the sysUpTime at the moment the interface entered its current operational state. Now here's the tea β If that state was entered before the local network management subsystem last re-initialized, this object just holds a zero value. Zero means "it's been a whole thing, but I can't really say when" π
OBJECT:
-------
ifLastChange { ifEntry 9 }
Syntax:
TimeTicks
The value of sysUpTime at the time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this object contains a zero value. π°οΈ
Access:
read-only.
Status:
mandatory.
Now we're in the counter era π’ ifInOctets tracks the total number of octets received on the interface, and that includes the framing characters too. Every single byte, even the wrapper β¨
OBJECT:
-------
ifInOctets { ifEntry 10 }
Syntax:
Counter
The total number of octets received on the interface, including framing characters. π¦
Access:
read-only.
Status:
mandatory.
ifInUcastPkts counts the (subnet) unicast packets that got delivered up to a higher-layer protocol. Think of it as the packets that were like "this one's for you" and actually made it π
OBJECT:
-------
ifInUcastPkts { ifEntry 11 }
Syntax:
Counter
The number of (subnet) unicast packets delivered to a higher-layer protocol. π
Access:
read-only.
Status:
mandatory.
ifInNUcastPkts is the non-unicast crew π’ That means subnet broadcast or subnet multicast packets that got delivered up to a higher-layer protocol. Group chat energy, fr fr π¬
OBJECT:
-------
ifInNUcastPkts { ifEntry 12 }
Syntax:
Counter
The number of non-unicast (i.e., subnet broadcast or subnet multicast) packets delivered to a higher-layer protocol. π’
Access:
read-only.
Status:
mandatory.
ifInDiscards is for the inbound packets that got deliberately dropped ποΈ Not because anything was broken, mind you. No errors were detected, but they got chosen to be discarded anyway, which means they never reached a higher-layer protocol. One possible reason is freeing up buffer space, which is honestly a very mature move π§ββοΈ
OBJECT:
-------
ifInDiscards { ifEntry 13 }
Syntax:
Counter
The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. π§ββοΈ
Access:
read-only.
Status:
mandatory.
ifInErrors counts the inbound packets that were actually broken π They had errors that stopped them from being deliverable to a higher-layer protocol. Oof, not the vibe β¨
OBJECT:
-------
ifInErrors { ifEntry 14 }
Syntax:
Counter
The number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. π
Access:
read-only.
Status:
mandatory.
ifInUnknownProtos is for the packets that showed up at the interface and got tossed because the protocol was unknown or unsupported π ββοΈ Not everyone speaks your language, and that's okay π
OBJECT:
-------
ifInUnknownProtos { ifEntry 15 }
Syntax:
Counter
The number of packets received via the interface which were discarded because of an unknown or unsupported protocol. π ββοΈ
Access:
read-only.
Status:
mandatory.
Time to flip to the outbound side π ifOutOctets is the total number of octets transmitted out of the interface, framing characters included. Everything that left the building π€
OBJECT:
-------
ifOutOctets { ifEntry 16 }
Syntax:
Counter
The total number of octets transmitted out of the interface, including framing characters. π€
Access:
read-only.
Status:
mandatory.
ifOutUcastPkts counts every packet that higher-level protocols asked to be sent to a subnet-unicast address. That includes the ones that got discarded or never actually sent, so it's all about the request, not the outcome π«Ά
OBJECT:
-------
ifOutUcastPkts { ifEntry 17 }
Syntax:
Counter
The total number of packets that higher-level protocols requested be transmitted to a subnet-unicast address, including those that were discarded or not sent. π«Ά
Access:
read-only.
Status:
mandatory.
ifOutNUcastPkts is the same deal, just for the non-unicast crew π£ Subnet broadcast and subnet multicast addresses, and yes, that still includes the ones that got discarded or never sent π
OBJECT:
-------
ifOutNUcastPkts { ifEntry 18 }
Syntax:
Counter
The total number of packets that higher-level protocols requested be transmitted to a non-unicast (i.e., a subnet broadcast or subnet multicast) address, including those that were discarded or not sent. π£
Access:
read-only.
Status:
mandatory.
ifOutDiscards is the outbound version of ifInDiscards ποΈ These are the outbound packets that got chosen to be discarded even though no errors were detected to stop them from being transmitted. Again, one possible reason is freeing up buffer space π§ββοΈ
OBJECT:
-------
ifOutDiscards { ifEntry 19 }
Syntax:
Counter
The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. π§ββοΈ
Access:
read-only.
Status:
mandatory.
ifOutErrors counts the outbound packets that couldn't be transmitted because of errors π Sad, but at least it's tracked π
OBJECT:
-------
ifOutErrors { ifEntry 20 }
Syntax:
Counter
The number of outbound packets that could not be transmitted because of errors. π
Access:
read-only.
Status:
mandatory.
Last one in this group: ifOutQLen is a Gauge showing the length of the output packet queue, measured in packets π It's basically the line outside the club πͺ©
OBJECT:
-------
ifOutQLen { ifEntry 21 }
Syntax:
Gauge
The length of the output packet queue (in packets). π
Access:
read-only.
Status:
mandatory.
5.3. The Address Translation Group β¨
Implementation of the Address Translation group is mandatory for all systems. No skipping this one, bestie π«Ά
The Address Translation group has one table, and it's the union across all interfaces of the translation tables that convert a NetworkAddress (for example, an IP address) into a subnetwork-specific address πΊοΈ The document doesn't have a better word for that subnetwork-specific address, so it just calls it a "physical" address. Not the most glamorous name, but it gets the job done π
Here are a couple of examples of what those translation tables look like π For broadcast media where ARP is in use, the translation 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. Iykyk π§
atTable is the big table itself π It holds the NetworkAddress to "physical" address equivalences. Some interfaces don't use translation tables at all, because DDN-X.25 has an algorithmic method instead. So if every interface is that kind, the Address Translation table is empty, meaning zero entries. Empty, but make it make sense πΈ
OBJECT:
-------
atTable { at 1 }
Syntax:
SEQUENCE OF AtEntry
The Address Translation tables contain the NetworkAddress to "physical" address equivalences. Some interfaces do not use translation tables for determining address equivalences (e.g., DDN-X.25 has an algorithmic method); if all interfaces are of this type, then the Address Translation table is empty, i.e., has zero entries. π
Access:
read-write.
Status:
mandatory.
Now for atEntry, which is one row in that table π Each entry is one NetworkAddress to "physical" address equivalence. Here's how the entry is structured:
OBJECT:
-------
atEntry { atTable 1 }
Syntax:
AtEntry ::= SEQUENCE {
atIfIndex
INTEGER,
atPhysAddress
OCTET STRING,
atNetAddress
NetworkAddress
}
Each entry contains one NetworkAddress to "physical" address equivalence. π
Access:
read-write.
Status:
mandatory.
Okay, so every entry has three pieces, and we're going to look at each one individually π
OBJECT:
-------
atIfIndex { atEntry 1 }
Syntax:
INTEGER
atIfIndex tells you which interface this equivalence is effective on π The interface with that index value is the same one identified by the same value of ifIndex. Matching IDs, no drama π«Ά
Access:
read-write.
Status:
mandatory.
Here's the atPhysAddress, which is the media-dependent "physical" address π§© It depends on the medium, so it's going to look different depending on what network you're on.
OBJECT:
-------
atPhysAddress { atEntry 2 }
Syntax:
OCTET STRING
The media-dependent "physical" address. π§©
Access:
read-write.
Status:
mandatory.
Last but definitely not least is atNetAddress π This is the NetworkAddress, like an IP address, that corresponds to that media-dependent "physical" address. It's the matchmaker of the whole entry π
OBJECT:
-------
atNetAddress { atEntry 3 }
Syntax:
NetworkAddress
The NetworkAddress (e.g., the IP address) corresponding to the media-dependent "physical" address. π
Access:
read-write.
Status:
mandatory.
5.4. The IP Group πΈ
Okay bestie, this is the big one π Every system has to implement the IP group, no exceptions. Here's the full lineup, so grab your snacks π
ipForwarding is the "are you a gateway or a host?" switch π§
OBJECT:
-------
ipForwarding { ip 1 }
Syntax:
INTEGER {
gateway(1), -- entity forwards datagrams
host(2) -- entity does NOT forward datagrams
}
Definition:
The indication of whether this entity is acting as an IP
gateway in respect to the forwarding of datagrams
received by, but not addressed to, this entity. IP
gateways forward datagrams; Hosts do not (except those
Source-Routed via the host).
Access:
read-only.
Status:
mandatory.
ipDefaultTTL is the default Time-To-Live stamped on datagrams this entity starts itself, for when the transport layer doesn't hand over a TTL π¦
OBJECT:
-------
ipDefaultTTL { ip 2 }
Syntax:
INTEGER
Definition:
The default value inserted into the Time-To-Live field of
the IP header of datagrams originated at this entity,
whenever a TTL value is not supplied by the transport
layer protocol.
Access:
read-write.
Status:
mandatory.
ipInReceives counts every input datagram that arrives from an interface, errors and all π₯
OBJECT:
-------
ipInReceives { ip 3 }
Syntax:
Counter
Definition:
The total number of input datagrams received from
interfaces, including those received in error.
Access:
read-only.
Status:
mandatory.
ipInHdrErrors is the drama queen counter for datagrams tossed because of header problems π
OBJECT:
-------
ipInHdrErrors { ip 4 }
Syntax:
Counter
Definition:
The number of input datagrams discarded due to errors in
their IP headers, including bad checksums, version number
mismatch, other format errors, time-to-live exceeded,
errors discovered in processing their IP options, etc.
Access:
read-only.
Status:
mandatory.
ipInAddrErrors keeps track of datagrams with a destination address this entity isn't allowed to receive π That includes invalid addresses (like 0.0.0.0) and unsupported Classes (like Class E). Non-gateways get extra credit here too, since a datagram with a destination that isn't local gets counted as well.
OBJECT:
-------
ipInAddrErrors { ip 5 }
Syntax:
Counter
Definition:
The number of input datagrams discarded because the IP
address in their IP header's destination field was not a
valid address to be received at this entity. This count
includes invalid addresses (e.g., 0.0.0.0) and addresses
of unsupported Classes (e.g., Class E). For entities
which are not IP Gateways and therefore do not forward
datagrams, this counter includes datagrams discarded
because the destination address was not a local address.
Access:
read-only.
Status:
mandatory.
ipForwDatagrams counts the datagrams this entity wasn't the final stop for, where it went looking for a route to pass them along π
OBJECT:
-------
ipForwDatagrams { ip 6 }
Syntax:
Counter
Definition:
The number of input datagrams for which this entity was
not their final IP destination, as a result of which an
attempt was made to find a route to forward them to that
final destination. In entities which do not act as IP
Gateways, this counter will include only those packets
which were Source-Routed via this entity, and the
Source-Route option processing was successful.
Access:
read-only.
Status:
mandatory.
ipInUnknownProtos is for locally addressed datagrams that arrive fine but speak a protocol nobody here recognises π€·ββοΈ
OBJECT:
-------
ipInUnknownProtos { ip 7 }
Syntax:
Counter
Definition:
The number of locally-addressed datagrams received
successfully but discarded because of an unknown or
unsupported protocol.
Access:
read-only.
Status:
mandatory.
ipInDiscards covers datagrams that were fine to process but got dropped anyway, like when buffer space runs out π«§ It doesn't count datagrams dropped while waiting for reassembly.
OBJECT:
-------
ipInDiscards { ip 8 }
Syntax:
Counter
Definition:
The number of input IP datagrams for which no problems
were encountered to prevent their continued processing,
but which were discarded (e.g. for lack of buffer space).
Note that this counter does not include any datagrams
discarded while awaiting re-assembly.
Access:
read-only.
Status:
mandatory.
ipInDelivers is the victory lap π It counts input datagrams that were successfully handed up to IP user-protocols, ICMP included.
OBJECT:
-------
ipInDelivers { ip 9 }
Syntax:
Counter
Definition:
The total number of input datagrams successfully
delivered to IP user-protocols (including ICMP).
Access:
read-only.
Status:
mandatory.
ipOutRequests counts the outgoing datagrams that local IP user-protocols (ICMP included) asked IP to send π€ Forwarded datagrams are NOT part of this count, they live in ipForwDatagrams.
OBJECT:
-------
ipOutRequests { ip 10 }
Syntax:
Counter
Definition:
The total number of IP datagrams which local IP user-
protocols (including ICMP) supplied to IP in requests for
transmission. Note that this counter does not include
any datagrams counted in ipForwDatagrams.
Access:
read-only.
Status:
mandatory.
ipOutDiscards is the outgoing version of the discard counter ποΈ Here, a datagram that was fine to send but got dropped anyway (like for lack of buffer space) lands in this count. Heads up, this one also picks up forwarded datagrams if they get discarded under that same discretionary criterion.
OBJECT:
-------
ipOutDiscards { ip 11 }
Syntax:
Counter
Definition:
The number of output IP datagrams for which no problem
was encountered to prevent their transmission to their
destination, but which were discarded (e.g., for lack of
buffer space). Note that this counter would include
datagrams counted in ipForwDatagrams if any such packets
met this (discretionary) discard criterion.
Access:
read-only.
Status:
mandatory.
ipOutNoRoutes counts datagrams that got binned because there was no route to their destination πΊοΈβ¨ Forwarded datagrams that hit this "no-route" wall are included too.
OBJECT:
-------
ipOutNoRoutes { ip 12 }
Syntax:
Counter
Definition:
The number of IP datagrams discarded because no route
could be found to transmit them to their destination.
Note that this counter includes any packets counted in
ipForwDatagrams which meet this "no-route" criterion.
Access:
read-only.
Status:
mandatory.
ipReasmTimeout tells you the maximum number of seconds received fragments get to hang out while waiting to be reassembled β³
OBJECT:
-------
ipReasmTimeout { ip 13 }
Syntax:
INTEGER
Definition:
The maximum number of seconds which received fragments
are held while they are awaiting reassembly at this
entity.
Access:
read-only.
Status:
mandatory.
ipReasmReqds counts the IP fragments that showed up needing reassembly at this entity π§©
OBJECT:
-------
ipReasmReqds { ip 14 }
Syntax:
Counter
Definition:
The number of IP fragments received which needed to be
reassembled at this entity.
Access:
read-only.
Status:
mandatory.
ipReasmOKs is the glow-up count: IP datagrams that were successfully re-assembled π
OBJECT:
-------
ipReasmOKs { ip 15 }
Syntax:
Counter
Definition:
The number of IP datagrams successfully re-assembled.
Access:
read-only.
Status:
mandatory.
ipReasmFails counts reassembly failures π It's whatever went wrong, timeouts and errors included. Also, heads up: it's NOT always a count of discarded fragments, because some reassembly algorithms (notably the one in RFC 815) can lose track of how many fragments there are once they start combining them as they arrive.
OBJECT:
-------
ipReasmFails { ip 16 }
Syntax:
Counter
Definition:
The number of failures detected by the IP re-assembly
algorithm (for whatever reason: timed out, errors, etc).
Note that this is not necessarily a count of discarded IP
fragments since some algorithms (notably RFC 815's) can
lose track of the number of fragments by combining them
as they are received.
Access:
read-only.
Status:
mandatory.
ipFragOKs counts the datagrams that got fragmented successfully at this entity βοΈπ
OBJECT:
-------
ipFragOKs { ip 17 }
Syntax:
Counter
Definition:
The number of IP datagrams that have been successfully
fragmented at this entity.
Access:
read-only.
Status:
mandatory.
ipFragFails is for datagrams that needed fragmenting here but couldn't be, like when their "Don't Fragment" flag was set π« Those get discarded and counted here.
OBJECT:
-------
ipFragFails { ip 18 }
Syntax:
Counter
Definition:
The number of IP datagrams that have been discarded
because they needed to be fragmented at this entity but
could not be, e.g., because their "Don't Fragment" flag
was set.
Access:
read-only.
Status:
mandatory.
ipFragCreates is the final one in the group π It counts the datagram fragments generated by fragmentation at this entity.
OBJECT:
-------
ipFragCreates { ip 19 }
Syntax:
Counter
Definition:
The number of IP datagram fragments that have been
generated as a result of fragmentation at this entity.
Access:
read-only.
Status:
mandatory.
5.4.1. The IP Address Table π
okay so the Ip Address table is where this entity keeps all its IP addressing info, and it's giving main character 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.
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.
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 has an entry for every route this entity currently knows about πΊοΈ heads up though: what happens when you try to read an entry that doesn't exist depends on which network management protocol you're using, ngl π
OBJECT:
-------
ipRoutingTable { ip 21 }
Syntax:
SEQUENCE OF IpRouteEntry
Definition:
This entity's IP Routing table.
Access:
read-write.
Status:
mandatory.
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.
We now consider the individual components of each route in the IP Routing Table:
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 so the ICMP group is where we keep the receipts for all the ICMP traffic π§Ύ. bestie, implementing this group is mandatory for every system, no exceptions π . it holds the ICMP input and output statistics, so basically every message that comes in or goes out gets tallied up here β¨
ngl, individual counters for ICMP message (sub-)codes got left out of this version of the MIB. it was for simplicity, not because they're not important π
OBJECT:
-------
icmpInMsgs { icmp 1 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
this one is the big total π. it's the number of ICMP messages the entity received, and it also counts everything that icmpInErrors counts, so it's the main umbrella number π
OBJECT:
-------
icmpInErrors { icmp 2 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the broken ones π. this counts the ICMP messages the entity got but decided had errors, like bad ICMP checksums, bad lengths, and so on π§
OBJECT:
-------
icmpInDestUnreachs { icmp 3 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
how many Destination Unreachable messages came in π« β¨
OBJECT:
-------
icmpInTimeExcds { icmp 4 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
tracks the Time Exceeded messages that were received β°πΈ
OBJECT:
-------
icmpInParmProbs { icmp 5 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Parameter Problem messages received π§©
OBJECT:
-------
icmpInSrcQuenchs { icmp 6 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Source Quench messages received π
OBJECT:
-------
icmpInRedirects { icmp 7 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Redirect messages received π§
OBJECT:
-------
icmpInEchos { icmp 8 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Echo (request) messages received, aka the pings coming in π
OBJECT:
-------
icmpInEchoReps { icmp 9 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Echo Reply messages received, which are the answers to pings π
OBJECT:
-------
icmpInTimestamps { icmp 10 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Timestamp (request) messages received β±οΈ
OBJECT:
-------
icmpInTimestampReps { icmp 11 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Timestamp Reply messages received π
OBJECT:
-------
icmpInAddrMasks { icmp 12 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Address Mask Request messages received π
OBJECT:
-------
icmpInAddrMaskReps { icmp 13 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Address Mask Reply messages received π
OBJECT:
-------
icmpOutMsgs { icmp 14 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
now we flip to the outbound side π€. this is the total number of ICMP messages this entity tried to send. it also includes everything icmpOutErrors counts β¨
OBJECT:
-------
icmpOutErrors { icmp 15 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
this one is for the ICMP messages the entity didn't send because of problems found inside ICMP itself, like running out of buffers π« . errors found outside the ICMP layer don't count here, such as IP being unable to route the resulting datagram. in some implementations there might not be any error types that feed into this counter at all π€·ββοΈ
OBJECT:
-------
icmpOutDestUnreachs { icmp 16 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Destination Unreachable messages sent π
OBJECT:
-------
icmpOutTimeExcds { icmp 17 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Time Exceeded messages sent β
OBJECT:
-------
icmpOutParmProbs { icmp 18 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Parameter Problem messages sent πͺ
OBJECT:
-------
icmpOutSrcQuenchs { icmp 19 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Source Quench messages sent π§οΈ
OBJECT:
-------
icmpOutRedirects { icmp 20 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Redirect messages sent πΊοΈ
OBJECT:
-------
icmpOutEchos { icmp 21 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Echo (request) messages sent, so the pings this entity launched ππ
OBJECT:
-------
icmpOutEchoReps { icmp 22 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Echo Reply messages sent π·
OBJECT:
-------
icmpOutTimestamps { icmp 23 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Timestamp (request) messages sent π°οΈ
OBJECT:
-------
icmpOutTimestampReps { icmp 24 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Timestamp Reply messages sent π
OBJECT:
-------
icmpOutAddrMasks { icmp 25 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Address Mask Request messages sent ποΈ
OBJECT:
-------
icmpOutAddrMaskReps { icmp 26 }
Syntax:
Counter
Access:
read-only.
Status:
mandatory.
the Address Mask Reply messages sent, and that's the outbound side wrapped up π¦π
5.6. The TCP Group π
Okay bestie, if your system implements TCP, the TCP group is mandatory. No cap, it's not optional π
π«Ά Heads up: objects that describe one specific TCP connection are transient. They only exist for as long as that connection does, so don't be shocked when they vanish π¦
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 [15]
}
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 πΈ
Same energy for UDP! If your system implements the UDP protocol, this group is mandatory for you π§
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, the EGP group is mandatory for literally every system that implements the EGP protocol π«Ά no exceptions, no cap.
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 πΈ
so the EGP Neighbor table is where this entity keeps track of its EGP neighbors π§ it's giving neighborhood watch, lowkey iconic.
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.
okay now let's go through each piece of an 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 π
bestie, this is the big MIB module where everything gets officially defined π main character energy.
RFC1156-MIB
DEFINITIONS ::= BEGIN
IMPORTS
mgmt, OBJECT-TYPE, NetworkAddress, IpAddress,
Counter, Gauge, TimeTicks
FROM RFC1155-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 }
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 }
-- 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 }
-- 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 }
-- 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 }
-- 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 }
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 [15] } 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 β¨
Huge thanks to the HEMS [9] and SNMP [10] MIBs, because the very first draft of this memo was heavily shaped by them π
The final version is the result of suggestions, discussions, and compromises from the members of the IETF MIB working group π«Ά
- 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] Cerf, V., "Report of the Second Ad Hoc Network Management Review Group", RFC 1109, IAB, August 1989.
[7] Rose, M., and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based Internets", RFC 1155, Performance Systems International and Hughes LAN Systems, May 1990.
[8] Case, J., M. Fedor, M. Schoffstall, and J. Davin, The Simple Network Management Protocol", RFC 1157, University of Tennessee at Knoxville, Performance Systems International, Performance Systems International, and the MIT Laboratory for Computer Science, May 1990.
[9] Partridge C., and G. Trewitt, "HEMS Variable Definitions", RFC 1024, BBN and Stanford, October 1987.
[10] 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.
[11] 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.
[12] LaBarre, L., "Transport Layer Management Information: TCP", Internet Engineering Task Force working note in preparation. Network Information Center, SRI International, Menlo Park, California, (unpublished).
[13] Information processing systems - Open Systems Interconnection, "Specification of Abstract Syntax Notation One (ASN.1)", International Organization for Standardization, International Standard 8824, December 1987.
[14] 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.
[15] Jacobson, V., "Congestion Avoidance and Control", SIGCOMM, 1988, Stanford, California.
Security Considerations π
Security issues are not discussed in this memo. π No cap, this one is a big deal for anyone thinking about deploying these MIBs, so keep it in mind!
Authors' Addresses π
Keith McCloghrie
The Wollongong Group
1129 San Antonio Road
Palo Alto, CA 04303
Phone: (415) 962-7160
EMail: sytek!kzm@HPLABS.HP.COM
Marshall T. Rose
PSI, Inc.
PSI California Office
P.O. Box 391776
Mountain View, CA 94039
Phone: (415) 961-3380
EMail: mrose@PSI.COM
π¦ where this page comes from
- ietf: rfc1156 1990-05
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms