-- =============================================================================== -- -- Atkk Switch VLAN objects -- CENTRECOM-VLAN-MIB DEFINITIONS ::= BEGIN -- ====================================================================== -- -- Interpretation of the Interface Table for VLAN and encapsulation -- interfaces: -- -- OBJECT VALUE/USE -- -- ifIndex Same interpretation as RFC1573. A unique value, -- greater than zero for each VLAN/Encapsulation interface. -- -- ifDescr Same interpretation as RFC1573. A textual string -- containing information about the interface. This -- string should include the name of the manufacturer, -- the product name, the version of the software, and that -- the entry is a vlan or encapsulation interface. -- -- Example: "VLAN Red" -- Example: "802.1Q Encapsulation Tag 004" -- -- ifType propVirtual(53) -- -- ifMtu Equivalent to the least common denominator MTU of the -- set of ports associated with the VLAN or ENCAPS interface. -- For example, if the VLAN contains one ethernet port, then -- the value of this object is 1518. If the VLAN contains -- all FDDI ports, the value of this object is 4500. If -- a vlan contains a mix of ethernet and FDDI ports, the -- value of this object is 1518. If there are no ports associated -- with the interface, then the ifMtu is zero. -- -- ifSpeed The value of this object is zero, as defined by RFC1573 -- for sub-layers that have no concept of bandwidth. -- -- ifPhysAddress The value of this object is always equal to a null octet -- string. -- -- ifAdminStatus Always equal to up(1). SetRequest-PDUs fail. -- -- ifOperStatus The value of this object is equal to up(1) if the -- ifOperStatus of at least one port in in the set of ports -- stacked below the VLAN layer is up(1). The value of this -- object is down(2) if the ifOperStatus of all ports stacked -- below the vlan layer is down(2). The value of this -- object is down(2) if there are no ports stacked below the -- the vlan sublayer. -- -- ifLastChange Same interpretation as RFC1573. The value of sysUpTime -- at the time the interface entered its current operational -- state. If the current state was entered prior to the -- last re-initialization of the local network management -- subsystem, then this object contains a zero value. -- -- ifInOctets These objects return NO_SUCH_NAME on reads and writes. -- ifInUcastPkts This approach is more desireable than returning zero -- ifInNUcastPkt on reads because NMS's cannot differentiate between -- ifInDiscards returning a zero for non-support vs returning a real -- ifInErrors zero value for the counter. Inability to distinguish -- ifInUnknownProtos between these two cases would essentially prevent -- ifOutOctets future implementation of these objects, therefore -- ifOutUcastPkts NO_SUCH_NAME is returned to indicate no-support. -- ifOutNUcastPkts Future implementations may choose to return real values -- ifOutDiscards for these counters. -- ifOutDiscards " -- ifOutErrors " -- ifLinkUpDownTrapEnable " -- ifConnectorPresent " -- ifHighSpeed " -- ifName " -- -- ifOutQLen Deprecated in RFC1573. Set to zero if present. -- ifSpecific Deprecated in RFC1573. Set to {0.0} if present. -- -- linkUp TRAP Not supported for the vlan/encaps sublayers -- linkDown TRAP Not supported for the vlan/encaps sublayer -- -- ====================================================================== IMPORTS MODULE-IDENTITY FROM SNMPv2-SMI RowStatus FROM SNMPv2-TC DisplayString FROM RFC1213-MIB OBJECT-TYPE FROM RFC-1212 IpAddress FROM SNMPv2-SMI extSwitchMIB FROM CENTRECOM-MIB; atiVlan MODULE-IDENTITY LAST-UPDATED "9803020000Z" ORGANIZATION "Allied Telesis K.K" CONTACT-INFO "www1.allied-telesis.co.jp/GIGA" DESCRIPTION "Atkk Virtual LAN objects" ::= { extSwitchMIB 4 } -- -- The objects are arranged into the following groups: -- atiVlanGroup OBJECT IDENTIFIER ::= { atiVlan 1 } atiVirtualGroup OBJECT IDENTIFIER ::= { atiVlan 2 } atiEncapsulationGroup OBJECT IDENTIFIER ::= { atiVlan 3 } atiProtocolGroup OBJECT IDENTIFIER ::= { atiVlan 5 } -- -- -- Simens Vlan Type Textual Convention -- -- vlanLayer2(1) = The globally identified VLAN interface is protocol -- independent and based on port grouping. The configuration of -- port grouping is controlled through the ifStackTable. -- AtiSwitchVlanType ::= INTEGER { vlanLayer2(1) } -- -- All groups in this MIB are optional. Support for a -- particular group is dependent upon the capabilities -- of the network device. -- -- The VLAN Group -- -- The VLAN mapping group contains objects for -- identifying VLANs within a device. It consists of the -- atiVlanIfTable. -- -- The Virtual Group -- -- The virtual group contains the atiNextVirtIfIndex object. -- In the future, other groups and object will be added as -- capabilities are added. -- -- The Encapsulation Group -- -- The Encapsulation Group contains objects for identifying -- and configuring encapsulation entries within a device. -- It consists of the atiVlanEncapsIfTable. -- -- -- The Atkk VLAN Interface Table -- atiVlanIfTable OBJECT-TYPE SYNTAX SEQUENCE OF AtiVlanIfEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "This table lists VLAN interfaces that exist within a device. A single entry exists in this list for each VLAN interface in the system. A VLAN interface may be created, destroyed and/or mapped to a globally identified vlan." ::= { atiVlanGroup 2 } atiVlanIfEntry OBJECT-TYPE SYNTAX AtiVlanIfEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "An individual VLAN interface entry. When an NMS wishes to create a new entry in this table, it must obtain a non-zero index from the atiNextAvailableVirtIfIndex object. Row creation in this table will fail if the chosen index value does not match the current value returned from the atiNextAvailableVirtIfIndex object." INDEX { atiVlanIfIndex } ::= { atiVlanIfTable 1 } AtiVlanIfEntry ::= SEQUENCE { atiVlanIfIndex INTEGER, atiVlanIfDescr DisplayString, atiVlanIfType AtiSwitchVlanType, atiVlanIfGlobalIdentifier INTEGER, atiVlanIfStatus RowStatus } atiVlanIfIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "The index value of this row and the vlan's ifIndex in the ifTable. The NMS obtains the index value for this row by reading the atiNextAvailableVirtIfIndex object." ::= { atiVlanIfEntry 1 } atiVlanIfDescr OBJECT-TYPE SYNTAX DisplayString (SIZE(0..32)) ACCESS read-write STATUS mandatory DESCRIPTION "This is a description of the VLAN interface." ::= {atiVlanIfEntry 2} atiVlanIfType OBJECT-TYPE SYNTAX AtiSwitchVlanType ACCESS read-write STATUS mandatory DESCRIPTION "The VLAN interface type." ::= { atiVlanIfEntry 3 } atiVlanIfGlobalIdentifier OBJECT-TYPE SYNTAX INTEGER (0..65535) ACCESS read-write STATUS mandatory DESCRIPTION "An administratively assigned global VLAN identifier. The binding between a global identifier and a VLAN interface can be created or removed. To create a binding an NMS must write a non-zero value to this object. To delete a binding, the NMS must write a zero to this object. The value 1 is reserved for the default VLAN and this cannot be deleted or re-assigned." ::= { atiVlanIfEntry 4 } atiVlanIfStatus OBJECT-TYPE SYNTAX RowStatus ACCESS read-write STATUS mandatory DESCRIPTION "The status column for this VLAN interface. This OBJECT can be set to: active(1) createAndGo(4) createAndWait(5) destroy(6) The following values may be read: active(1) notInService(2) notReady(3). Setting this object to createAndGo(4) causes the agent to attempt to create and commit the row based on the contents of the objects in the row. If all necessary information is present in the row and the values are acceptible to the agent, the agent will change the status to active(1). If any of the necessary objects are not available, the agent will reject the creation request. Setting this object to createAndWait(5) causes a row in this table to be created. The agent sets the status to notInService(2) if all of the information is present in the row and the values are acceptable to the agent; otherwise, the agent sets the status to notReady(3). Setting this object to active(1) is only valid when the current status is active(1) or notInService(2). When the state of the row transitions is set to active(1), the agent creates the corresponding row in the ifTable.. Setting this object to destroy(6) will remove the corresponding VLAN interface, remove the entry in this table, and the corresponding entries in the ifTable. In order for a set of this object to destroy(6) to succeed, all dependencies on this row must have been removed. These will include any stacking dependencies in the ifStackTable and any protocol specific tables dependencies." ::= { atiVlanIfEntry 6 } -- -- The Atkk VLAN Encapsulation Interface Table -- -- VLAN Encapsulation refers to the ability to multiplex -- several VLANs over a single network segment by explicitly -- labeling eack packet with a tag that identifies the packet's -- VLAN membership. -- -- The only tagging scheme supported by this MIB is IEEE 802.1Q -- Some ports support tagging, some don't. For ports that support -- tagging, they may have some VLANs that operate in tagging mode, -- some not in tagging mode. -- -- The encapsulation interface will be creatable by the NMS using -- the atiVlanIfTable. This table will allow the NMS to define -- certain attributes of the encapsulation including an encapsulation -- algorithm and a tag value. Using the ifStack table, an encapsulation -- interface may be stacked underneath a VLAN interface and on top of port(s). -- -- Example ifTable Stacking: -- -- +=======================+=======================+ -- | VLAN Xface 9 | VLAN Xface 11 | -- +=======================+=======================+ -- +=======================+ -- | ENCAPS Xface 10 | -- +=======================+ -- +=====+=====+=====+=====+=====+=====+=====+=====+ -- | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |<=== Ports -- +=====+=====+=====+=====+=====+=====+=====+=====+ -- -- ifStackTable Instances: -- ifStackHigher ifStackLower -- 0 9 -- 0 11 -- 1 0 -- 2 0 -- 3 0 -- 4 0 -- 9 10 -- 10 1 -- 10 2 -- 10 3 -- 10 4 -- 11 5 -- 11 6 -- 11 7 -- 11 8 -- -- A stack that contains a VLAN, encapsulation and a port interface, specifies: -- -- * For packets received through the given port that use the given encapsulation -- scheme and contain the given tag, those packets are members of the given VLAN. -- -- * For unencapsulated packets from the given VLAN that are to be transmitted out -- the given port, those packets must first be encapsulated using the given -- encapsulation algorithm and tag. -- AtiSwitchVlanEncapsType ::= INTEGER { vlanEncaps8021q(2) } atiVlanEncapsIfTable OBJECT-TYPE SYNTAX SEQUENCE OF AtiVlanEncapsIfEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "This table lists VLAN encapsulation interfaces that exist within a device. A single entry exists in this list for each VLAN encapsulation interface in the system. A VLAN encapsulation interface may be created or destroyed." ::= { atiEncapsulationGroup 1 } atiVlanEncapsIfEntry OBJECT-TYPE SYNTAX AtiVlanEncapsIfEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "An individual VLAN encapsulation interface entry. When an NMS wishes to create a new entry in this table, it must obtain a non-zero index from the atiNextAvailableVirtIfIndex object. Row creation in this table will fail if the chosen index value does not match the current value returned from the atiNextAvailableVirtIfIndex object." INDEX { atiVlanEncapsIfIndex } ::= { atiVlanEncapsIfTable 1 } AtiVlanEncapsIfEntry ::= SEQUENCE { atiVlanEncapsIfIndex INTEGER, atiVlanEncapsIfType AtiSwitchVlanEncapsType, atiVlanEncapsIfTag INTEGER, atiVlanEncapsIfStatus RowStatus } atiVlanEncapsIfIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "The index value of this row and the encapsulation interface's ifIndex in the ifTable. The NMS obtains the index value used for creating a row in this table by reading the atiNextAvailableVirtIfIndex object." ::= { atiVlanEncapsIfEntry 1 } atiVlanEncapsIfType OBJECT-TYPE SYNTAX AtiSwitchVlanEncapsType ACCESS read-write STATUS mandatory DESCRIPTION "The encapsulation algorithm used when encapsulating packets transmitted, or de-encapsulating packets received through this interface." ::= {atiVlanEncapsIfEntry 2} atiVlanEncapsIfTag OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "The tag used when encapsulating packets transmitted, or de-encapsulating packets received through this interface." ::= { atiVlanEncapsIfEntry 3 } atiVlanEncapsIfStatus OBJECT-TYPE SYNTAX RowStatus ACCESS read-write STATUS mandatory DESCRIPTION "The row status for this VLAN encapsulation interface. This OBJECT can be set to: active(1) createAndGo(4) createAndWait(5) destroy(6) The following values may be read: active(1) notReady(3). In order for a row to become active, the NMS must set atiVlanEncapsIfTagType and atiVlanEncapsIfTag to some valid and consistent values. Setting this object to createAndGo(4) causes the agent to attempt to create and commit the row based on the contents of the objects in the row. If all necessary information is present in the row, the agent will create the row and change the status to active(1). If any of the necessary objects are not available, or specify an invalid configuration, the row will not be created and the agent will return an appropriate error. Setting this object to createAndWait(5) causes a row in in this table to be created. If all necessary objects in the row have been assigned values and specify a valid configuration, the status of the row will be set to notInService(2); otherwise, the status will be set to notReady(3). This object may only be set to createAndGo(4) or createAndWait(5) if it does not exist. Setting this object to active(1) when the status is notInService(2) causes the agent to commit the row. Setting this object to active(1) when its value is already active(1) is a no-op. Setting this object to destroy(6) will remove the corresponding VLAN encapsulation interface, remove the entry in this table, and remove the corresponding entry in the ifTable. In order for a set of this object to destroy(6) to succeed, all dependencies on this row must have been removed. These will include any references to this interface in the ifStackTable." ::= { atiVlanEncapsIfEntry 4 } -- -- The atiNextAvailableVirtIfIndex -- atiNextAvailableVirtIfIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The value of the next available virtual ifIndex. This object is used by an NMS to select an index value for row-creation in tables indexed by ifIndex. The current value of this object is changed to a new value when the current value is written to an agent's table, that is indexed by ifIndex. Row creation using the current value of this object, allocates a virtual ifIndex. Note the following: 1. A newly created row does not have to be active(1) for the agent to allocate the virtual ifIndex. 2. Race conditions between multiple NMS's end when a row is created. Rows are deemed created when a setRequest is successfully committed (i.e. the errorStats is noError(0)). 3. An agent that exhausts its supply of virual ifIndex values returns zero as the value of this object. This can be used by an NMS as an indication to deleted unused rows and reboot the device." ::= { atiVirtualGroup 1 } -- -- Protocol Definition Table -- atiVlanProtocolTable OBJECT-TYPE SYNTAX SEQUENCE OF AtiVlanProtocolEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Table of defined combinations of protocol IDs that make up one protocol definition name. All members of one protocol definition share the same atiVlanProtocolIndex. A given protocol ID may appear in the definition of just one protocol definition. This table will typically contain some default entries for popular protocols." ::= { atiProtocolGroup 1 } atiVlanProtocolEntry OBJECT-TYPE SYNTAX AtiVlanProtocolEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "One member protocol ID of a protocol definition." INDEX { atiVlanProtocolIndex, atiVlanProtocolIdIndex } ::= { atiVlanProtocolTable 1 } AtiVlanProtocolEntry ::= SEQUENCE { atiVlanProtocolIndex INTEGER, atiVlanProtocolIdIndex INTEGER, atiVlanProtocolName DisplayString, atiVlanProtocolDllEncapsType INTEGER, atiVlanProtocolId INTEGER, atiVlanProtocolStatus RowStatus } atiVlanProtocolIndex OBJECT-TYPE SYNTAX INTEGER(0..7) ACCESS read-write STATUS mandatory DESCRIPTION "An index representing a protocol grouping of protocol ID values. A limited number of protocol groupings may be defined (up to 7)." ::= { atiVlanProtocolEntry 1 } atiVlanProtocolIdIndex OBJECT-TYPE SYNTAX INTEGER(0..6) ACCESS read-write STATUS mandatory DESCRIPTION "An index representing a particular protocol ID within a protocol grouping. A limited number of protocol IDs may be defined per atiVlanProtocolIndex (up to 6)." ::= { atiVlanProtocolEntry 2 } atiVlanProtocolName OBJECT-TYPE SYNTAX DisplayString (SIZE(0..31)) ACCESS read-write STATUS mandatory DESCRIPTION "A human-readable string representing this protocol. This string should be the same for all entries sharing a given atiVlanProtocolIndex. A atiVlanProtocolEntry with atiVlanProtocolName of ANY represents a match on all protocols: this entry may not be modified." ::= { atiVlanProtocolEntry 3 } atiVlanProtocolDllEncapsType OBJECT-TYPE SYNTAX INTEGER { any(1), ethertype(2), llc(3), llcSnapEthertype(4) } ACCESS read-write STATUS mandatory DESCRIPTION "Represents the type of data-link encapsulation in which the atiVlanProtocolId protocol ID is carried. The value any(1) is used to indicate a wildcard and matches all encapsulations and protocol IDs that are not explicitly mentioned in this table. Entries of type any(1) may not be created. The value none(5) is used to indicate that no protocol IDs match this entry. A value of none(5) may not be set by a manager." ::= { atiVlanProtocolEntry 4 } atiVlanProtocolId OBJECT-TYPE SYNTAX INTEGER (0..65535) ACCESS read-write STATUS mandatory DESCRIPTION "The protocol ID: for entries of type ethertype(2) or llcSnapEthertype(4) this represents a 16-bit protocol ID. For entries of type llc(3) it represents a concatenation of LLC DSAP+SSAP in network byte order. This value is not valid for atiVlanProtocolDllEncapsType values of any(1) or none(5)." ::= { atiVlanProtocolEntry 5 } atiVlanProtocolStatus OBJECT-TYPE SYNTAX RowStatus ACCESS read-write STATUS mandatory DESCRIPTION "The row status variable, used according to row installation and removal conventions." ::= { atiVlanProtocolEntry 6 } -- -- Protocol-based VLAN Table -- atiVlanProtocolVlanTable OBJECT-TYPE SYNTAX SEQUENCE OF AtiVlanProtocolVlanEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Table to apply one of the protocol definitions in atiVlanProtocolTable to a given VLAN This applies to all ports that are untagged in this VLAN). A limited number of protocols may be applied simultaneously in one device (up to 8)." ::= { atiProtocolGroup 2 } atiVlanProtocolVlanEntry OBJECT-TYPE SYNTAX AtiVlanProtocolVlanEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A mapping of untagged packets of one protocol onto a particular VLAN." INDEX { atiVlanProtocolVlanIfIndex, atiVlanProtocolVlanProtocolIndex } ::= { atiVlanProtocolVlanTable 1 } AtiVlanProtocolVlanEntry ::= SEQUENCE { atiVlanProtocolVlanIfIndex INTEGER, atiVlanProtocolVlanProtocolIndex INTEGER, atiVlanProtocolVlanStatus RowStatus } atiVlanProtocolVlanIfIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "The index value of this row and the vlan's ifIndex in the ifTable. The NMS obtains the index value for this row by reading the atiNextAvailableVirtIfIndex object." ::= { atiVlanProtocolVlanEntry 1 } atiVlanProtocolVlanProtocolIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-write STATUS mandatory DESCRIPTION "An index representing a protocol grouping of protocol ID values. A limited number of protocol groupings may be defined (up to 7)." ::= { atiVlanProtocolVlanEntry 2 } atiVlanProtocolVlanStatus OBJECT-TYPE SYNTAX RowStatus ACCESS read-write STATUS mandatory DESCRIPTION "The row status variable, used according to row installation and removal conventions." ::= { atiVlanProtocolVlanEntry 3 } END