RFC 1229
Extensions to the generic-interface MIB
RFC 1229: Extensions to the Generic-Interface MIB π
Okay bestie, let's start with the title-block tea β. This RFC was written by K. McCloghrie, who was the editor while working at Hughes LAN Systems, Inc., and it came out of the Network Working Group in May 1991 πΈ. It's an IAB standards track protocol (the Status section says so π ). The title block doesn't list anything it obsoletes or updates, so it's standing on its own β¨.
Status of This Memo π
This RFC has definitions of managed objects used as experimental extensions to the generic interfaces structure of MIB-II π. It's a product of the SNMP Working Group of the Internet Engineering Task Force (IETF) π§. It specifies an IAB standards track protocol for the Internet community, and it's literally asking for discussion and suggestions for improvements π«Ά. For the standardization state and status of this protocol, check the current edition of the "IAB Official Protocol Standards" π. Distribution of this memo is unlimited π.
Table of Contents π¦
1. Abstract .............................................. 1
2. The Network Management Framework....................... 1
3. Objects ............................................... 2
4. Overview .............................................. 3
4.1 Generic Interface Extension Table .................... 3
4.2 Generic Interface Test Table ......................... 3
4.3 Generic Receive Address Table ........................ 4
5. Definitions ........................................... 5
6. Acknowledgements ...................................... 14
7. References ............................................ 15
8. Security Considerations................................ 15
9. Author's Address....................................... 16
1. Abstract β¨
Okay so this memo defines an experimental portion of the Management Information Base (MIB) π. It's for use with network management protocols in TCP/IP-based internets. Specifically, it defines managed object types as experimental extensions to the generic interfaces structure of MIB-II π₯.
2. The Network Management Framework π¦
The Internet-standard Network Management Framework is made of three components, and they're giving teamwork π:
- RFC 1155 defines the SMI, the mechanisms used for describing and naming objects for the purpose of management. RFC 1212 defines a more concise description mechanism, which is wholly consistent with the SMI.
- RFC 1156 defines MIB-I, the core set of managed objects for the Internet suite of protocols. RFC 1213, defines MIB-II, an evolution of MIB-I based on implementation experience and new operational requirements.
- RFC 1157 defines the SNMP, the protocol used for network access to managed objects.
The Framework permits new objects to be defined for the purpose of experimentation and evaluation π§ͺ.
3. Objects πΈ
Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB ποΈ. Objects in the MIB are defined using the subset of Abstract Syntax Notation One (ASN.1) [7] defined in the SMI. Each object has a name, a syntax, and an encoding β¨. The name is an object identifier, an administratively assigned name, which 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, termed the OBJECT DESCRIPTOR, to also refer to the object type π .
The syntax of an object type defines the abstract data structure corresponding to that object type, and the ASN.1 language is used for this purpose. However, the SMI [3] purposely restricts the ASN.1 constructs which may be used. These restrictions are explicitly made 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 being transmitted on the network π‘.
The SMI specifies the use of the basic encoding rules of ASN.1 [8], subject to the additional requirements imposed by the SNMP π.
Section 5 contains the specification of all object types in this section of the MIB. The object types are defined using the conventions specified in the SMI, as amended by the extensions specified in [9] π.
4. Overview π§
The Internet Standard MIB [4,6] contains a group of management objects pertaining to a network device's generic network interface(s) π. These objects are generic in the sense that they apply to all network interfaces, no matter the type of communication media and protocols used on those interfaces. This has proved to be necessary but not sufficient π. There are efforts underway to define additional MIB objects which are specific to particular media and lower-level (subnetwork-layer and below) protocol stacks.
However, some of these efforts have identified objects which are required (or at least useful), but which aren't specific to the interface-type the effort is focusing on. To avoid redundancy, it's better to define such objects as extensions to the generic interface group, rather than in multiple specific-interface-type MIBs π.
This memo defines the resultant extensions to the generic interface group. These extensions are spread over three tables: the generic Interface Extension table, the generic Interface Test table, and the generic Receive Address table π.
4.1. Generic Interface Extension Table
This table consists of new objects applicable to all types of subnetwork interface π.
4.2. Generic Interface Test Table
This section defines objects which let a network manager instruct an agent to test an interface for various faults π₯. A few common types of tests are defined in this document, but most will be defined elsewhere, depending on the particular type of interface. After testing, the object ifExtnsTestResult can be read to find out the outcome. If an agent cannot perform the test, ifExtnsTestResult is set to indicate that π. The object ifExtnsTestCode can be used to provide further test-specific or interface-specific (or even enterprise-specific) information about the outcome of the test β¨.
Only one test can be in progress on each interface at any one time. If one test is in progress when another test is invoked, the second test is rejected. Some agents may reject a test when a prior test is active on another interface π ββοΈ.
When a test is invoked, the identity of the originator of the request and the request-id are saved by the agent in the objects ifExtnsTestRequestId and ifExtnsTestCommunity. These values stay set until the next test is invoked π. In the (rare) event that the invocations of tests by two network managers overlap, the first test's results might get overwritten by the second test's results before the first results are read. This unlikely circumstance can be detected by a network manager retrieving ifExtnsTestCommunity and ifExtnsTestRequestId at the same time as the test results are retrieved, and then making sure the results are for the desired request π΅οΈββοΈ.
In general, a Management station must not retransmit a request to invoke a test for which it does not receive a response. Instead, it properly inspects an agent's MIB to determine if the invocation was successful. The invocation request is retransmitted only if the invocation was unsuccessful π.
Some tests may require the interface to be taken off-line, or may even require the agent to be rebooted after the test completes. In these circumstances, communication with the management station that invoked the test may be lost until after the test completes π΄. The agent should make every effort to transmit a response to the request that invoked the test before losing communication. When the agent is restored to normal service, the results of the test are properly made available in the appropriate objects π .
Note that this requires that the ifIndex value assigned to an interface must be unchanged even if the test causes a reboot π¨.
An agent must reject any test for which it cannot (perhaps due to resource constraints) make available at least the minimum amount of information after that test completes π«Ά.
4.3. Generic Receive Address Table
This table contains objects relating to an interface's support for receiving packets/frames at more than one address on the same interface π¬.
5. Definitions π
Here's the MIB module, bestie π§:
RFC1229-MIB DEFINITIONS ::= BEGIN
-- Extensions to MIB-II's Generic Interface Table
IMPORTS
experimental, Counter FROM RFC1155-SMI
DisplayString, PhysAddress FROM RFC1213-MIB
OBJECT-TYPE FROM RFC-1212;
ifExtensions OBJECT IDENTIFIER ::= { experimental 6 }
-- Generic Interface Extension Table
--
-- This group of objects is mandatory for all types of
-- subnetwork interface.
ifExtnsTable OBJECT-TYPE
SYNTAX SEQUENCE OF IfExtnsEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A list of interfaces extension entries.
The number of entries is given by the value
of ifNumber, defined in [4,6]."
::= { ifExtensions 1 }
ifExtnsEntry OBJECT-TYPE
SYNTAX IfExtnsEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"An extension to the interfaces entry,
defined in [4,6], containing additional
objects at the subnetwork layer and below
for a particular interface."
INDEX { ifExtnsIfIndex }
::= { ifExtnsTable 1 }
IfExtnsEntry ::=
SEQUENCE {
ifExtnsIfIndex
INTEGER,
ifExtnsChipSet
OBJECT IDENTIFIER,
ifExtnsRevWare
DisplayString,
ifExtnsMulticastsTransmittedOks
Counter,
ifExtnsBroadcastsTransmittedOks
Counter,
ifExtnsMulticastsReceivedOks
Counter,
ifExtnsBroadcastsReceivedOks
Counter,
ifExtnsPromiscuous
INTEGER
}
ifExtnsIfIndex OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of this object identifies the
interface for which this entry contains
extended management information. The value
of this object for a particular interface
has the same value as the ifIndex object,
defined in [4,6], for the same interface."
::= { ifExtnsEntry 1 }
okay so we're still deep in the definitions and the vibe is all about the hardware and firmware under each interface, plus the counters for what actually gets sent and received π π
ifExtnsChipSet OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This object identifies the hardware chip
set being used in the interface. The
assignment of OBJECT IDENTIFIERs to various
types of hardware chip sets is managed
by the IANA. If the hardware chip set is
unknown, the object identifier
unknownChipSet OBJECT IDENTIFIER ::= { 0 0 }
is returned. Note that unknownChipSet is a
syntactically valid object identifier, and
any conformant implementation of ASN.1 and
the BER must be able to generate and
recognize this value."
::= { ifExtnsEntry 2 }
ifExtnsChipSet is where you find the hardware chip set running on the interface π§ IANA handles the OBJECT IDENTIFIER assignments for the different chip sets. If the chip set is unknown, you get back unknownChipSet, which is { 0 0 }. ngl this one is iconic because it's a totally valid OID, so any conformant ASN.1 and BER implementation has to be able to generate and recognize it β¨
ifExtnsRevWare OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..255))
ACCESS read-only
STATUS mandatory
DESCRIPTION
"An arbitrary octet string that describes
the firmware version of this interface.
It is intended that this should be human
readable. It must only contain ASCII
printable characters. Typically this
will be the firmware version of the main
interface software."
::= { ifExtnsEntry 3 }
ifExtnsMulticastsTransmittedOks OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The count of frames successfully
transmitted to a subnetwork or link-layer
multicast destination address other than a
broadcast address. For a MAC layer protocol,
this includes both Group and Functional
addresses."
::= { ifExtnsEntry 4 }
ifExtnsBroadcastsTransmittedOks OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The count of frames successfully
transmitted to a subnetwork or link-layer
broadcast addresses. It does not include
frames sent to a multicast address."
::= { ifExtnsEntry 5 }
ifExtnsMulticastsReceivedOks OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The count of frames successfully received
that are directed to an active subnetwork
or link-layer multicast address (for a MAC
layer protocol, this includes both Group and
Functional addresses). This does not include
frames directed to a broadcast address, nor
frames received with errors."
::= { ifExtnsEntry 6 }
ifExtnsBroadcastsReceivedOks OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The count of frames successfully received
that are directed to a subnetwork or
link-layer broadcast address. This does not
include frames received with errors."
::= { ifExtnsEntry 7 }
ifExtnsRevWare is the firmware version, and it's meant to be human readable πΈ it's an octet string up to 255 long, and it must only contain ASCII printable characters. Typically it's the firmware version of the main interface software, so it's giving "the version you actually care about" energy π
Now the four counters, which are giving math-bestie realness π Each one only counts frames that were successfully sent or received:
- ifExtnsMulticastsTransmittedOks counts frames sent to a multicast destination (not broadcast). For a MAC layer protocol, that includes both Group and Functional addresses.
- ifExtnsBroadcastsTransmittedOks counts frames sent to broadcast addresses, and multicast frames don't count here.
- ifExtnsMulticastsReceivedOks counts frames received that are directed to an active multicast address (again, Group and Functional for MAC). Broadcast frames and frames with errors don't count.
- ifExtnsBroadcastsReceivedOks counts frames received that are directed to a broadcast address. Frames with errors don't count.
ifExtnsPromiscuous OBJECT-TYPE
SYNTAX INTEGER {
true(1),
false(2)
}
ACCESS read-only -- Note: agent implementors are
-- encouraged to extend this
-- access to read-write if that
-- makes sense in their agent.
STATUS mandatory
DESCRIPTION
"This object has a value of false(2) if
this interface only accepts packets/frames
that are addressed to this station. This
object has a value of true(1) when the
station accepts all packets/frames
transmitted on the media. The value
true(1) is only legal on certain types of
media. If legal, setting this object to a
value of true(1) may require the interface
to be reset before becoming effective."
::= { ifExtnsEntry 8 }
ifExtnsPromiscuous is the mode switch π¦ false(2) means the interface only takes packets and frames addressed to this station, and true(1) means it accepts everything on the media. true(1) is only legal on certain media types, and if it's legal, flipping it on may need an interface reset before it kicks in π agent implementors are encouraged to make this read-write if it makes sense in their agent, and that's in the comment, so no cap it's optional extra credit π
Next up is the test table, and the header says it's optional, but if you implement it, you have to implement every object in it π«Ά
--
-- Generic Interface Test Table
--
-- This group of objects is optional, but if the table is
-- implemented, all objects in the table must be implemented.
ifExtnsTestTable OBJECT-TYPE
SYNTAX SEQUENCE OF IfExtnsTestEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"This table contains one entry per interface."
::= { ifExtensions 2 }
ifExtnsTestEntry OBJECT-TYPE
SYNTAX IfExtnsTestEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"An entry containing objects for invoking
tests on an interface."
INDEX { ifExtnsTestIfIndex }
::= { ifExtnsTestTable 1 }
IfExtnsTestEntry ::=
SEQUENCE {
ifExtnsTestIfIndex
INTEGER,
ifExtnsTestCommunity
OCTET STRING,
ifExtnsTestRequestId
INTEGER,
ifExtnsTestType
OBJECT IDENTIFIER,
ifExtnsTestResult
INTEGER,
ifExtnsTestCode
OBJECT IDENTIFIER
}
The table itself is ifExtnsTestTable, with one entry per interface π§ Each entry is indexed by ifExtnsTestIfIndex, and it's basically the bundle of test info for one interface. The IfExtnsTestEntry sequence is the row layout: the index, the community, the request id, the test type, the test result, and the test code π
ifExtnsTestIfIndex OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of this object identifies the
interface for which this entry contains
information on interface tests. The value
of this object for a particular interface
has the same value as the ifIndex object,
defined in [4,6], for the same interface."
::= { ifExtnsTestEntry 1 }
ifExtnsTestCommunity OBJECT-TYPE
SYNTAX OCTET STRING
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This object contains the name of the SNMP
authentication community [5] which was used
to authenticate the SNMP Message which invoked
the current or most recent test on this
interface. If the authentication community
is unknown or undefined, this value contains
the zero-length string."
::= { ifExtnsTestEntry 2 }
ifExtnsTestRequestId OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This object contains the value of the
request-id field in the SNMP PDU [5] which
invoked the current or most recent test on
this interface. If the request-id is
unknown or undefined, this value contains
the value zero."
::= { ifExtnsTestEntry 3 }
ifExtnsTestIfIndex is the key for each row, and it has the same value as ifIndex for that interface, which is referenced as [4,6] in the spec π ifExtnsTestCommunity holds the name of the SNMP authentication community [5] that authenticated the message which kicked off the current or most recent test. If the community is unknown or undefined, it's the zero-length string. And ifExtnsTestRequestId holds the request-id field from that SNMP PDU [5], or zero if it's unknown or undefined β¨
ifExtnsTestType OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
ACCESS read-write
STATUS mandatory
DESCRIPTION
"A control variable used to start and stop
operator-initiated interface tests.
Most OBJECT IDENTIFIER values assigned
to tests are defined elsewhere, in associ-
ation with specific types of interface.
However, this document assigns a value for
a full-duplex loopback test, and defines the
special meanings of the subject identifier:
noTest OBJECT IDENTIFIER ::= { 0 0 }
When the value noTest is written to this
object, no action is taken unless a test is
in progress, in which case the test is
aborted. Writing any other value to this
object is only valid when no test is
currently in progress, in which case the
indicated test is initiated.
Note that noTest is a syntactically valid
object identifier, and any conformant
implementation of ASN.1 and BER must be able
to generate and recognize this value.
When read, this object always returns
the most recent value that ifExtnsTestType
was set to. If it has not been set since
the last initialization of the network
management subsystem on the agent, a value
of noTest is returned."
::= { ifExtnsTestEntry 4 }
wellKnownTests OBJECT IDENTIFIER ::= { ifExtensions 4 }
-- full-duplex loopback test
testFullDuplexLoopBack OBJECT IDENTIFIER ::=
{ wellKnownTests 1 }
Okay the ifExtnsTestType object is the start and stop button for operator-initiated interface tests π Most test OIDs live elsewhere with their interface types, but this doc gives a value for a full-duplex loopback test and defines the special noTest value. Writing noTest does nothing unless a test is running, in which case it aborts it. Writing any other value only works when no test is running, and then that test starts. When you read it, you get back the most recent value that was written, or noTest if nothing has been set since the network management subsystem was last initialized on the agent π
The loopback test gets its own OID, testFullDuplexLoopBack, under wellKnownTests π§
ifExtnsTestResult OBJECT-TYPE
SYNTAX INTEGER {
none(1), -- no test yet requested
success(2),
inProgress(3),
notSupported(4),
unAbleToRun(5), -- due to state of system
aborted(6),
failed(7)
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This object contains the result of the most
recently requested test, or the value
none(1) if no tests have been requested since
the last reset. Note that this facility
provides no provision for saving the results
of one test when starting another, as could
be required if used by multiple managers
concurrently."
::= { ifExtnsTestEntry 5 }
ifExtnsTestResult is the scoreboard for the most recently requested test π It's read-only, and it's none(1) if nothing's been requested since the last reset. Heads up, bestie: this doesn't save results when you start a new test, so if several managers run tests at the same time, a result can get overwritten π
Okay so this is the last stretch of the Definitions, and ifExtnsTestCode is giving "more details on the test result" energy πβ¨
ifExtnsTestCode OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This object contains a code which contains
more specific information on the test result,
for example an error-code after a failed
test. Error codes and other values this
object may take are specific to the type of
interface and/or test. However, one subject
identifier:
testCodeUnknown OBJECT IDENTIFIER ::= { 0 0 }
for use if no additional result code is
available.
Note that testCodeUnknown is a
syntactically valid object identifier, and
any conformant implementation of ASN.1 and
the BER must be able to generate and
recognize this value."
::= { ifExtnsTestEntry 6 }
Bestie, the testCodeUnknown thing is so iconic π¦ It's { 0 0 }, a totally valid object identifier, and it's the "I got nothing extra to tell you" value π
Any conformant ASN.1 and BER setup has to be able to generate it and recognize it π«Ά
Now the Generic Receive Address Table, which is the group that's mandatory for any interface that can receive packets or frames addressed to more than one address πΈ
-- Generic Receive Address Table
--
-- This group of objects is mandatory for all types of
-- interfaces which can receive packets/frames addressed to
-- more than one address.
ifExtnsRcvAddrTable OBJECT-TYPE
SYNTAX SEQUENCE OF IfExtnsRcvAddrEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"This table contains an entry for each
address (broadcast, multicast, or uni-cast)
for which the system will receive packets/
frames on a particular interface. When an
interface is operating in promiscuous mode,
entries are only required for those addresses
for which the system would receive frames
were it not operating in promiscuous mode."
::= { ifExtensions 3 }
ifExtnsRcvAddrEntry OBJECT-TYPE
SYNTAX IfExtnsRcvAddrEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A list of objects identifying an address
for which the system will accept packets/
frames on a particular interface."
INDEX { ifExtnsRcvAddrIfIndex, ifExtnsRcvAddress }
::= { ifExtnsRcvAddrTable 1 }
IfExtnsRcvAddrEntry ::=
SEQUENCE {
ifExtnsRcvAddrIfIndex
INTEGER,
ifExtnsRcvAddress
PhysAddress,
ifExtnsRcvAddrStatus
INTEGER
}
ifExtnsRcvAddrIfIndex OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The value of ifIndex, defined in [4,6], of an
interface which recognizes this entry's
address."
::= { ifExtnsRcvAddrEntry 1 }
ifExtnsRcvAddress OBJECT-TYPE
SYNTAX PhysAddress
ACCESS read-only
STATUS mandatory
DESCRIPTION
"An address for which the system will accept
packets/frames on this entry's interface."
::= { ifExtnsRcvAddrEntry 2 }
ifExtnsRcvAddrStatus OBJECT-TYPE
SYNTAX INTEGER {
other(1),
invalid(2),
volatile(3),
nonVolatile(4)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This object has the value nonVolatile(4)
for those entries in the table which are
valid and will not be deleted by the next
restart of the managed system. Entries
having the value volatile(3) are valid
and exist, but have not been saved, so
that will not exist after the next
restart of the managed system. Entries
having the value other(1) are valid and
exist but are not classified as to whether
they will continue to exist after the next
restart. Entries having the value invalid(2)
are invalid and do not represent an address
for which an interface accepts frames.
Setting an object instance to one of
the values other(1), volatile(3), or
nonVolatile(4) causes the corresponding
entry to exist or continue to exist, and
to take on the respective status as regards
the next restart of the managed system.
Setting an object instance to the value
invalid(2) causes the corresponding entry
to become invalid or cease to exist.
It is an implementation-specific matter
as to whether the agent removes an
invalidated entry from the table.
Accordingly, management stations must be
prepared to receive tabular information
from agents that corresponds to entries not
currently in use. Proper interpretation of
such entries requires examination of the
relevant ifExtnsRcvAddrStatus object
instance."
DEFVAL { volatile }
::= { ifExtnsRcvAddrEntry 3 }
END
6. Acknowledgements π
Most of the MIB objects in this doc were first proposed as part of a MIB for managing IEEE 802.5 Token Ring networks π₯ That MIB was prepared by:
- Eric B. Decker, cisco Systems, Inc., and Richard Fox, Synoptics Inc.
Thank you also to these legends, whose comments are acknowledged π
- James R. Davin, MIT-LCS
- Stan Froyd, ACC
- Frank Kastenholz, Racal Interlan
- Dave Perkins, 3Com
- Marshall T. Rose, PSI
- Bob Stewart, Xyplex
- David Waitzman, BBN
- Wengyik Yeong, PSI
7. References π
- [1] Cerf, V., "IAB Recommendations for the Development of Internet Network Management Standards", RFC 1052, NRI, April 1988.
- [2] Cerf, V., "Report of the Second Ad Hoc Network Management Review Group", RFC 1109, NRI, August 1989.
- [3] Rose M., and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based internets", RFC 1155, Performance Systems International, Hughes LAN Systems, May 1990.
- [4] McCloghrie K., and M. Rose, "Management Information Base for Network Management of TCP/IP-based internets", RFC 1156, Hughes LAN Systems, Performance Systems International, May 1990.
- [5] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network Management Protocol", RFC 1157, SNMP Research, Performance Systems International, Performance Systems International, MIT Laboratory for Computer Science, May 1990.
- [6] Rose M., Editor, "Management Information Base for Network Management of TCP/IP-based internets: MIB-II", RFC 1213, Performance Systems International, March 1991.
- [7] Information processing systems - Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1), International Organization for Standardization, International Standard 8824, December 1987.
- [8] 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.
- [9] Rose, M., and K. McCloghrie, Editors, "Concise MIB Definitions", RFC 1212, Performance Systems International, Hughes LAN Systems, March 1991.
8. Security Considerations π
Security issues are not discussed in this memo. π Please take this seriously, bestie: this document does not cover security at all.
9. Author's Address π
Keith McCloghrie
Hughes LAN Systems, Inc.
1225 Charleston Road
Mountain View, CA 94043
Phone: (415) 966-7934
EMail: kzm@hls.com
That's the whole thing, bestie! πβ¨
π¦ where this page comes from
- ietf: rfc1229 1991-05
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms