CTRON-VLAN-CLASSIFY-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, Unsigned32
FROM SNMPv2-SMI
DisplayString, RowStatus, TEXTUAL-CONVENTION
FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP
FROM SNMPv2-CONF
PortList
FROM Q-BRIDGE-MIB
ctVlanExt
FROM CTRON-MIB-NAMES;
ctVlanClassify MODULE-IDENTITY
LAST-UPDATED "200301292215Z" ORGANIZATION "Enterasys Networks, Inc"
CONTACT-INFO
" Enterasys Networks, Inc.
Postal: 35 Industrial Way, P.O. Box 5005
Rochester, NH 03867-0505
Phone: (603) 332-9400
Email: support@enterasys.com
Web: http://www.enterasys.com"
DESCRIPTION
"The Enterasys VLAN Classify MIB module for controlling
Enterasys specific VLAN classification criteria based
on packet content."
REVISION "200212191631Z" DESCRIPTION "This revision primarily contains modifications to,
and expansion of, the CtVlanClassifyType Textual
Convention. These modification address historical
and future usage."
REVISION "200203272055Z" DESCRIPTION "This revision, 01.02.00, is a merge of revision 00.00.01,
dated March 18, 1999, and revision 01.01.00, dated
September 26, 2001."
::= { ctVlanExt 6 }
ctVlanClassifyObjects OBJECT IDENTIFIER ::= { ctVlanClassify 1 }
CtVlanClassifyType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Each enumerated value represents a unique classification
type. Different types have different rules regarding
how data is interpreted during classification. These
rules are spelled out in the comments preceding each type.
Unless otherwise specified providing a value for DataMask is
optional and the description for DataMask is as follows:
DataMask is the same logical size the as the associated DataVal.
DataMask is the one's complement of the DataVal bits to attempt
to match on. (e.g., to match on the IP subnet 255.255.240.0
the value for DataMask would be 0x00000fff)
Working from the most significant to the least significant bit
'1 to 0' transitions are not allowed. (e.g., 0x000ffffe is not
valid.)
For DataVal objects that are less than 32 bits the leading
inconsequential bits in the corresponding DataMask value must
be zero. (e.g., 0x0000000f would attempt to match on the high
order four bits in an eight bit DataVal.)"
SYNTAX INTEGER {
etherType(1),
llcDsapSsap(2),
ipTypeOfService(3),
ipProtocolType(4),
ipxClassOfService(5),
ipxPacketType(6),
ipAddressSource(7), ipAddressDestination(8), ipAddressBilateral(9), ipxNetworkSource(10),
ipxNetworkDestination(11),
ipxNetworkBilateral(12),
ipUdpPortSource(13),
ipUdpPortDestination(14),
ipUdpPortBilateral(15),
ipTcpPortSource(16),
ipTcpPortDestination(17),
ipTcpPortBilateral(18),
ipxSocketSource(19),
ipxSocketDestination(20),
ipxSocketBilateral(21),
macAddressSource(22),
macAddressDestination(23),
macAddressBilateral(24),
ipFragments(25),
ipUdpPortSourceRange(26),
ipUdpPortDestinationRange(27),
ipUdpPortBilateralRange(28),
ipTcpPortSourceRange(29),
ipTcpPortDestinationRange(30),
ipTcpPortBilateralRange(31),
icmpType(32),
vlanId(33),
tci(34)
}
VlanIndex ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"A value used to index per-VLAN tables: values of 0 and
4095 have special meaning; if the value is between 1 and
4094 inclusive, it represents an 802.1Q VLAN-ID with
global scope within a given bridged domain (see VlanId
textual convention). If the value is greater than 4095
then it represents a VLAN with scope local to the
particular agent. If the value is 0 it indicates that the
packets will be dropped. If the value is 4095, it indicates
that the packets will be forwarded, but no VLAN is
specified here."
SYNTAX Unsigned32
ctVlanClassifyStatus OBJECT-TYPE
SYNTAX INTEGER {
enable(1),
disable(2)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Allows the VLAN Classification feature to be globally
enabled/disabled. A value of disable(2), functionally
supersedes the RowStatus of individual entries in the
ctVlanClassifyTable, but does not change their actual
RowStatus value."
DEFVAL { disable }
::= { ctVlanClassifyObjects 1}
ctVlanClassifyMaxEntries OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum number of entries allowed in the
ctVlanClassifyTable."
::= { ctVlanClassifyObjects 2}
ctVlanClassifyNumEntries OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current number of entries in the ctVlanClassifyTable."
::= { ctVlanClassifyObjects 3}
ctVlanClassifyTable OBJECT-TYPE
SYNTAX SEQUENCE OF CtVlanClassifyEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing configuration information for each
VLAN classification configured into the device by (local
or network) management. All entries are permanent and
will be restored after the device is reset."
::= { ctVlanClassifyObjects 4 }
ctVlanClassifyEntry OBJECT-TYPE
SYNTAX CtVlanClassifyEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Describes a particular entry of ctVlanClassifyTable."
INDEX { ctVlanClassifyVlanIndex, ctVlanClassifyDataMeaning,
ctVlanClassifyDataVal, ctVlanClassifyDataMask }
::= { ctVlanClassifyTable 1 }
CtVlanClassifyEntry ::=
SEQUENCE {
ctVlanClassifyVlanIndex
VlanIndex,
ctVlanClassifyDataMeaning
CtVlanClassifyType,
ctVlanClassifyDataVal
Unsigned32,
ctVlanClassifyDataMask
Unsigned32,
ctVlanClassifyIngressList
PortList,
ctVlanClassifyRowStatus
RowStatus,
ctVlanClassifyRowInfo
DisplayString
}
ctVlanClassifyVlanIndex OBJECT-TYPE
SYNTAX VlanIndex
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The VLAN index for this entry. Any packet meeting the
classification criteria specified by this conceptual row
will be put into the VLAN indicated by this object."
::= { ctVlanClassifyEntry 1 }
ctVlanClassifyDataMeaning OBJECT-TYPE
SYNTAX CtVlanClassifyType
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The meaning of the ctVlanClassifyDataVal leaf for this
conceptual row. The ctVlanClassifyDataVal specifies a
particular value which, when compared to packet data,
is used to classify that packet into a particular VLAN.
The part of the packet (if any), to which this data
comparison applies, is determined by this object.
For example, the value ipAddressBilateral(8) means that
the value ctVlanClassifyDataVal for this entry is an IP
address. It further means that the given IP address
will be compared against both source and destination
IP address fields in a packet. Such an entry obviously
would not not match against any non-IP packets.
Additionally, the value of this leaf will impose certain
implicit ranges and interpretations of data contained
within the ctVlanClassifyDataVal leaf for this entry. The
specific limitations of each type should be spelled out
in the comments for that type."
::= { ctVlanClassifyEntry 2 }
ctVlanClassifyDataVal OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The data value associated with ctVlanClassifyDataMeaning.
The explicit range of this value is any unsigned 32-bit
integer(0..4294967295). This range may vary, however,
depending upon the value of ctVlanClassifyDataMeaning.
Illegal values should not be allowed."
::= { ctVlanClassifyEntry 3 }
ctVlanClassifyDataMask OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This object is the one's complement of a 32-bit mask.
This mask is applicable to the data comparison of
ctVlanClassifyDataVal. The mask is applied to the actual
packet data under consideration through a logical bitwise
AND operation. This result is then compared to the data.
For example, we want to classify according to a bilateral
IP address of 134.141.0.0 with a mask of 255.255.240.0.
This would be reflected by the following values:
ctVlanClassifyDataMeaning: ipAddressBilateral(8)
ctVlanClassifyDataVal: 0x868d0000
ctVlanClassifyDataMask: 0x00000fff
Again there are contextual implications for this leaf
depending upon the value of ctVlanClassifyDataMeaning.
Not all types will use the mask, and others will impose
restrictions. This value should however be a true
indication of the masking operation. In other words,
data types that don't use a mask should only allow a
value of zero, indicating that all data bits are
significant in the comparison.
The specific restrictions of each type should be spelled
out in the comments for that type. Illegal values should
not be allowed."
::= { ctVlanClassifyEntry 4 }
ctVlanClassifyIngressList OBJECT-TYPE
SYNTAX PortList
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The set of ports on which this classification rule applies.
Classification occurs on ingress. An agent implementation
should allow a set operation of this object to create a
row if it does not exist."
DEFVAL { '0000'H }
::= { ctVlanClassifyEntry 5 }
ctVlanClassifyRowStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"This object provides both control and status for the
associated conceptual row in the table. Rows can be
created in two ways.
createAndGo - The specified row will be created and
activated if the instance is allowable. If not, an
inconsistentValue exception will be returned and the
row will not be created. This provides the most
optimal method of creating an active row, but provides
the user no explanation if the row cannot be created.
createAndWait - The specified row will be created and put
in the notInService state if the instance is allowable.
A subsequent activation of this row will bring it into
the active state. If the instance is not allowable,
the row will be created and put in the notReady state.
A subsequent activation of this row will fail. Since
the inappropriate information is always contained in the
indexing leaves, activation will never succeed and the
row should be removed by the management station. When
a row is in the notReady state, the ctVlanClassifyRowInfo
may be retrieved to obtain a plain English explanation
of why this row cannot be activated. createAndWait is
the preferred method for this reason.
Both methods described above leave ctVlanClassifyIngressList
in it's default state, requiring an additional set operation
in order to modify it. An even more optimal twist on the
createAndWait method is to set the ctVlanClassifyIngressList
to it's desired value as a method for row creation. This
will essentially cause an implicit createAndWait since it
too will leave the row in either the notInService or
notReady state. This leaves only activation or error
analysis as the last step.
Any rows left in the notReady or notInService state for
more than 5 minutes should be automatically removed by
the agent implementation."
::= { ctVlanClassifyEntry 6 }
ctVlanClassifyRowInfo OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object provides info about this row in the form of
an ASCII string, suitable for display purposes. The
intended purpose of this object is to provide an
'agent-specific' explanation as to why the
ctVlanClassifyRowStatus for this conceptual row is in
the 'notReady' state. A management station should read
this object and display it to the user in this case.
A conceptual row that does not fall into this category may
simply return a single NULL, but may also provide any useful
info of its choice. A management station may attempt to
display such info if it so chooses, but is under no burden
to do so."
::= { ctVlanClassifyEntry 7 }
ctVlanClassifyAbilityTable OBJECT-TYPE
SYNTAX SEQUENCE OF CtVlanClassifyAbilityEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing information for each of the VLAN
classification types. Types for which there is no
corresponding row are not supported by this device."
::= { ctVlanClassifyObjects 5 }
ctVlanClassifyAbilityEntry OBJECT-TYPE
SYNTAX CtVlanClassifyAbilityEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Describes a particular entry of ctVlanClassifyAbilityTable."
INDEX { ctVlanClassifyAbility }
::= { ctVlanClassifyAbilityTable 1 }
CtVlanClassifyAbilityEntry ::=
SEQUENCE {
ctVlanClassifyAbility
CtVlanClassifyType,
ctVlanClassifyPorts
PortList,
ctVlanClassifyActionStatus
INTEGER
}
ctVlanClassifyAbility OBJECT-TYPE
SYNTAX CtVlanClassifyType
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The VLAN classification type associated with this entry."
::= { ctVlanClassifyAbilityEntry 1 }
ctVlanClassifyPorts OBJECT-TYPE
SYNTAX PortList
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The set of ports on which the classification type
specified by ctVlanClassifyAbility is supported."
::= { ctVlanClassifyAbilityEntry 2 }
ctVlanClassifyActionStatus OBJECT-TYPE
SYNTAX INTEGER {
forwardNoFrames(1),
forwardAllFrames(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The action taken for all frames which apply this entry's
associated classification rule.
When this object is forwardNoFrames(1), the device will
drop all frames which apply this classification rule.
When this object is forwardAllFrames(2), the device will
forward all applicable frames to this classification entry's
VLAN."
::= { ctVlanClassifyAbilityEntry 3 }
ctVlanClassifyConformance OBJECT IDENTIFIER ::= { ctVlanClassify 2 }
ctVlanClassifyGroups OBJECT IDENTIFIER ::= { ctVlanClassifyConformance 1 }
ctVlanClassifyCompliances OBJECT IDENTIFIER ::= { ctVlanClassifyConformance 2 }
ctVlanClassifyBaseGroup OBJECT-GROUP
OBJECTS {
ctVlanClassifyStatus,
ctVlanClassifyMaxEntries,
ctVlanClassifyNumEntries,
ctVlanClassifyIngressList,
ctVlanClassifyRowStatus,
ctVlanClassifyRowInfo,
ctVlanClassifyPorts,
ctVlanClassifyActionStatus
}
STATUS current
DESCRIPTION
"A collection of objects providing device level control
and status information for VLAN classification."
::= { ctVlanClassifyGroups 1 }
ctVlanClassifyCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for devices that support
VLAN classification."
MODULE
MANDATORY-GROUPS { ctVlanClassifyBaseGroup }
::= { ctVlanClassifyCompliances 1 }
END