RFC2024 - Definitions of Managed Objects for Data Link Switc(3)

时间:2005-02-15 来源: 作者: 点击:
-- Statistics Related to Circuits -- ------------------------------------------------------------------- dlswCircuitStat OBJECT IDENTIFIER ::= { dlswCircuit 1 } dlswCircuitStatActives OBJECT-TYPE SYN
  
-- Statistics Related to Circuits
-- -------------------------------------------------------------------
dlswCircuitStat OBJECT IDENTIFIER ::= { dlswCircuit 1 }

dlswCircuitStatActives OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current

DESCRIPTION
"The current number of circuits in dlswCircuitTable that are
not in the disconnected state."
::= { dlswCircuitStat 1 }

dlswCircuitStatCreates OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of entries ever added to dlswCircuitTable,
or reactivated upon exiting `disconnected' state."
::= { dlswCircuitStat 2 }

-- -------------------------------------------------------------------
-- Circuit Table
--
-- This table is the DLSw entity's view of circuits. There will be
-- a conceptual row in the table associated with each data link.
--
-- The chart below lists the various possible combinations of
-- origin and target MAC locations and the number of entries in
-- this Circuit Table:
--
-- number of | Origin End Station Location
-- entries in the |--------------------------------------
-- Circuit Table | internal local remote
-- -----------------------|--------------------------------------
-- Target | internal | NA 2 1
-- End | local | 2 2 1
-- Station | remote | 1 1 NA
-- Location | |
--
-- NA: Not applicable
--
-- Note:
-- (a) IfIndex and RouteInfo are applied only if location is local.
-- (b) TDomain and TAddr are applied only if location is remote.
--
-- Most of statistics related to circuits can be collected
-- from LLC-2 Link Station Table.
-- -------------------------------------------------------------------
dlswCircuitTable OBJECT-TYPE
SYNTAX SEQUENCE OF DlswCircuitEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION

"This table is the circuit representation in the DLSw
entity. Virtual data links are used to represent any internal
end stations. There is a conceptual row associated with
each data link. Thus, for circuits without an intervening
transport connection, there are two conceptual rows
for each circuit.

The table consists of the circuits being established,
established, and as an implementation option, circuits that
have been disconnected. For circuits carried over
transport connections, an entry is created after
the CUR_cs was sent or received. For circuits between
two locally attached devices, or internal virtual MAC
addresses, an entry is created when the equivalent of
CUR_cs sent/received status is reached.

End station 1 (S1) and End station 2 (S2) are used to
represent the two end stations of the circuit.
S1 is always an end station which is locally attached.
S2 may be locally attached or remote. If it is locally
attached, the circuit will be represented by two rows indexed
by (A, B) and (B, A) where A & B are the relevant MACs/SAPs.

The table may be used to store the causes of disconnection of
circuits. It is recommended that the oldest disconnected
circuit entry be removed from this table when the memory
space of disconnected circuits is needed."
::= { dlswCircuit 2 }

dlswCircuitEntry OBJECT-TYPE
SYNTAX DlswCircuitEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
""
INDEX { dlswCircuitS1Mac,
dlswCircuitS1Sap,
dlswCircuitS2Mac,
dlswCircuitS2Sap }
::= { dlswCircuitTable 1 }

DlswCircuitEntry ::= SEQUENCE {
dlswCircuitS1Mac MacAddressNC,
dlswCircuitS1Sap OCTET STRING,
dlswCircuitS1IfIndex INTEGER,
dlswCircuitS1DlcType DlcType,
dlswCircuitS1RouteInfo OCTET STRING,
dlswCircuitS1CircuitId OCTET STRING,

dlswCircuitS1Dlc RowPointer,

dlswCircuitS2Mac MacAddressNC,
dlswCircuitS2Sap OCTET STRING,
dlswCircuitS2Location EndStationLocation,
dlswCircuitS2TDomain OBJECT IDENTIFIER,
dlswCircuitS2TAddress TAddress,
dlswCircuitS2CircuitId OCTET STRING,

dlswCircuitOrigin INTEGER,

dlswCircuitEntryTime TimeTicks,
dlswCircuitStateTime TimeTicks,
dlswCircuitState INTEGER,

dlswCircuitPriority INTEGER,

dlswCircuitFCSendGrantedUnits INTEGER,
dlswCircuitFCSendCurrentWndw INTEGER,
dlswCircuitFCRecvGrantedUnits INTEGER,
dlswCircuitFCRecvCurrentWndw INTEGER,
dlswCircuitFCLargestRecvGranted Gauge32,
dlswCircuitFCLargestSendGranted Gauge32,
dlswCircuitFCHalveWndwSents Counter32,
dlswCircuitFCResetOpSents Counter32,
dlswCircuitFCHalveWndwRcvds Counter32,
dlswCircuitFCResetOpRcvds Counter32,
dlswCircuitDiscReasonLocal INTEGER,
dlswCircuitDiscReasonRemote INTEGER,
dlswCircuitDiscReasonRemoteData OCTET STRING
}

-- ...................................................................
-- Information related to the End Station 1 (S1).
-- ...................................................................
dlswCircuitS1Mac OBJECT-TYPE
SYNTAX MacAddressNC
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The MAC Address of End Station 1 (S1) used for this circuit."
::= { dlswCircuitEntry 1 }

dlswCircuitS1Sap OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(1))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION

"The SAP at End Station 1 (S1) used for this circuit."
::= { dlswCircuitEntry 2 }

dlswCircuitS1IfIndex OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The ifEntry index of the local interface through which S1
can be reached."
::= { dlswCircuitEntry 3 }

dlswCircuitS1DlcType OBJECT-TYPE
SYNTAX DlcType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The DLC protocol in use between the DLSw node and S1."
::= { dlswCircuitEntry 4 }

dlswCircuitS1RouteInfo OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..30))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"If source-route bridging is in use between the DLSw
node and S1, this is the routing information field
describing the path between the two devices.
Otherwise the value will be an OCTET STRING of
zero length."
::= { dlswCircuitEntry 5 }

dlswCircuitS1CircuitId OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0 | 8))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Circuit ID assigned by this DLSw node to this circuit.
The first four octets are the DLC port Id, and
the second four octets are the Data Link Correlator.
If the DLSw SSP was not used to establish this circuit,
the value will be a string of zero length."
::= { dlswCircuitEntry 6 }

dlswCircuitS1Dlc OBJECT-TYPE
SYNTAX RowPointer
MAX-ACCESS read-only
STATUS current

DESCRIPTION
"Points to a conceptual row of the underlying DLC MIB,
which could either be the standard MIBs (e.g., the SDLC),
or an enterprise-specific DLC MIB."
::= { dlswCircuitEntry 7 }

-- ...................................................................
-- Information related to the End Station 2 (S2).
-- ...................................................................
dlswCircuitS2Mac OBJECT-TYPE
SYNTAX MacAddressNC
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The MAC Address of End Station 2 (S2) used for this circuit."
::= { dlswCircuitEntry 8 }

dlswCircuitS2Sap OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(1))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The SAP at End Station 2 (S2) used for this circuit."
::= { dlswCircuitEntry 9 }

dlswCircuitS2Location OBJECT-TYPE
SYNTAX EndStationLocation
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The location of End Station 2 (S2).
If the location of End Station 2 is local, the
interface information will be available in the
conceptual row whose S1 and S2 are the S2 and
the S1 of this conceptual row, respectively."
::= { dlswCircuitEntry 10 }

dlswCircuitS2TDomain OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"If the location of End Station 2 is remote,
this value is the transport domain of the
transport protocol the circuit is running
over. Otherwise, the value is 0.0."
::= { dlswCircuitEntry 11 }

dlswCircuitS2TAddress OBJECT-TYPE
SYNTAX TAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"If the location of End Station 2 is remote,
this object contains the address of the partner
DLSw, else it will be an OCTET STRING of zero length."
::= { dlswCircuitEntry 12 }

dlswCircuitS2CircuitId OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0 | 8))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Circuit ID assigned to this circuit by the partner
DLSw node. The first four octets are the DLC port Id, and
the second four octets are the Data Link Correlator.
If the DLSw SSP was not used to establish this circuit,
the value will be a string of zero length."
::= { dlswCircuitEntry 13 }

-- ...................................................................
dlswCircuitOrigin OBJECT-TYPE
SYNTAX INTEGER {
s1 (1),
s2 (2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object specifies which of the two end stations
initiated the establishment of this circuit."
::= { dlswCircuitEntry 14 }

-- ...................................................................
-- Operational information related to this circuit.
-- ...................................................................
dlswCircuitEntryTime OBJECT-TYPE
SYNTAX TimeTicks
UNITS "hundredths of a second"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The amount of time (in hundredths of a second) since this
circuit table conceptual row was created."
::= { dlswCircuitEntry 15 }

dlswCircuitStateTime OBJECT-TYPE
SYNTAX TimeTicks
UNITS "hundredths of a second"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The amount of time (in hundredths of a second) since this
circuit entered the current state."
::= { dlswCircuitEntry 16 }

dlswCircuitState OBJECT-TYPE
SYNTAX INTEGER {
disconnected (1),
circuitStart (2),
resolvePending (3),
circuitPending (4),
circuitEstablished (5),
connectPending (6),
contactPending (7),
connected (8),
disconnectPending (9),
haltPending (10),
haltPendingNoack (11),
circuitRestart (12),
restartPending (13)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The current state of this circuit. The agent, implementation
specific, may choose to keep entries for some period of time
after circuit disconnect, so the manager can gather the time
and cause of disconnection.

While all of the specified values may be returned from a GET
operation, the only SETable value is `disconnectPending'.
When this value is set, DLSw should perform the appropriate
action given its previous state (e.g., send HALT_DL if the
state was `connected') to bring the circuit down to the
`disconnected' state. Both the partner DLSw and local end
station(s) should be notified as appropriate.

This MIB provides no facility to re-establish a disconnected
circuit, because in DLSw this should be an end station-driven
function."
::= { dlswCircuitEntry 17 }

dlswCircuitPriority OBJECT-TYPE

SYNTAX INTEGER {
unsupported (1),
low (2),
medium (3),
high (4),
highest (5)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The transmission priority of this circuit as understood by
this DLSw node. This value is determined by the two DLSw
nodes at circuit startup time. If this DLSw node does not
support DLSw circuit priority, the value `unsupported' should
be returned."
::= { dlswCircuitEntry 18 }

-- ...................................................................
-- Pacing Objects:
-- These objects are applicable if DLSw is using the SSP circuit
-- pacing protocol to control the flow between the two data links
-- in this circuit.
-- ...................................................................
dlswCircuitFCSendGrantedUnits OBJECT-TYPE
SYNTAX INTEGER (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of paced SSP messages that this DLSw is currently
authorized to send on this circuit before it must stop and
wait for an additional flow control indication from the
partner DLSw.

The value zero should be returned if this circuit is not
running the DLSw pacing protocol."
::= { dlswCircuitEntry 19 }

dlswCircuitFCSendCurrentWndw OBJECT-TYPE
SYNTAX INTEGER (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current window size that this DLSw is using in its role
as a data sender. This is the value by which this DLSw would
increase the number of messages it is authorized to send, if
it were to receive a flow control indication with the bits
specifying `repeat window'.

The value zero should be returned if this circuit is not
running the DLSw pacing protocol."
::= { dlswCircuitEntry 20 }

dlswCircuitFCRecvGrantedUnits OBJECT-TYPE
SYNTAX INTEGER (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current number of paced SSP messages that this DLSw has
authorized the partner DLSw to send on this circuit before
the partner DLSw must stop and wait for an additional flow
control indication from this DLSw.

The value zero should be returned if this circuit is not
running the DLSw pacing protocol."
::= { dlswCircuitEntry 21 }

dlswCircuitFCRecvCurrentWndw OBJECT-TYPE
SYNTAX INTEGER (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current window size that this DLSw is using in its role
as a data receiver. This is the number of additional paced
SSP messages that this DLSw would be authorizing its DLSw
partner to send, if this DLSw were to send a flow control
indication with the bits specifying `repeat window'.

The value zero should be returned if this circuit is not
running the DLSw pacing protocol."
::= { dlswCircuitEntry 22 }

dlswCircuitFCLargestRecvGranted OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The largest receive window size granted by this DLSw during
the current activation of this circuit. This is not the
largest number of messages granted at any time, but the
largest window size as represented by FCIND operator bits.

The value zero should be returned if this circuit is not
running the DLSw pacing protocol."
::= { dlswCircuitEntry 23 }

dlswCircuitFCLargestSendGranted OBJECT-TYPE

SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The largest send (with respect to this DLSw) window size
granted by the partner DLSw during the current activation of
this circuit.

The value zero should be returned if this circuit is not
running the DLSw pacing protocol."
::= { dlswCircuitEntry 24 }

dlswCircuitFCHalveWndwSents OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Halve Window operations this DLSw has sent on
this circuit, in its role as a data receiver.

The value zero should be returned if this circuit is not
running the DLSw pacing protocol."
::= { dlswCircuitEntry 25 }

dlswCircuitFCResetOpSents OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Reset Window operations this DLSw has sent on
this circuit, in its role as a data receiver.

The value zero should be returned if this circuit is not
running the DLSw pacing protocol."
::= { dlswCircuitEntry 26 }

dlswCircuitFCHalveWndwRcvds OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Halve Window operations this DLSw has received on
this circuit, in its role as a data sender.

The value zero should be returned if this circuit is not
running the DLSw pacing protocol."
::= { dlswCircuitEntry 27 }

dlswCircuitFCResetOpRcvds OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Reset Window operations this DLSw has received on
this circuit, in its role as a data sender.
The value zero should be returned if this circuit is not
running the DLSw pacing protocol."
::= { dlswCircuitEntry 28 }

-- ...................................................................
-- Information about the circuit disconnection
-- ...................................................................
dlswCircuitDiscReasonLocal OBJECT-TYPE
SYNTAX INTEGER {
endStationDiscRcvd (1),
endStationDlcError (2),
protocolError (3),
operatorCommand (4),
haltDlRcvd (5),
haltDlNoAckRcvd (6),
transportConnClosed (7)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The reason why this circuit was last disconnected, as seen
by this DLSw node.

This object is present only if the agent keeps circuit
table entries around for some period after circuit disconnect."
::= { dlswCircuitEntry 29 }

dlswCircuitDiscReasonRemote OBJECT-TYPE
SYNTAX INTEGER {
unknown (1),
endStationDiscRcvd (2),
endStationDlcError (3),
protocolError (4),
operatorCommand (5)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The generic reason code why this circuit was last
disconnected, as reported by the DLSw partner in a HALT_DL

or HALT_DL_NOACK. If the partner does not send a reason
code in these messages, or the DLSw implementation does
not report receiving one, the value `unknown' is returned.

This object is present only if the agent keeps circuit table
entries around for some period after circuit disconnect."
::= { dlswCircuitEntry 30 }

dlswCircuitDiscReasonRemoteData OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0 | 4))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Implementation-specific data reported by the DLSw partner in
a HALT_DL or HALT_DL_NOACK, to help specify how and why this
circuit was last disconnected. If the partner does not send
this data in these messages, or the DLSw implementation does
not report receiving it, a string of zero length is returned.

This object is present only if the agent keeps circuit table
entries around for some period after circuit disconnect."
::= { dlswCircuitEntry 31 }

-- ...................................................................
-- Statistics related to this circuit.
-- All statistics are in LLC-2 Link Station Statistical Table.
-- All SDLC statistics are in SDLC MIB
-- ...................................................................

-- *******************************************************************
-- DLSW SDLC EXTENSION
-- *******************************************************************
dlswSdlcLsEntries OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of entries in dlswSdlcLsTable."
::= { dlswSdlc 1 }

-- ...................................................................
dlswSdlcLsTable OBJECT-TYPE
SYNTAX SEQUENCE OF DlswSdlcLsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION

"The table defines the virtual MAC addresses for those
SDLC link stations that participate in data link switching."
::= { dlswSdlc 2 }

dlswSdlcLsEntry OBJECT-TYPE
SYNTAX DlswSdlcLsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The index of this table is the ifIndex value for the
SDLC port which owns this link station and the poll
address of the particular SDLC link station."
INDEX { ifIndex, sdlcLSAddress }
::= { dlswSdlcLsTable 1 }

DlswSdlcLsEntry ::= SEQUENCE {
dlswSdlcLsLocalMac MacAddressNC,
dlswSdlcLsLocalSap OCTET STRING,
dlswSdlcLsLocalIdBlock DisplayString,
dlswSdlcLsLocalIdNum DisplayString,
dlswSdlcLsRemoteMac MacAddressNC,
dlswSdlcLsRemoteSap OCTET STRING,
dlswSdlcLsRowStatus RowStatus
}

dlswSdlcLsLocalMac OBJECT-TYPE
SYNTAX MacAddressNC
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The virtual MAC address used to represent the SDLC-attached
link station to the rest of the DLSw network."
::= { dlswSdlcLsEntry 1 }

dlswSdlcLsLocalSap OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(1))
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The SAP used to represent this link station."
::= { dlswSdlcLsEntry 2 }

dlswSdlcLsLocalIdBlock OBJECT-TYPE
SYNTAX DisplayString (SIZE (0 | 3))
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The block number is the first three digits of the node_id,

if available. These 3 hexadecimal digits identify the
product."
DEFVAL { ''H }
::= { dlswSdlcLsEntry 3 }

dlswSdlcLsLocalIdNum OBJECT-TYPE
SYNTAX DisplayString (SIZE (0 | 5))
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The ID number is the last 5 digits of the node_id, if
available. These 5 hexadecimal digits are
administratively defined and combined with the 3 digit
block number form the node_id. This node_id is used to
identify the local node and is included in SNA XIDs."
DEFVAL { ''H }
::= { dlswSdlcLsEntry 4 }

dlswSdlcLsRemoteMac OBJECT-TYPE
SYNTAX MacAddressNC
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The MAC address to which DLSw should attempt to connect
this link station. If this information is not available,
a length of zero for this object should be returned."
DEFVAL { ''H }
::= { dlswSdlcLsEntry 5 }

dlswSdlcLsRemoteSap OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0 | 1))
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The SAP of the remote station to which this link
station should be connected. If this information
is not available, a length of zero for this object
should be returned."
DEFVAL { ''H }
::= { dlswSdlcLsEntry 6 }

dlswSdlcLsRowStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"This object is used by the manager to create
or delete the row entry in the dlswSdlcLsTable

following the RowStatus textual convention."
::= { dlswSdlcLsEntry 7 }

-- *******************************************************************
-- TRAP GENERATION CONTROL
-- *******************************************************************
dlswTrapControl OBJECT IDENTIFIER ::= { dlswNode 10}

dlswTrapCntlTConnPartnerReject OBJECT-TYPE
SYNTAX INTEGER {
enabled (1),
disabled (2),
partial (3)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Indicates whether the DLSw is permitted to emit partner
reject related traps. With the value of `enabled'
the DLSw will emit all partner reject related traps.
With the value of `disabled' the DLSw will not emit
any partner reject related traps. With the value
of `partial' the DLSw will only emits partner reject
traps for CapEx reject. The changes take effect
immediately."
::= { dlswTrapControl 1 }

dlswTrapCntlTConnProtViolation OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Indicates whether the DLSw is permitted to generate
protocol-violation traps on the events such as
window size violation. The changes take effect
immediately."
::= { dlswTrapControl 2 }

dlswTrapCntlTConn OBJECT-TYPE
SYNTAX INTEGER {
enabled (1),
disabled (2),
partial (3)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION

"Indicates whether the DLSw is permitted to emit transport
connection up and down traps. With the value of `enabled'
the DLSw will emit traps when connections enter `connected'
and `disconnected' states. With the value of `disabled'
the DLSw will not emit traps when connections enter of
`connected' and `disconnected' states. With the value
of `partial' the DLSw will only emits transport connection
down traps when the connection is closed with busy.
The changes take effect immediately."
::= { dlswTrapControl 3 }

dlswTrapCntlCircuit OBJECT-TYPE
SYNTAX INTEGER {
enabled (1),
disabled (2),
partial (3)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Indicates whether the DLSw is permitted to generate
circuit up and down traps. With the value of `enabled'
the DLSw will emit traps when circuits enter `connected'
and `disconnected' states. With the value of `disabled'
the DLSw will not emit traps when circuits enter of
`connected' and `disconnected' states. With the value
of `partial' the DLSw will emit traps only for those
circuits that are initiated by this DLSw, e.g.,
originating the CUR_CS message. The changes take effect
immediately."
::= { dlswTrapControl 4 }

-- *******************************************************************
-- NOTIFICATIONS, i.e., TRAP DEFINITIONS
-- *******************************************************************
dlswTraps OBJECT IDENTIFIER ::= { dlswMIB 0 }

-- -------------------------------------------------------------------
-- This section defines the well-known notifications sent by
-- DLSW agents.
-- Care must be taken to insure that no particular notification
-- is sent to a single receiving entity more often than once
-- every five seconds.
--
-- Traps includes:
-- (1) Partner rejected (capEx rejection, not in partner list, etc.)
-- (2) DLSw protocol violation (e.g., window size violation, etc.)
-- (3) Transport connection up/down

-- (4) Circuit up/down
-- -------------------------------------------------------------------
--

dlswTrapTConnPartnerReject NOTIFICATION-TYPE
OBJECTS { dlswTConnOperTDomain, dlswTConnOperRemoteTAddr
}
STATUS current
DESCRIPTION
"This trap is sent each time a transport connection
is rejected by a partner DLSw during Capabilities
Exchanges. The emission of this trap is controlled
by dlswTrapCntlTConnPartnerReject."
::= { dlswTraps 1 }

dlswTrapTConnProtViolation NOTIFICATION-TYPE
OBJECTS { dlswTConnOperTDomain, dlswTConnOperRemoteTAddr
}
STATUS current
DESCRIPTION
"This trap is sent each time a protocol violation is
detected for a transport connection. The emission of this
trap is controlled by dlswTrapCntlTConnProtViolation."
::= { dlswTraps 2 }

dlswTrapTConnUp NOTIFICATION-TYPE
OBJECTS { dlswTConnOperTDomain, dlswTConnOperRemoteTAddr
}
STATUS current
DESCRIPTION
"This trap is sent each time a transport connection
enters `connected' state. The emission of this trap
is controlled by dlswTrapCntlTConn."
::= { dlswTraps 3 }

dlswTrapTConnDown NOTIFICATION-TYPE
OBJECTS { dlswTConnOperTDomain, dlswTConnOperRemoteTAddr
}
STATUS current
DESCRIPTION
"This trap is sent each time a transport connection
enters `disconnected' state. The emission of this trap
is controlled by dlswTrapCntlTConn."
::= { dlswTraps 4 }

dlswTrapCircuitUp NOTIFICATION-TYPE
OBJECTS { dlswCircuitS1Mac, dlswCircuitS1Sap,
dlswCircuitS2Mac, dlswCircuitS2Sap

}
STATUS current
DESCRIPTION
"This trap is sent each time a circuit enters `connected'
state. The emission of this trap is controlled by
dlswTrapCntlCircuit."
::= { dlswTraps 5 }

dlswTrapCircuitDown NOTIFICATION-TYPE
OBJECTS { dlswCircuitS1Mac, dlswCircuitS1Sap,
dlswCircuitS2Mac, dlswCircuitS2Sap
}
STATUS current
DESCRIPTION
"This trap is sent each time a circuit enters `disconnected'
state. The emission of this trap is controlled by
dlswTrapCntlCircuit."
::= { dlswTraps 6 }

-- *******************************************************************
-- CONFORMANCE INFORMATION
-- *******************************************************************
dlswConformance OBJECT IDENTIFIER ::= { dlsw 3 }

dlswCompliances OBJECT IDENTIFIER ::= { dlswConformance 1 }
dlswGroups OBJECT IDENTIFIER ::= { dlswConformance 2 }

-- -------------------------------------------------------------------
-- COMPLIANCE STATEMENTS
-- -------------------------------------------------------------------

-- ...................................................................
-- Core compliance for all DLSw entities
-- ...................................................................
dlswCoreCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The core compliance statement for all DLSw nodes."
MODULE
MANDATORY-GROUPS {
dlswNodeGroup,
dlswTConnStatGroup,
dlswTConnConfigGroup,
dlswTConnOperGroup,
dlswInterfaceGroup,
dlswCircuitGroup,
dlswCircuitStatGroup,

dlswNotificationGroup }

GROUP dlswNodeNBGroup
DESCRIPTION
"The DLSw NetBIOS Node group is mandatory only for
those DLSw entities that implement NetBIOS."

GROUP dlswTConnNBGroup
DESCRIPTION
"The DLSw NetBIOS Transport Connection group is
mandatory only for those DLSw entities that
implement NetBIOS."

OBJECT dlswNodeStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswNodeVirtualSegmentLFSize
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswNodeResourceNBExclusivity
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswNodeResourceMacExclusivity
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTrapCntlTConnPartnerReject
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTrapCntlTConnProtViolation
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTrapCntlTConn
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTrapCntlCircuit
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTConnConfigTDomain
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTConnConfigLocalTAddr
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTConnConfigRemoteTAddr
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTConnConfigEntryType
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTConnConfigGroupDefinition
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTConnConfigSetupType
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTConnConfigSapList
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTConnConfigAdvertiseMacNB
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTConnConfigInitCirRecvWndw
MIN-ACCESS read-only
DESCRIPTION

"Write access is not required."

OBJECT dlswTConnConfigRowStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTConnOperState
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswIfRowStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswIfVirtualSegment
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswIfSapList
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswCircuitState
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

::= { dlswCompliances 1 }

-- ...................................................................
-- Compliance for all DLSw entities that provide TCP transport.
-- ...................................................................
dlswTConnTcpCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"Compliance for DLSw nodes that use TCP as a
transport connection protocol."
MODULE
MANDATORY-GROUPS {
dlswTConnTcpConfigGroup,
dlswTConnTcpOperGroup }

OBJECT dlswTConnTcpConfigKeepAliveInt

MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTConnTcpConfigTcpConnections
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswTConnTcpConfigMaxSegmentSize
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

::= { dlswCompliances 2 }

-- ...................................................................
-- Compliance for all DLSw Entities that implement a directory
-- ...................................................................
dlswDirCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"Compliance for DLSw nodes that provide a directory
function."
MODULE
MANDATORY-GROUPS {
dlswDirGroup }

GROUP dlswDirNBGroup
DESCRIPTION
"The DLSw NetBIOS group is mandatory only for
those DLSw entities that implement NetBIOS."

OBJECT dlswDirMacMac
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswDirMacMask
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswDirMacEntryType
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswDirMacLocationType
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswDirMacLocation
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswDirMacStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswDirMacLFSize
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswDirMacRowStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswDirNBName
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswDirNBNameType
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswDirNBEntryType
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswDirNBLocationType
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswDirNBLocation
MIN-ACCESS read-only
DESCRIPTION

"Write access is not required."

OBJECT dlswDirNBStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswDirNBLFSize
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswDirNBRowStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

::= { dlswCompliances 3 }

-- ...................................................................
-- Compliance for all DLSw entities that provide an ordered
-- list of directory entries that match a resource
-- ...................................................................
dlswDirLocateCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"Compliance for DLSw nodes that provide an ordered
list of directory entries for a given resource."
MODULE
MANDATORY-GROUPS {
dlswDirLocateGroup }

GROUP dlswDirLocateNBGroup
DESCRIPTION
"The DLSw NetBIOS group is mandatory only for
those DLSw entities that implement NetBIOS."

::= { dlswCompliances 4 }

-- ...................................................................
-- Compliance for all DLSw entities that support SDLC end stations
-- ...................................................................
dlswSdlcCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"Compliance for DLSw nodes that support SDLC."
MODULE
MANDATORY-GROUPS {

dlswSdlcGroup }

OBJECT dlswSdlcLsLocalMac
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswSdlcLsLocalSap
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswSdlcLsLocalIdBlock
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswSdlcLsLocalIdNum
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswSdlcLsRemoteMac
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswSdlcLsRemoteSap
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

OBJECT dlswSdlcLsRowStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."

::= { dlswCompliances 5 }

-- -------------------------------------------------------------------
-- CONFORMANCE GROUPS
-- -------------------------------------------------------------------

-- ...................................................................
-- Node Conformance Group
-- ...................................................................
dlswNodeGroup OBJECT-GROUP
OBJECTS {

dlswNodeVersion,
dlswNodeVendorID,
dlswNodeVersionString,
dlswNodeStdPacingSupport,
dlswNodeStatus,
dlswNodeUpTime,
dlswNodeVirtualSegmentLFSize,
dlswNodeResourceMacExclusivity,
dlswTrapCntlTConnPartnerReject,
dlswTrapCntlTConnProtViolation,
dlswTrapCntlTConn,
dlswTrapCntlCircuit
}
STATUS current
DESCRIPTION
"Conformance group for DLSw node general information."
::= { dlswGroups 1 }

-- ...................................................................
dlswNodeNBGroup OBJECT-GROUP
OBJECTS {
dlswNodeResourceNBExclusivity
}
STATUS current
DESCRIPTION
"Conformance group for DLSw node general information
specifically for nodes that support NetBIOS."
::= { dlswGroups 2 }

-- ...................................................................
dlswTConnStatGroup OBJECT-GROUP
OBJECTS {
dlswTConnStatActiveConnections,
dlswTConnStatCloseIdles,
dlswTConnStatCloseBusys
}
STATUS current
DESCRIPTION
"Conformance group for statistics for transport
connections."
::= { dlswGroups 3 }

-- ...................................................................
dlswTConnConfigGroup OBJECT-GROUP
OBJECTS {
dlswTConnConfigTDomain,
dlswTConnConfigLocalTAddr,
dlswTConnConfigRemoteTAddr,

dlswTConnConfigLastModifyTime,
dlswTConnConfigEntryType,
dlswTConnConfigGroupDefinition,
dlswTConnConfigSetupType,
dlswTConnConfigSapList,
dlswTConnConfigAdvertiseMacNB,
dlswTConnConfigInitCirRecvWndw,
dlswTConnConfigOpens,
dlswTConnConfigRowStatus
}
STATUS current
DESCRIPTION
"Conformance group for the configuration of
transport connections."
::= { dlswGroups 4 }

-- ...................................................................
dlswTConnOperGroup OBJECT-GROUP
OBJECTS {
dlswTConnOperLocalTAddr,
dlswTConnOperEntryTime,
dlswTConnOperConnectTime,
dlswTConnOperState,
dlswTConnOperConfigIndex,
dlswTConnOperFlowCntlMode,
dlswTConnOperPartnerVersion,
dlswTConnOperPartnerVendorID,
dlswTConnOperPartnerVersionStr,
dlswTConnOperPartnerInitPacingWndw,
dlswTConnOperPartnerSapList,
dlswTConnOperPartnerMacExcl,
dlswTConnOperPartnerMacInfo,
dlswTConnOperDiscTime,
dlswTConnOperDiscReason,
dlswTConnOperDiscActiveCir,
dlswTConnOperInDataPkts,
dlswTConnOperOutDataPkts,
dlswTConnOperInDataOctets,
dlswTConnOperOutDataOctets,
dlswTConnOperInCntlPkts,
dlswTConnOperOutCntlPkts,
dlswTConnOperCURexSents,
dlswTConnOperICRexRcvds,
dlswTConnOperCURexRcvds,
dlswTConnOperICRexSents,
dlswTConnOperCirCreates,
dlswTConnOperCircuits
}

STATUS current
DESCRIPTION
"Conformance group for operation information for
transport connections."
::= { dlswGroups 5 }
-- ...................................................................
dlswTConnNBGroup OBJECT-GROUP
OBJECTS {
dlswTConnOperPartnerNBExcl,
dlswTConnOperPartnerNBInfo,
dlswTConnOperNQexSents,
dlswTConnOperNRexRcvds,
dlswTConnOperNQexRcvds,
dlswTConnOperNRexSents
}
STATUS current
DESCRIPTION
"Conformance group for operation information for
transport connections, specifically for nodes
that support NetBIOS."
::= { dlswGroups 6 }

-- ...................................................................
dlswTConnTcpConfigGroup OBJECT-GROUP
OBJECTS {
dlswTConnTcpConfigKeepAliveInt,
dlswTConnTcpConfigTcpConnections,
dlswTConnTcpConfigMaxSegmentSize
}
STATUS current
DESCRIPTION
"Conformance group for configuration information for
transport connections using TCP."
::= { dlswGroups 7 }

-- ...................................................................
dlswTConnTcpOperGroup OBJECT-GROUP
OBJECTS {
dlswTConnTcpOperKeepAliveInt,
dlswTConnTcpOperPrefTcpConnections,
dlswTConnTcpOperTcpConnections
}
STATUS current
DESCRIPTION
"Conformance group for operation information for
transport connections using TCP."
::= { dlswGroups 8 }

-- ...................................................................
dlswInterfaceGroup OBJECT-GROUP
OBJECTS {
dlswIfRowStatus,
dlswIfVirtualSegment,
dlswIfSapList
}
STATUS current
DESCRIPTION
"Conformance group for DLSw interfaces."
::= { dlswGroups 9 }

-- ...................................................................
dlswDirGroup OBJECT-GROUP
OBJECTS {
dlswDirMacEntries,
dlswDirMacCacheHits,
dlswDirMacCacheMisses,
dlswDirMacCacheNextIndex,
dlswDirMacMac,
dlswDirMacMask,
dlswDirMacEntryType,
dlswDirMacLocationType,
dlswDirMacLocation,
dlswDirMacStatus,
dlswDirMacLFSize,
dlswDirMacRowStatus
}
STATUS current
DESCRIPTION
"Conformance group for DLSw directory using MAC
addresses."
::= { dlswGroups 10 }

-- ...................................................................
dlswDirNBGroup OBJECT-GROUP
OBJECTS {
dlswDirNBEntries,
dlswDirNBCacheHits,
dlswDirNBCacheMisses,
dlswDirNBCacheNextIndex,
dlswDirNBName,
dlswDirNBNameType,
dlswDirNBEntryType,
dlswDirNBLocationType,
dlswDirNBLocation,
dlswDirNBStatus,
dlswDirNBLFSize,

dlswDirNBRowStatus
}
STATUS current
DESCRIPTION
"Conformance group for DLSw directory using NetBIOS
names."
::= { dlswGroups 11 }

-- ...................................................................
dlswDirLocateGroup OBJECT-GROUP
OBJECTS {
dlswDirLocateMacLocation
}
STATUS current
DESCRIPTION
"Conformance group for a node that can return directory
entry order for a given MAC address."
::= { dlswGroups 12 }

-- ...................................................................
dlswDirLocateNBGroup OBJECT-GROUP
OBJECTS {
dlswDirLocateNBLocation
}
STATUS current
DESCRIPTION
"Conformance group for a node that can return directory
entry order for a given NetBIOS name."
::= { dlswGroups 13 }

-- ...................................................................
dlswCircuitStatGroup OBJECT-GROUP
OBJECTS {
dlswCircuitStatActives,
dlswCircuitStatCreates
}
STATUS current
DESCRIPTION
"Conformance group for statistics about circuits."
::= { dlswGroups 14 }

-- ...................................................................
dlswCircuitGroup OBJECT-GROUP
OBJECTS {
dlswCircuitS1IfIndex,
dlswCircuitS1DlcType,
dlswCircuitS1RouteInfo,
dlswCircuitS1CircuitId,

dlswCircuitS1Dlc,
dlswCircuitS2Location,
dlswCircuitS2TDomain,
dlswCircuitS2TAddress,
dlswCircuitS2CircuitId,
dlswCircuitOrigin,
dlswCircuitEntryTime,
dlswCircuitStateTime,
dlswCircuitState,
dlswCircuitPriority,
dlswCircuitFCSendGrantedUnits,
dlswCircuitFCSendCurrentWndw,
dlswCircuitFCRecvGrantedUnits,
dlswCircuitFCRecvCurrentWndw,
dlswCircuitFCLargestRecvGranted,
dlswCircuitFCLargestSendGranted,
dlswCircuitFCHalveWndwSents,
dlswCircuitFCResetOpSents,
dlswCircuitFCHalveWndwRcvds,
dlswCircuitFCResetOpRcvds,
dlswCircuitDiscReasonLocal,
dlswCircuitDiscReasonRemote,
dlswCircuitDiscReasonRemoteData
}
STATUS current
DESCRIPTION
"Conformance group for DLSw circuits."
::= { dlswGroups 15 }

-- ...................................................................
dlswSdlcGroup OBJECT-GROUP
OBJECTS {
dlswSdlcLsEntries,
dlswSdlcLsLocalMac,
dlswSdlcLsLocalSap,
dlswSdlcLsLocalIdBlock,
dlswSdlcLsLocalIdNum,
dlswSdlcLsRemoteMac,
dlswSdlcLsRemoteSap,
dlswSdlcLsRowStatus
}
STATUS current
DESCRIPTION
"Conformance group for DLSw SDLC support."
::= { dlswGroups 16 }

-- ...................................................................
dlswNotificationGroup NOTIFICATION-GROUP

NOTIFICATIONS {
dlswTrapTConnPartnerReject,
dlswTrapTConnProtViolation,
dlswTrapTConnUp,
dlswTrapTConnDown,
dlswTrapCircuitUp,
dlswTrapCircuitDown
}
STATUS current
DESCRIPTION
"Conformance group for DLSw notifications."
::= { dlswGroups 17 }

END

4.0 Acknowledgements

This memo has been produced by the AIW DLSw MIB RIGlet, which is also
recognized as the IETF DLSw MIB Working Group.

5.0 References

[1] Bartky, A., "Data Link Switching: Switch-to-Switch Protocol; AIW
DLSw RIG: DLSw Closed Pages, DLSw Standard Version 1", RFC1795,
Sync Research Inc., April 1995.

[2] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
Waldbusser, "Structure of Management Information for version 2 of
the Simple Network Management Protocol (SNMPv2)", RFC1902, January
1996.

[3] Rose, M., and K. McCloghrie, "Structure and Identification of
Management Information for TCP/IP-based Internets", STD 16, 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 - MIB-II", STD 17, RFC
1213, Hughes LAN Systems, Performance Systems International, March
1991.

[5] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network
Management Protocol", STD 15, RFC1157, SNMP Research, Performance
Systems International, Performance Systems International, MIT
Laboratory for Computer Science, May 1990.

[6] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
Waldbusser, "Protocol Operations for version 2 of the Simple Network
Management Protocol (SNMPv2)", RFC1905, January 1996.

[7] IEEE Project, "ANSI/IEEE P802.1D", 1993

[8] McCloghrie, K., and F. Kastenholz, "Evolution of the Interfaces
Group of MIB-II", RFC1573, Hughes LAN Systems, FTP Software,
January 1994.

[9] Hilgeman, J., S. Nix, A. Bartky, and W. Clark, "Definitions of
Managed Objects for SNA Data Link Control (SDLC) using SMIv2", RFC
1747, Apertus Technologies, Inc., Metaplex, Inc., Sync Research,
Inc., cisco Systems, Inc., January 1995

6.0 Security Considerations

Security issues are not discussed in this memo.

7.0 Authors' Addresses

David D. Chen
IBM Networking Systems
P. O. Box 12195
Research Triangle Park, NC 27709
US

Phone: +1 919 254 6182
EMail: dchen@vnet.ibm.com

Peter W. Gayek
IBM Networking Systems
P. O. Box 12195
Research Triangle Park, NC 27709
US

Phone: +1 919 254 1808
EMail: gayek@vnet.ibm.com

Shannon Nix
Metaplex, Inc.

7025 Kit Creek Road
P. O. Box 14987
Research Triangle Park, NC 27709
US

Phone: +1 919 472 2388
EMail: snix@metaplex.com
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容