[フレーム] Skip to main content
Javascript disabled? Like other modern websites, the IETF Datatracker relies on Javascript. Please enable Javascript for full functionality.

Extensions to the generic-interface MIB
RFC 1229

Document Type RFC - Proposed Standard (May 1991)
Obsoleted by RFC 1573
Updated by RFC 1239
Author Keith McCloghrie
Last updated 2013年03月02日
RFC stream Internet Engineering Task Force (IETF)
Formats
IESG Responsible AD (None)
Send notices to (None)
Email authors Email WG IPR References Referenced by Search Lists
RFC 1229
Network Working Group K. McCloghrie, Editor
Request for Comments: 1229 Hughes LAN Systems, Inc.
 May 1991
 Extensions to the Generic-Interface MIB
Status of this Memo
 This RFC contains definitions of managed objects used as experimental
 extensions to the generic interfaces structure of MIB-II. This memo
 is a product of the SNMP Working Group of the Internet Engineering
 Task Force (IETF). This RFC specifies an IAB standards track
 protocol for the Internet community, and requests discussion and
 suggestions for improvements. Please refer to the current edition of
 the "IAB Official Protocol Standards" for the standardization state
 and status of this protocol. 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
 This memo defines an experimental portion of the Management
 Information Base (MIB) for use with network management protocols in
 TCP/IP-based internets. In particular, 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 consists of three
 components. They are:
 RFC 1155 which defines the SMI, the mechanisms used for describing
 and naming objects for the purpose of management. RFC 1212
SNMP Working Group [Page 1]
RFC 1229 Interface MIB Extensions May 1991
 defines a more concise description mechanism, which is wholly
 consistent with the SMI.
 RFC 1156 which 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 which 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. In particular, 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. 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].
SNMP Working Group [Page 2]
RFC 1229 Interface MIB Extensions May 1991
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, irrespective of the type of communication
 media and protocols used on such 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 are not specific to the
 interface-type on which the effort is focusing. In order to avoid
 redundancy, it is better that such objects be defined as extensions
 to the generic interface group, rather than defined 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 allow a network manager to
 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, dependent on the particular type of interface.
 After testing, the object ifExtnsTestResult can be read to determine
 the outcome. If an agent cannot perform the test, ifExtnsTestResult
 is set to so indicate. The object ifExtnsTestCode can be used to
 provide further test-specific or interface-specific (or even
 enterprise-specific) information concerning 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 remain
 set until the next test is invoked. In the (rare) event that the
SNMP Working Group [Page 3]
RFC 1229 Interface MIB Extensions May 1991
 invocation of tests by two network managers were to overlap, then
 there would be a possibility that the first test's results might be
 overwritten by the second test's results prior to the first results
 being 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 ensuring that
 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 completion of the test. In
 these circumstances, communication with the management station
 invoking the test may be lost until after completion of the test.
 The agent should make every effort to transmit a response to the
 request that invoked the test prior to 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.
SNMP Working Group [Page 4]
RFC 1229 Interface MIB Extensions May 1991
5. Definitions
 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
SNMP Working Group [Page 5]
RFC 1229 Interface MIB Extensions May 1991
 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 }
 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
SNMP Working Group [Page 6]
RFC 1229 Interface MIB Extensions May 1991
 recognize this value."
 ::= { ifExtnsEntry 2 }
 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
SNMP Working Group [Page 7]
RFC 1229 Interface MIB Extensions May 1991
 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 }
 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 }
 --
 -- Generic Interface Test Table
 --
 -- This group of objects is optional, but if the table is
 -- implemented, all objects in the table must be implemented.
SNMP Working Group [Page 8]
RFC 1229 Interface MIB Extensions May 1991
 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
 }
 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 }
SNMP Working Group [Page 9]
RFC 1229 Interface MIB Extensions May 1991
 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 }
 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
SNMP Working Group [Page 10]
RFC 1229 Interface MIB Extensions May 1991
 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 }
 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 }
 ifExtnsTestCode OBJECT-TYPE
 SYNTAX OBJECT IDENTIFIER
 ACCESS read-only
 STATUS mandatory
 DESCRIPTION
SNMP Working Group [Page 11]
RFC 1229 Interface MIB Extensions May 1991
 "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 }
 -- 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/
SNMP Working Group [Page 12]
RFC 1229 Interface MIB Extensions May 1991
 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
SNMP Working Group [Page 13]
RFC 1229 Interface MIB Extensions May 1991
 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 defined in this document were originally
 proposed as a part of a MIB for management of IEEE 802.5 Token Ring
 networks, as prepared by:
 Eric B. Decker, cisco Systems, Inc., and
 Richard Fox, Synoptics Inc.
 In addition, the comments of the following individuals are
 acknowledged:
 James R. Davin, MIT-LCS
 Stan Froyd, ACC
 Frank Kastenholz, Racal Interlan
SNMP Working Group [Page 14]
RFC 1229 Interface MIB Extensions May 1991
 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.
SNMP Working Group [Page 15]
RFC 1229 Interface MIB Extensions May 1991
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
SNMP Working Group [Page 16]

AltStyle によって変換されたページ (->オリジナル) /