The Worst MIB in the World
This lovely turd is courtesy of NexTone Communications (Update: whose newer MIBs are much better — see Scott’s second comment below). I have personally never seen a worse MIB in my life — it consists of a single OID that is just a string and is used by the solitary generalTrap to convey who-knows-what when some unknown thing happens.
Update: NexTone’s more recent MIBs are much better written and convey much more useful and deterministic information. If you’re selecting a vendor based on SNMP support, and NexTone is in the running, I’d say that NexTone looks pretty good now. I’d still like to see more than just traps, but as trap-only MIBs go, the new ones aren’t bad at all. See Scott’s second comment below.
NEXTONE-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
TimeTicks, Counter32, mib-2
FROM SNMPv2-SMI
SnmpAdminString
FROM SNMP-FRAMEWORK-MIB
MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
FROM SNMPv2-CONF;
nexToneMib MODULE-IDENTITY
LAST-UPDATED “200505240000Z”
ORGANIZATION “Nextone Communications, Inc”
CONTACT-INFO
“Dev Lead: Scott Lowrey
Address: 101 Orchard Ridge Dr
Suite 300
Gaithersburg, MD 20878
USA
EMail: slowrey AT nextone PERIOD com
Phone: +1 240 912 XXXX”
DESCRIPTION
“The MIB module for NexTone servers.
Copyright (c) 2005 NexTone Communications, Inc.
”
::= { iso(1) org(3) dod(6) internet(1) private (4)
enterprises(1) nextone (7684) }
nexToneMibObjects OBJECT IDENTIFIER ::= { nexToneMib 1 }
– Traps
nexToneTraps OBJECT IDENTIFIER ::= { nexToneMibObjects 1 }
nexToneDisp OBJECT IDENTIFIER ::= { nexToneMibObjects 2 }
generalTrap NOTIFICATION-TYPE
OBJECTS { trapReason }
STATUS current
DESCRIPTION
“A trap for communicating significant NexTone service events.”
::= { nexToneTraps 1 }
trapReason OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE(0..128))
ACCESS read-write
STATUS current
DESCRIPTION “Textual description of trap”
::= { nexToneDisp 1 }
END
Not to say that NexTone sucks or anything, but if you work for NexTone and you’re reading this, you should really go find the product manager who signed off on calling this “SNMP support” and kick him or her right in the knee.
You might have checked with me before publishing this comment (and my name and email address).
The MIB that you posted is out of date. Yes, it’s terrible but it did serve a purpose when we created it. We had customers that demanded some kind of SNMP support from our application software. So, we designed (cough) this simple MIB to send traps when an error occurred. It satisfied the customer until we could do something better.
We have a better MIB now. Maybe you’d like to see it? And maybe you’d like to retract your previous comments?
-Scott
Scott,
Thanks for taking the time to register and comment. I’ve obscured your e-mail address and redacted your phone number in the post body. I apologize for not having done so in the first place — I just copied and pasted the MIB.
I won’t retract my comments from before, because I maintain that the MIB as I encountered it sucks. I would love to see the new one, though — nothing would make me happier right now than posting a follow-up declaring some positive karma. Well, getting the issues with my employer’s support contract worked out would make me pretty happy, but I suspect that’s well out of your hands and mine.
-jeff
We have three MIBS now: NEXTONE-SMI-MIB, NEXTONE-NOTIFICATION-MIB, and the old NEXTONEv1-MIB (pretty much unchanged from the original). I believe we have also implemented ENTITY-MIB for the hardware platforms that we specify. (I’m a little behind on the latest SNMP developments here.)
None of this is perfect, but we’re learning.
NEXTONE-SMI-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, enterprises
FROM SNMPv2-SMI; — [RFC2578]
nextoneSmiMib MODULE-IDENTITY
LAST-UPDATED “200602200000Z” — 20 Feb 2006, midnight
ORGANIZATION “NexTone Communications”
CONTACT-INFO
“NexTone Communications
101 Orchard Ridge Drive, suite 300
Gaithersburg, MD 20878
USA
Telephone: +1.240.912.1300
EMail: nextone-mibs@nextone.com
URL: http://www.nextone.com
Send comments to
”
DESCRIPTION
“The top level organization of the NexTone private
enterprise name space.
Copyright (C) and Trademark (TM) 2006 NexTone
Communications, Inc. All rights reserved. Use is
subject to license terms.
This version of the NEXTONE-SMI-MIB module is part
of NexTone publication, `The NexTone SMI MIB’,
publication #####. See the publication itself for
full legal notices.
”
– Revision log
REVISION “200602200000Z” — 20 Feb 2006, midnight
DESCRIPTION
“Initial version, as part of NexTone publication
`The NexTone SMI MIB’, publication #####.
”
::= { nxManagement 1 }
–
– The NexTone private enterprise number assigned by IANA
–
nextone OBJECT IDENTIFIER ::= { enterprises 7684 }
–
– === The nxRegistry subtree =====
–
– The name space under the nxRegistry subtree provides
– a common area for OBJECT IDENTIFIER (OID) assignments in NexTone
– modules. Essentially, this subtree contains OID assignments
– mapping a collection of independently extensible categories
– of identification values.
–
– The OID assignments in this subtree are conveyed as values for
– NexTone enterprise OBJECT-TYPEs defined using the AutonomousType
– textual convention, as described in RFC 2579.
–
nxRegistry OBJECT IDENTIFIER ::= { nextone 1 }
–
– The nxIdentifiers subtree contains assignments
– used to identify protocols, options, events
– and other metric and control information elements in an
– extensible manner.
–
nxIdentifiers OBJECT IDENTIFIER ::= { nxRegistry 1 }
–
– The nxAgents subtree contains assignments that may
– appear as a prefix in value instances of the
– SNMPv2-MIB:sysObjectID object.
–
– By convention a prefix is concatenated with three additional
– sub-ids, indicating the major, minor and patch revision levels.
–
– For example, an upatched version 4.2 of the iServer appears as
– iServer.4.2.0
–
nxAgents OBJECT IDENTIFIER ::= { nxRegistry 2 }
iServer OBJECT IDENTIFIER ::= { nxAgents 1 }
–
– The nxAgentCaps subtree contains assignments that may
– appear in an Agent Capabilities statement.
–
– By convention a NexTone module is delegated the same sub-id
– value under this subtree as used in its MODULE-IDENTITY macro.
–
nxAgentCaps OBJECT IDENTIFIER ::= {nxRegistry 3 }
–
– === The nxManagement subtree =====
–
– The nxManagement subtree contains assignments
– as used in MODULE-IDENTITY macros in NexTone modules.
–
– Declarations occur within the actual module. The
– following list tracks assignments known as of this
– revision of the NEXTONE-SMI-MIB.
–
nxManagement OBJECT IDENTIFIER ::= { nextone 2 }
–
– nextoneSmiMib { nxManagement 1 }
– { nxManagement 2 }
– { nxManagement 3 }
END
NEXTONE-NOTIFICATION-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE
FROM SNMPv2-SMI — [RFC2578]
TEXTUAL-CONVENTION
FROM SNMPv2-TC — [RFC2579]
MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
FROM SNMPv2-CONF — [RFC2580]
applName, applOperStatus
FROM NETWORK-SERVICES-MIB — [RFC2788]
– ItuPerceivedSeverity
– FROM ITU-ALARM-TC-MIB [RFC3877]
nxManagement
FROM NEXTONE-SMI-MIB; — [NX-SMI]
nexToneNotificationMib MODULE-IDENTITY
LAST-UPDATED “200603160000Z”
ORGANIZATION “NexTone Communications”
CONTACT-INFO
“NexTone Communications
101 Orchard Ridge Drive
Gaithersburg, MD 20878
USA
Telephone: +1.240.912.1300
EMail: nextone-mibs@nextone.com
URL: http://www.nextone.com
Send comments to ”
DESCRIPTION
“This MIB describes NexTone-specific notifications and their
supporting control and content objects.”
REVISION “200603160000Z”
DESCRIPTION
“Initial version.”
::= { nxManagement 5 }
–
– Top level assignments for the NexTone Notification MIB.
–
– Root object id of NexTone traps/notifications. It is defined as
– nexToneNotificationMib 0 so that NexTone trap OIDs will conform to the SMIv2
– requirement that the next to last subid be ‘0′.
nexToneTraps OBJECT IDENTIFIER ::= { nexToneNotificationMib 0 }
– Per-trap control objects
nexToneTrapControl OBJECT IDENTIFIER ::= {nexToneNotificationMib 1 }
– conformance information
nexToneTrapConformance OBJECT IDENTIFIER ::= { nexToneNotificationMib 2 }
nexToneTrapCompliances OBJECT IDENTIFIER ::= { nexToneTrapConformance 1 }
nexToneTrapGroups OBJECT IDENTIFIER ::= { nexToneTrapConformance 2 }
– scalar objects included in NexTone enterprise traps
nexToneTrapScalars OBJECT IDENTIFIER ::= { nexToneNotificationMib 3 }
–
– This group is here temporarily and will be moved out to the proper
– NexTone appl. MIB once it becomes available.
–
nexToneGlobalState OBJECT IDENTIFIER ::= { nexToneNotificationMib 4 }
– This group will include the user-defined infomation
– that can be sent with the trap
nexToneInformation OBJECT IDENTIFIER ::= { nexToneNotificationMib 5 }
nexToneTrapMessages OBJECT IDENTIFIER ::= { nexToneNotificationMib 6 }
– Textual Conventions and Support Object Types
NexToneTrapSetting ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
“A control value which indicates whether a notification type
should be generated or not. The value ‘enabled’ indicates that
notifications are enabled and therefore should be generated. The
value ‘disabled’ indicates that notifications are disabled and should
not be generated.”
SYNTAX INTEGER {
enabled(1),
disabled(2)
}
–nexToneTrapSeverity OBJECT-TYPE
– SYNTAX ItuPerceivedSeverity
– STATUS current
– DESCRIPTION
– “The ITU perceived severity value for this NexTone trap.”
– REFERENCE
– “IETF Alarm MIB [RFC3877]
– ITU X.733 [X733]”
– ::= { nexToneTrapScalars 1 }
–
– These support objects need to be moved into the proper NexTone MIB and
– imported from there. Since that MIB does not currently exist, will keep
– the objects here under the NexTone Notification Mib tree for now.
–
nexToneHaState OBJECT-TYPE
SYNTAX INTEGER {
haDisabled(1),
haPrimary(2),
haStandby(3)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“The current high availability state of this device. haDisabled(1)
denotes that high availability support has been disabled or no
backup device exists. haPrimary(2) indicates that the device is
the primary device. haStandby(3) indicates that the device is the
backup or standby device.”
::= { nexToneGlobalState 1 }
nexToneRegId OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(80))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
” The string would contain the RegId for which the corresponding trap
has been generated. ”
::= { nexToneInformation 1 }
nexTonePort OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
” The Integer would contain the uport for a particular regid for
which the corresponding trap has been generated.”
::= { nexToneInformation 2 }
– The following objects may be used to enable/disable each
– of the NexTone enterprise traps.
enableCallRoutingServiceStatusTrap OBJECT-TYPE
SYNTAX NexToneTrapSetting
MAX-ACCESS read-write
STATUS current
DESCRIPTION
“The value of this object controls whether the NexTone SNMP subsystem
will generate notifications for call routing service status events. A
value of enabled means that notifications will be generated. A value
of disabled means notifications will not be generated for this type
of event.”
DEFVAL { enabled }
::= { nexToneTrapControl 1 }
enableHaStatusTrap OBJECT-TYPE
SYNTAX NexToneTrapSetting
MAX-ACCESS read-write
STATUS current
DESCRIPTION
“The value of this object controls whether the NexTone SNMP subsystem
will generate notifications for database replication service status
events. A value of enabled means that notifications will be generated.
A value of disabled means notifications will not be generated for this
type of event.”
DEFVAL { enabled }
::= { nexToneTrapControl 3 }
enableHeartBeatTrap OBJECT-TYPE
SYNTAX NexToneTrapSetting
MAX-ACCESS read-write
STATUS current
DESCRIPTION
“The value of this object controls whether the NexTone SNMP subsystem
will generate heartbeat notifications. A value of enabled means that
heartbeat notifications will be generated. A value of disabled means
notifications will not be generated.”
DEFVAL { enabled }
::= { nexToneTrapControl 4 }
enableCACFailureTrap OBJECT-TYPE
SYNTAX NexToneTrapSetting
MAX-ACCESS read-write
STATUS current
DESCRIPTION
“The value of this object controls whether the NexTone SNMP subsystem
will generate notifications for CAC failure in SIP & H323 calls. The trap
also track the gateway information for which the CAC has failed.”
DEFVAL { enabled }
::= { nexToneTrapControl 5 }
– Notifications
callRoutingServiceStatus NOTIFICATION-TYPE
OBJECTS { applOperStatus, applName }
STATUS current
DESCRIPTION
“A trap indicating that the status of a critical call routing
service has changed.”
::= { nexToneTraps 1 }
haStatus NOTIFICATION-TYPE
OBJECTS { nexToneHaState }
STATUS current
DESCRIPTION
“A trap indicating that the leadership state of the current
device has changed.”
::= { nexToneTraps 2 }
heartBeat NOTIFICATION-TYPE
STATUS current
DESCRIPTION
“A trap sent by the NexTone device periodically to indicate that
it is still operational.”
::= { nexToneTraps 3 }
cacFailure NOTIFICATION-TYPE
OBJECTS { nexToneRegId, nexTonePort }
DESCRIPTION
“A trap sent by the MSW in case of CAC failure”
::= { nexToneTraps 4 }
sensorAlarm NOTIFICATION-TYPE
STATUS current
DESCRIPTION
“A trap sent by BMC sensor periodically to indicate that it’s value
crosses threshold.”
::= { nexToneTraps 5 }
sensorAlarmMesg OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“A trap sent by BMC sensor periodically to indicate that it’s value
crosses threshold.”
::= { nexToneTrapMessages 1 }
— Compliance Statements
nexToneTrapCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
“All objects in this MIB must be supported by the NexTone
SNMP subsystem.”
MODULE — This module
MANDATORY-GROUPS { nexToneTrapGroup, nexToneTrapControlGroup }
::= { nexToneTrapCompliances 1 }
— Units of Conformance
nexToneTrapGroup NOTIFICATION-GROUP
NOTIFICATIONS {
callRoutingServiceStatus,
haStatus,
heartBeat,
cacFailure
}
STATUS current
DESCRIPTION
“The set of all currently defined NexTone enterprise traps.”
::= { nexToneTrapGroups 1 }
nexToneTrapControlGroup OBJECT-GROUP
OBJECTS {
enableCallRoutingServiceStatusTrap,
enableHaStatusTrap,
enableHeartBeatTrap,
enableCACFailureTrap
}
STATUS current
DESCRIPTION
“Control objects associated with NexTone enterprise traps.”
::= { nexToneTrapGroups 2 }
END
Scott,
Thanks for the updated MIB information. It does look worlds better! Sorry it took me over a week to get it moderated.
Best,
-jeff